ESP32:Примеры/Управление светодиодом с помощью емкостного контакта: различия между версиями
Myagkij (обсуждение | вклад) (→Код) |
Myagkij (обсуждение | вклад) Нет описания правки |
||
Строка 36: | Строка 36: | ||
==Схема== | ==Схема== | ||
{{ | {{Примечание1|1=На данной схеме используется плата [[ESP32S-HiLetgo]], если вы используете другую, сверьтесь с вашей распиновкой.}} | ||
Провод-перемычка с фольгой подключен к GPIO4. Светодиод через резистор подключен к GPIO16. | Провод-перемычка с фольгой подключен к GPIO4. Светодиод через резистор подключен к GPIO16. | ||
Строка 81: | Строка 81: | ||
=См.также= | =См.также= | ||
{{ads}} | |||
=Внешние ссылки= | =Внешние ссылки= |
Версия от 19:29, 5 мая 2022
Черновик |
Управление светодиодом с помощью емкостного контакта
Этот скетч-пример демонстрирует как с помощью данных от емкостного сенсорного контакта можно будет управлять светодиодом.
Найдите алюминиевую фольгу, отрежьте от нее маленький кусочек и оберните вокруг металлического стержня неподключенного конца провода-перемычки.
Запустите на ESP32 код, из примера Считывание данных с тактильного датчика, и снова откройте монитор порта.
Теперь прикоснитесь к алюминиевой фольге. Видите, как меняются значения?
Итак, когда мы не касаемся фольги, то значения в среднем достигают значения «70» и чуть выше, а когда касаемся, значение уменьшается до менее «10».
Это позволяет нам задать пороговое значение – если данные от сенсора упадут ниже этого значения, это включит светодиод. То есть, к примеру, хорошим пороговым значением для этой ситуации будет «20».
Теперь скопируйте в IDE Arduino код из раздела снизу. Этот код считывает значение с емкостной фольговой кнопки, подключенной к заданному нами контакту, и включает светодиод, если «фольговое» значение падает ниже заданного порога – это будет значить, что вы приложили палец к кнопке из алюминиевой фольги.
Загрузите скетч на ESP32. Прикоснитесь к алюминиевой фольге – если все сделано правильно, светодиод должен загореться.
Необходимое оборудование
- Плата ESP32 - 1шт.;
- Резистор 330 Ом - 1шт.;
- Светодиод - 1шт.
- Провода-перемычки;
- Макетная плата - 1шт;
Схема
Провод-перемычка с фольгой подключен к 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);
}