- Что такое емкостный сенсор касания и как он работает?
- Создание четырехпозиционного емкостного сенсорного датчика
- Материалы, необходимые для схемы с сенсорным управлением ESP32
- Схема управления для нашего емкостного сенсорного датчика
- Конструкция печатной платы для цепи емкостного сенсорного датчика
- Код Arduino для емкостного сенсорного датчика на основе ESP32
- Тестирование цепи датчика касания на базе ESP32
- Дальнейшие улучшения
Во многих случаях вместо кнопок используются сенсорные датчики. Преимущество состоит в том, что нам не нужно прикладывать силу для нажатия кнопки, и мы можем активировать клавишу, не касаясь ее, используя сенсорные датчики. Сенсорные технологии становятся популярными день ото дня. А за последнее десятилетие или около того стало трудно представить мир без сенсорной электроники. Оба резистивных и емкостные сенсорные методы могут быть использованы для разработки сенсорного датчика, и в этой статье мы обсудим сырой способ сделать емкостной датчик касания с ESP32, ранее мы также построить емкостные сенсорные кнопки с Raspberry Pi.
Хотя сенсорные датчики для конкретных приложений могут быть немного сложными, фундаментальный принцип, лежащий в основе этой технологии, остается неизменным, поэтому в этой статье мы сосредоточимся на разработке нашего емкостного сенсорного датчика с помощью нашего любимого ESP32 и куска меди. облицованная доска.
В предыдущем уроке мы сделали управление домашним освещением с помощью касания с помощью сенсорного датчика TTP223 и Arduino UNO. Теперь в этом проекте мы создаем сенсор касания для ESP32, но то же самое можно использовать и для Arduino. Кроме того, ранее мы использовали методы сенсорного ввода с использованием емкостных сенсорных панелей с различными микроконтроллерами, такими как взаимодействие сенсорной клавиатуры с микроконтроллером ATmega32 и емкостной сенсорной панели с Raspberry Pi, вы также можете проверить их, если хотите.
Что такое емкостный сенсор касания и как он работает?
Конденсаторы бывают разных форм. Самый распространенный из них - это корпус с выводами или упаковка для поверхностного монтажа, но для формирования емкости нам нужны проводники, разделенные диэлектрическим материалом. Таким образом, его легко создать. Хорошим примером может служить тот, который мы собираемся разработать в следующем примере.
Учитывая, что протравленная печатная плата является проводящим материалом, наклейка действует как диэлектрический материал, поэтому теперь остается вопрос, как прикосновение к медной площадке вызывает изменение емкости таким образом, чтобы контроллер сенсорного датчика мог ее обнаружить? Конечно, человеческий палец.
Что ж, в основном есть две причины: первая связана с диэлектрическими свойствами нашего пальца, вторая - из-за проводящих свойств нашего пальца. Мы собираемся использовать емкостное касание. Итак, мы сфокусируемся на емкостном сенсорном датчике. Но прежде чем мы обсудим все это, важно отметить, что никакой проводимости не происходит, а палец изолирован из-за бумаги, используемой в наклейке. Итак, палец не может разрядить конденсатор.
Палец действует как диэлектрик:
Общеизвестно, что конденсатор имеет постоянное значение, которое может быть определено площадью двух проводящих пластин, расстоянием между пластинами и его диэлектрической постоянной. Мы не можем изменить площадь конденсатора, просто прикоснувшись к нему, но мы можем точно изменить диэлектрическую проницаемость конденсатора, потому что человеческий палец имеет диэлектрическую постоянную, отличную от диэлектрической проницаемости материала, отображающего ее. В нашем случае это воздух, вытесняем воздух пальцами. Если вы спрашиваете, как? Это потому, что диэлектрическая проницаемость воздуха 1006 при комнатной температуре на уровне моря и диэлектрическая проницаемость пальца намного выше около 80, потому что человеческий палец состоит в основном из воды. Таким образом, взаимодействие пальца с электрическим полем конденсатора вызывает увеличение диэлектрической проницаемости, следовательно, увеличивается емкость.
Теперь, когда мы поняли принцип, давайте перейдем к созданию настоящих печатных плат.
Создание четырехпозиционного емкостного сенсорного датчика
Емкостной сенсорный датчик, используемый в этом проекте имеет четыре канала, и это легко сделать. Ниже мы упомянули подробный процесс его изготовления.
Во-первых, мы сделали печатную плату для датчика с помощью инструмента проектирования печатных плат Eagle, которая выглядит примерно так, как показано на рисунке ниже.
С помощью размеров и Photoshop мы сделали шаблон и, наконец, наклейку для датчика, которая выглядит примерно так, как на изображении ниже.
Теперь, когда мы закончили с наклейкой, мы переходим к созданию фактического шаблона плакированной платы, который мы собираемся использовать для изготовления нашей печатной платы, который выглядит примерно так, как на изображении ниже.
Теперь мы можем распечатать этот файл и приступить к изготовлению самодельной печатной платы. Если вы новичок, вы можете прочитать статью о том, как собрать печатную плату в домашних условиях. Вы также можете скачать необходимые файлы PDF и Gerber по ссылке ниже
- Файл GERBER для четырехканального емкостного сенсорного датчика
После этого фактическая гравированная печатная плата будет выглядеть, как на изображении ниже.
Пришло время просверлить отверстия и соединить провода с печатной платой. Чтобы мы могли подключить его к плате ESP32. После этого он будет выглядеть как на изображении ниже.
Поскольку мы не вставляли переходные отверстия в печатную плату, во время пайки припой стал повсюду, мы исправили нашу ошибку, просверлив отверстие на печатной плате, которое вы можете найти в разделе загрузки выше. Наконец пришло время наклеить наклейку и сделать ее окончательной. Это похоже на изображение ниже.
Теперь с сенсорной панелью мы закончили, пора перейти к созданию схемы управления для сенсорной панели.
Материалы, необходимые для схемы с сенсорным управлением ESP32
Компоненты, необходимые для создания секции контроллера с использованием ESP32, приведены ниже, вы сможете найти большинство из них в местном магазине для хобби.
Я также перечислил компоненты в таблице ниже с указанием типа и необходимого количества, поскольку мы подключаем четырехканальный сенсорный датчик и контролируем четыре нагрузки переменного тока, мы будем использовать 4 реле для переключения нагрузки переменного тока и 4 транзистора для создания реле. схемы драйверов.
Sl.No |
Запчасти |
Тип |
Количество |
1 |
Реле |
Переключатель |
4 |
2 |
BD139 |
Транзистор |
4 |
3 |
Винтовой зажим |
Винтовой зажим 5 мм x 2 |
4 |
4 |
1N4007 |
Диод |
5 |
5 |
0,1 мкФ |
Конденсатор |
1 |
6 |
100 мкФ, 25 В |
Конденсатор |
2 |
7 |
LM7805 |
Регулятор напряжения |
1 |
8 |
1K |
Резистор |
4 |
9 |
560R |
Резистор |
4 |
10 |
Желтый светодиод |
СВЕТОДИОД |
4 |
11 |
Мужской заголовок |
Коннектор |
4 |
12 |
Женский заголовок |
Коннектор |
30 |
13 |
Красный светодиод |
СВЕТОДИОД |
1 |
14 |
Плата разработчика ESP32 V1 |
Доска ESP32 |
1 |
12 |
Одетая доска |
Стандартный 50x 50 мм |
1 |
13 |
Перемычки |
Провода |
4 |
14 |
Подключение проводов |
Провода |
5 |
Схема управления для нашего емкостного сенсорного датчика
На изображении ниже показана полная принципиальная схема сенсорного датчика на базе ESP32.
Как видите, это очень простая схема с минимальным количеством необходимых компонентов.
Поскольку это простая схема сенсорного датчика, она может быть полезна в тех местах, где вы хотите взаимодействовать с устройством с помощью касания, например, вместо использования обычного выключателя, установленного на плате, вы можете включать / выключать свои устройства прикосновением.
На схеме цилиндрический разъем постоянного тока используется в качестве входа, где мы обеспечиваем необходимую мощность, необходимую для питания схемы, оттуда у нас есть стабилизатор напряжения 7805, который преобразует нерегулируемый вход постоянного тока в постоянное 5 В постоянного тока, через которое мы обеспечиваем питание модуля ESP32.
Далее на схеме у нас есть сенсорные разъемы на контактах 25, 26, 27, 28, к которым мы собираемся подключить сенсорную панель.
Затем у нас есть наши реле, которые переключаются через транзистор BD139, диоды D2, D3, D4, D5 предназначены для защиты схемы от любого переходного напряжения, которое генерируется при переключении реле, диоды в этой конфигурации известны как обратный диод / обратный диод. Резисторы 560R на базе каждого транзистора используются для ограничения протекания тока через базу.
Конструкция печатной платы для цепи емкостного сенсорного датчика
Печатная плата для нашей схемы сенсорного датчика была разработана для односторонней платы. Мы использовали Eagle для разработки моей печатной платы, но вы можете использовать любое программное обеспечение для проектирования по вашему выбору. 2D изображение нашего дизайна платы показано ниже.
Для создания силовых дорожек был использован достаточный диаметр дорожек, по которым ток пропускается через печатную плату. Мы поместили винтовой зажим вверху, потому что таким образом гораздо проще подключить нагрузку, а разъем питания, который представляет собой цилиндрический разъем постоянного тока, был размещен сбоку, что также обеспечивает легкий доступ. Полный файл дизайна для Eagle вместе с Gerber можно скачать по ссылке ниже.
- Файл GERBER для схемы управления сенсорным датчиком на основе ESP32
Теперь, когда наш дизайн готов, пришло время протравить и припаять плату. После завершения процесса травления, сверления и пайки плата выглядит так, как показано на рисунке ниже.
Код Arduino для емкостного сенсорного датчика на основе ESP32
Для этого проекта мы запрограммируем ESP32 с помощью специального кода, который мы вскоре опишем. Код очень прост и удобен в использовании, Мы начинаем с определения всех необходимых контактов, в нашем случае мы определяем контакты для наших сенсорных датчиков и реле.
#define Relay_PIN_1 15 #define Relay_PIN_2 2 #define Relay_PIN_3 4 #define Relay_PIN_4 16 #define TOUCH_SENSOR_PIN_1 13 #define TOUCH_SENSOR_PIN_2 12 #define TOUCH_SENSOR_PIN_3 27 #define TOUCH_4SENSOR_4SENSOR_4SENSOR_4
Затем, в разделе настройки, мы начинаем с инициализации UART для отладки, затем мы ввели задержку в 1 с, которая дает нам немного времени для открытия окна Serial Monitor. Затем мы используем функцию Arduinos pinMode, чтобы сделать выводы Relay выходными, что знаменует конец раздела Setup () .
void setup () {Serial.begin (115200); задержка (1000); pinMode (Relay_PIN_1, ВЫХОД); pinMode (Relay_PIN_2, ВЫХОД); pinMode (Relay_PIN_3, ВЫХОД); pinMode (Relay_PIN_4, ВЫХОД); }
Мы начинаем наш раздел цикла с оператора if , встроенная функция touchRead (pin_no) используется для определения, касался ли контакт или нет. Функция touchRead (pin_no) возвращает целочисленные диапазоны значений (0 - 100), значение всегда находится около 100, но если мы коснемся выбранного контакта, значение упадет почти до нуля, и с помощью изменяющегося значения, мы можем определить, касался ли конкретный штифт пальцем или нет.
В операторе if мы проверяем любые изменения целочисленных значений, и если значение достигает значения ниже 28, мы можем быть уверены, что подтвердили касание. Как только оператор if становится истинным, мы ждем 50 мс и снова проверяем параметр, это поможет нам определить, было ли значение датчика срабатыванием ложно, после этого мы инвертируем состояние вывода, используя digitalWrite (Relay_PIN_1,! DigitalRead (Relay_PIN_1)) , а остальная часть кода останется прежней.
if (touchRead (TOUCH_SENSOR_PIN_1) <28) {if (touchRead (TOUCH_SENSOR_PIN_1) <28) {Serial.println ("Первый сенсор коснулся"); digitalWrite (Relay_PIN_1,! digitalRead (Relay_PIN_1)); }} else if (touchRead (TOUCH_SENSOR_PIN_2) <28) {if (touchRead (TOUCH_SENSOR_PIN_2) <28) {Serial.println («Датчик 2 затронут»); digitalWrite (Relay_PIN_2,! digitalRead (Relay_PIN_2)); }} else if (touchRead (TOUCH_SENSOR_PIN_3) <28) {if (touchRead (TOUCH_SENSOR_PIN_3) <28) {Serial.println ("Третий датчик затронут"); digitalWrite (Relay_PIN_3,! digitalRead (Relay_PIN_3)); }} else if (touchRead (TOUCH_SENSOR_PIN_4) <28) {if (touchRead (TOUCH_SENSOR_PIN_4) <28) {Serial.println («Четвертый датчик затронут»); digitalWrite (Relay_PIN_4,! digitalRead (Relay_PIN_4)); }}
Наконец, мы завершаем наш код еще 200 мс задержкой блокировки.
Тестирование цепи датчика касания на базе ESP32
Поскольку это очень простой проект, набор для тестирования очень прост, как вы можете видеть, я подключил 4 светодиода с резисторами, которые действуют как нагрузки, так как он подключен к реле, вы можете легко подключить любую нагрузку до 3 ампер.
Дальнейшие улучшения
Хотя печатная плата проста, все еще есть возможности для улучшений, как вы можете видеть с нижней стороны фактической печатной платы, я подключил много резисторов, пытаясь подключить четыре светодиода индикации, и размер печатной платы также можно уменьшить, если это становится требованием, Надеюсь, вам понравилась статья и вы узнали что-то полезное. Если у вас есть какие-либо вопросы, вы можете оставить их в разделе комментариев ниже или использовать наши форумы, чтобы задать другие технические вопросы.