ESP32:Примеры/Управление светодиодом с помощью емкостного контакта: различия между версиями

Материал из Онлайн справочника
Перейти к навигацииПерейти к поиску
 
Нет описания правки
 
(не показаны 3 промежуточные версии 2 участников)
Строка 1: Строка 1:
{{ESP32 панель перехода}}
{{ESP32 панель перехода}}
{{Перевод от Сubewriter}}
{{Перевод от Сubewriter}}
{{Myagkij-редактор}}
{{Myagkij-редактор}}
{{Черновик}}


=Управление светодиодом с помощью емкостного контакта=
=Управление светодиодом с помощью емкостного контакта=
Строка 36: Строка 33:
==Схема==
==Схема==


{{Спойлер|На данной схеме используется плата [[ESP32S-HiLetgo]], если вы используете другую, сверьтесь с вашей распиновкой.}}
{{Примечание1|1=На данной схеме используется плата [[ESP32S-HiLetgo]], если вы используете другую, сверьтесь с вашей распиновкой.}}


Провод-перемычка с фольгой подключен к GPIO4. Светодиод через резистор подключен к GPIO16.
Провод-перемычка с фольгой подключен к GPIO4. Светодиод через резистор подключен к GPIO16.
Строка 44: Строка 41:
==Код==
==Код==


<syntaxhighlight lang="c" line="GESHI_NORMAL_LINE_NUMBERS|GESHI_FANCY_LINE_NUMBERS" enclose="div">
<syntaxhighlight lang="c" line="GESHI_NORMAL_LINE_NUMBERS|GESHI_FANCY_LINE_NUMBERS">
// задаем номера для контактов:
// задаем номера для контактов:
const int touchPin = 4;  
const int touchPin = 4;  
Строка 85: Строка 82:


<references />
<references />
{{Навигационная таблица/Портал/ESP32}}


[[Категория:ESP32]]
[[Категория:ESP32]]

Текущая версия от 09:17, 18 июня 2023

Перевод: Максим Кузьмин
Проверка/Оформление/Редактирование: Мякишев Е.А.


Управление светодиодом с помощью емкостного контакта

Этот скетч-пример демонстрирует как с помощью данных от емкостного сенсорного контакта можно будет управлять светодиодом.

Найдите алюминиевую фольгу, отрежьте от нее маленький кусочек и оберните вокруг металлического стержня неподключенного конца провода-перемычки.

Запустите на ESP32 код, из примера Считывание данных с тактильного датчика, и снова откройте монитор порта.

Теперь прикоснитесь к алюминиевой фольге. Видите, как меняются значения?

Итак, когда мы не касаемся фольги, то значения в среднем достигают значения «70» и чуть выше, а когда касаемся, значение уменьшается до менее «10».

Это позволяет нам задать пороговое значение – если данные от сенсора упадут ниже этого значения, это включит светодиод. То есть, к примеру, хорошим пороговым значением для этой ситуации будет «20».

Теперь скопируйте в IDE Arduino код из раздела снизу. Этот код считывает значение с емкостной фольговой кнопки, подключенной к заданному нами контакту, и включает светодиод, если «фольговое» значение падает ниже заданного порога – это будет значить, что вы приложили палец к кнопке из алюминиевой фольги.

Загрузите скетч на ESP32. Прикоснитесь к алюминиевой фольге – если все сделано правильно, светодиод должен загореться.

Необходимое оборудование

Схема

Примечание

На данной схеме используется плата ESP32S-HiLetgo, если вы используете другую, сверьтесь с вашей распиновкой.

Провод-перемычка с фольгой подключен к GPIO4. Светодиод через резистор подключен к GPIO16.

Код

// задаем номера для контактов:
const int touchPin = 4; 
const int ledPin = 16;

// задаем пороговое значение: 
const int threshold = 20;
// переменная для хранения значения сенсорного контакта: 
int touchValue;

void setup(){
  Serial.begin(115200);
  delay(1000);                    // даем время на установление последовательной коммуникации
  pinMode (ledPin, OUTPUT);       // инициализируем контакт светодиода, также делая его выходным контактом
}

void loop(){
  // считываем состояние емкостной сенсорной кнопки: 
  touchValue = touchRead(touchPin);
  Serial.print(touchValue);
  // проверяем, упало ли значение «touchValue» ниже заданного порога,
  // и если упало, присваиваем контакту «ledPin» значение «HIGH»:
  if(touchValue < threshold){
    // включаем светодиод:
    digitalWrite(ledPin, HIGH);
    Serial.println(" - LED on");  //  " – светодиод включен"
  }
  else{
    // выключаем светодиод:
    digitalWrite(ledPin, LOW);
    Serial.println(" - LED off");  //  " – светодиод выключен"
  }
  delay(500);
}

См.также

Внешние ссылки