Хочешь создать умный дом, но не знаешь как? Присмотрись к Node-REDCutehamster.gif! Так же не забывай поддержать наш справочникCutehamster.gif.

ESP32:Примеры/Считывание данных с тактильного датчика

Материал из Онлайн справочника
Перейти к: навигация, поиск

Перевод: Максим Кузьмин (Cubewriter)
Перевел 3377 статей для сайта.

Контакты:

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


Pixel Art Mini Meow Animated.gif Черновик


Считывание данных с тактильного датчика

Этот скетч-пример демонстрирует как считывать данные с тактильного датчика.

ESP32 оснащен 10 тактильными датчиками (емкостными сенсорными GPIO-контактами). Они могут «чувствовать» изменения в электроемкости сенсорного контакта, возникающие при соприкосновении с чем-либо (вроде человеческой кожи). К примеру, эти изменения могут быть вызваны, если прикоснуться к емкостному сенсорному GPIO-контакту пальцем.

К этим контактам можно подключить емкостные «клавиши» (сделанные, например, из фольги) и затем использовать их вместо механических кнопок. Взгляните на распиновку ниже – на ней емкостные сенсорные контакты помечены розовым цветом (всего их 9).

ESP32 DEVKIT V1 DOIT -30-GPIOs.png

Как видите, емкостный сенсор 0 – это контакт GPIO4, емкостный сенсор 2 – это GPIO2 и так далее.

Примечание: Емкостный сенсор 1 – это GPIO0, но на этой 30-контактной версии ES32 этого контакта нет. Впрочем, контакт GPIO0 есть на новой 36-контактной версии этой платы(см.ниже).

ESP32 DEVKIT V1 DOIT -36-GPIOs.png

Данные с емкостного контакта считываются очень просто. В IDE Arduino для этого используется функция touchRead(), в которой нужно задать лишь один параметр – GPIO-контакт, значение которого нужно прочесть.

touchRead(GPIO)

Давайте взглянем, как эта функция работает на практике. Запустите IDE Arduino и скопируйте код из раздела ниже.

Этот скетч считывает значение сенсорного контакта 0 и показывает результаты в мониторе порта.

Сенсорный контакт 0 – это GPIO-контакт 4 (как видно на распиновке выше).

В этом коде мы в блоке setup() инициализируем последовательную коммуникацию, через которую будем передавать данные, считанные с сенсорного контакта.

Serial.begin(115200);

В блоке loop() начинаем считывать данные с сенсорного контакта.

Serial.println(touchRead(4));

Здесь используется функция touchRead(), где параметром служит контакт, данные с которого нужно прочесть. В этом скетче-примере мы считываем данные с сенсорного контакта 0 (то есть с GPIO-контакта номер 4).

Теперь загружаем код на ESP32. Убедитесь, что в IDE Arduino выбраны правильные плата и порт.

Подключите провод-перемычку к контакту GPIO4 – он будет служить «удлинителем» для считывания прикосновений. В IDE Arduino кликните на «Инструменты» > «Монитор порта» (Tools > Serial Monitor) и выставьте в открывшемся мониторе порта скорость коммуникации на 115200 бод. После этого в мониторе порта начнут каждую секунду появляться новые данные.

Прикоснитесь к проводу, подключенному к контакту GPIO4. После прикосновения монитор порта должен начать показывать более низкие значения.

Touch sensor read exp monitor 1.PNG

Кроме того, эти значения можно посмотреть в более наглядном варианте – при помощи плоттера. Закройте монитор порта и кликните в IDE Arduino на «Инструменты» > «Плоттер по последовательному соединению» (Tools > Serial Plotter).

Touch sensor read exp plotter 1.PNG

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

Схема

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


Touch sensor read exp 1.PNG.png

Код

  1. // Тестовый скетч для емкостного сенсорного контакта ESP32.
  2. // Емкостный сенсорный датчик 0 – это контакт GPIO4.
  3.  
  4. void setup()
  5. {
  6. Serial.begin(115200);
  7. delay(1000);                          // даем время на установление последовательной коммуникации
  8. Serial.println("ESP32 Touch Test");   // "Тест емкостного сенсорного контакта ESP32"
  9. }
  10. void loop()
  11. {
  12. Serial.println(touchRead(4));         // считываем значение сенсорного контакта 0 (GPIO4)
  13. delay(1000);
  14. }

См.также

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