ESP32:Примеры/Считывание данных с тактильного датчика: различия между версиями
Myagkij (обсуждение | вклад) Нет описания правки |
Myagkij (обсуждение | вклад) Нет описания правки |
||
Строка 98: | Строка 98: | ||
<references /> | <references /> | ||
{{Навигационная таблица/Телепорт}} | |||
[[Категория:ESP32]] | [[Категория:ESP32]] |
Версия от 21:32, 30 мая 2022
Черновик |
Считывание данных с тактильного датчика
Этот скетч-пример демонстрирует как считывать данные с тактильного датчика.
ESP32 оснащен 10 тактильными датчиками (емкостными сенсорными GPIO-контактами). Они могут «чувствовать» изменения в электроемкости сенсорного контакта, возникающие при соприкосновении с чем-либо (вроде человеческой кожи). К примеру, эти изменения могут быть вызваны, если прикоснуться к емкостному сенсорному GPIO-контакту пальцем.
К этим контактам можно подключить емкостные «клавиши» (сделанные, например, из фольги) и затем использовать их вместо механических кнопок. Взгляните на распиновку ниже – на ней емкостные сенсорные контакты помечены розовым цветом (всего их 9).
Как видите, емкостный сенсор 0 – это контакт GPIO4, емкостный сенсор 2 – это GPIO2 и так далее.
Данные с емкостного контакта считываются очень просто. В 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. После прикосновения монитор порта должен начать показывать более низкие значения.
Кроме того, эти значения можно посмотреть в более наглядном варианте – при помощи плоттера. Закройте монитор порта и кликните в IDE Arduino на «Инструменты» > «Плоттер по последовательному соединению» (Tools > Serial Plotter).
Необходимое оборудование
- Плата ESP32 - 1шт.;
- Провод-перемычка; - 1 шт.
- Макетная плата - 1шт;
Схема
Код
// Тестовый скетч для емкостного сенсорного контакта ESP32.
// Емкостный сенсорный датчик 0 – это контакт GPIO4.
void setup()
{
Serial.begin(115200);
delay(1000); // даем время на установление последовательной коммуникации
Serial.println("ESP32 Touch Test"); // "Тест емкостного сенсорного контакта ESP32"
}
void loop()
{
Serial.println(touchRead(4)); // считываем значение сенсорного контакта 0 (GPIO4)
delay(1000);
}
См.также
Внешние ссылки