Как использовать емкостные сенсорные контакты в ESP32


ESP32 — отличная плата разработки для создания интеллектуальных проектов Интернета вещей, а добавление сенсорной функциональности сделает их еще умнее. В данной статье мы рассмотрим эти возможности ESP32.

Как использовать емкостные сенсорные контакты в ESP32

ESP32 предлагает 10 емкостных сенсорных GPIO (контактов ввода/вывода). Вы можете использовать эти GPIO для обновления существующих простых проектов кнопок или для создания выключателей света, музыкальных инструментов или пользовательских интерактивных поверхностей.

Давайте узнаем как обращаться с этими сенсорными контактами и использовать их в своих проектах.

Примечание: обнаружение касания в ESP32 управляется сопроцессором ULP. Поэтому эти сенсорные контакты также могут использоваться для пробуждения ESP32 из глубокого сна.

Как ESP32 распознает прикосновения?

ESP32 использует электрические свойства человеческого тела в качестве входных данных. Когда к контакту прикасаются пальцем, небольшой электрический заряд тянется к точке контакта.

Это запускает изменение емкости, приводящее к аналоговому сигналу. Два АЦП (аналого-цифровых преобразователя) последовательного приближения (SAR) затем преобразуют этот аналоговый сигнал в цифровое число.

Сенсорные контакты ESP32

ESP32 имеет 10 емкостных сенсорных GPIO. Когда емкостная нагрузка (например, человеческая кожа) находится в непосредственной близости от GPIO, ESP32 обнаруживает это изменение емкости.

Хотя ESP32 имеет в общей сложности 10 емкостных контактов GPIO с датчиками касания, только 9 из них выведены на штыревые разъемы по обеим сторонам 30-контактной платы разработки ESP32.

Сенсорные контакты ESP32

Считывание показаний сенсора касания

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

Подключение оборудования

Хватит теории! Давайте рассмотрим практический пример.

Давайте подключим кабель к Touch #0 (GPIO #4). Вы можете прикрепить любой проводящий объект, например, алюминиевую фольгу, проводящую ткань, проводящую краску и т. д. к этому контакту и превратить его в сенсорную панель.

Подключение проводника к сенсорному контакту ESP32

Пример кода

Давайте посмотрим, как это работает, используя пример из библиотеки. Откройте Arduino IDE, перейдите в File > Examples > ESP32 > Touch и откройте скетч TouchRead.

В этом примере просто считывается сенсорный контакт 0 и отображается результат на последовательном мониторе.

После загрузки скетча откройте последовательный монитор на скорости передачи данных 115200 бод и нажмите кнопку EN на ESP32.

Теперь попробуйте прикоснуться к металлической части провода и посмотреть, как он отреагирует на прикосновение.

Тестирование работы сенсорного контакта ESP32 в окне монитора последовательной связи

Пояснение кода

Код довольно прост. В функции setup() мы сначала инициализируем последовательную связь с ПК.

В функции loop() мы используем touchRead()функцию и передаем ей в качестве аргумента контакт, который хотим считать. В данном случае это GPIO #4. ​​Вы также можете передать номер сенсора касания T0.

Проект ESP32 – светодиод, активируемый прикосновением

Давайте быстро создадим проект, чтобы продемонстрировать, как можно использовать сенсорные контакты ESP32 для управления устройствами. В этом примере мы сделаем простой светодиод, активируемый прикосновением, который будет загораться при прикосновении к контакту GPIO.

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

Нахождение порога

Прежде чем продолжить, вы должны увидеть, какие показания вы фактически получаете от ESP32. Обратите внимание на выход, который вы получаете, когда вы касаетесь контакта и когда вы этого не делаете.

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

    • когда вы касаетесь контакта (~3);
    • когда вы не трогаете контакт (~71).

На основе этих значений мы можем установить пороговое значение, так что когда показания опустятся ниже порогового значения, мы включим светодиод. В этом случае хорошим пороговым значением может быть 30.

Пример кода

Ниже приведен простой код, который включает встроенный светодиод при однократном касании контакта и выключает его при повторном касании.

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

(Проголосуй первым!)
Загрузка...
58 просмотров

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *