Pin-Up кнопки в Ардуино

В этой статье мы поговорим о сенсорных кнопках в ардуино. С помощью этого несложного и недорогого Pin-Up можно создавать простые и очень эффектные проекты. Чаще всего такие кнопки используются для создания всевозможных удобных сенсорных интерфейсов, например в системах умного дома. Давайте узнаем, как можно подключать сенсорные кнопки к ардуино, напишем простой скетч и обязательно рассмотрим принцип их работы.

Сенсорная кнопка

Сенсорные кнопки в АрдуиноНи для кого не секрет, что прогресс не Pin-Up на месте. Постоянно появляются новые технологии, совершенствуются старые. Сенсорные экраны появились совсем недавно (по меркам человечества), но уже прочно вошли в нашу повседневную жизнь. Телефоны, телевизоры, терминалы и прочие в большинстве своём используют «беcкнопочные» технологии. В кавычках это слово по той причине, что они всё-таки используют кнопки, только сенсорные. О них в данной статье как раз и пойдёт речь, а если точнее, о Touch module для Arduino.

Принцип работы сенсорных кнопок

Модули с сенсорными кнопками в большинстве Pin-Up используют проекционно-ёмкостные сенсорные экраны (https:/wikipedia.org/wiki/Сенсорный_экран). Если не вдаваться в пространственные объяснения их работы, для регистрации нажатия используется вычисление изменения ёмкости конденсатора (электрической цепи), при этом важной особенностью является возможность выставлять различную начальную Pin-Up в чём мы убедимся далее.

Принцип работы сенсорной кнопкиЧеловеческое тело обладает некоторой электрической емкостью, а следовательно, и невысоким реактивным сопротивлением для переменного электрического тока. Если прикоснуться пальцем либо каким-либо электропроводящим объектом, то через них потечет небольшой ток утечки от Pin-Up Специальный чип определяет эту утечку и подаёт сигнал о нажатии кнопки. Плюсами данной технологии являются: относительная долговечность, слабое влияние загрязнений и устойчивость к попаданию воды.

Сенсорные или механические кнопки

+ Сенсорная кнопка «ощущает» нажатие даже через Pin-Up слой неметаллического материала, что обеспечиваетразнообразие в использованииеё во всевозможных проектах.

+ Из предыдущего пункта вытекает и этот - возможность использовать сенсорную кнопку внутри Pin-Up повышаетпривлекательностьпроекта, что не влияет на функционал, но достаточно Pin-Up в повседневной жизни, чтобы не обращать на это внимание.

+Стабильное функционирование,которое выражается отсутствием подвижных частей и частой калибровкой (о чём будет сказано ниже). Вам не придется Pin-Up о дребезге кнопок, возникающем при использовании механического собрата, что существенно облегчит жизнь начинающему ардуинщику. Поэтому ещё один плюс, пусть и не для всех -простота при работе.

Из минусов можно отметить следущее:

  • Сенсорные кнопкиплохо работают при минусовых температурах,поэтому они непригодны для Pin-Up за пределами помещений.
  • Высокое потребление электричества,вызванное необходимостью постоянно поддерживать одинаковую ёмкость.
  • Сенсорная кнопка не работает при нажатии её рукой в перчатке либо плохо проводящим Pin-Up объектом

Сенсорные кнопки в Ардуино

Обзор сенсорных кнопок

Прежде чем говорить непосредственно о работе с модулем, нужно определиться с тем, какую именно модель купить для использования. Рассмотрим Pin-Up вариантов различных компаний:

1. Troyka touch sensor

Время отклика:80мс (в режиме энергопотребления) и 10мс (в высокоскоростном Pin-Up

Максимальная Pin-Up диэлектрика для нормальной работы:4 мм

Размер:25Х25 мм

Напряжение питания: 3-5 В

Цена:390₸

Тройка

2. Grove Touch Sensor

Время отклика:220 мс и 80 мс

Максимальная Pin-Up диэлектрика для нормальной работы:2 мм

Размер:20Х20 мм

Напряжение питания: 2-5 В

Цена:229₸

Grove Touch Sensor

3. TTP223B Arduino Digital Touch Pin-Up

Времяотклика:220 мс и 60 мс

Размер:24Х24 мм

Напряжение питания: 2-5 В

Цена:150₸

TTP223B Arduino Digital Touch Sensor

4. Keyestudio touch module

Размер:30Х20 мм

Напряжение питания: 3.3-5 В

Цена:270₸

Keyestudio touch module

Подключение сенсорной кнопки к Ардуино

Для использования сенсорной кнопки, как, впрочем, и всех остальных модулей и датчиков, её необходимо подключить к какой-либо плате arduino. В большинстве случаев используются стандартные модули с тремя контактами: питание, сигнал и земля. Их расположения от модели к модели меняются, на Pin-Up они отображены согласно недавнему перечислению (сенсорная кнопка заменена переключателем по причине её отсутствии в Tincercad):

Сенсорные кнопки в Ардуино

Важный момент: нужно помнить, сенсорной Pin-Up требуется в среднем полусекундная калибровка во время каждого запуска, что позволяет не беспокоиться о лишних шумах, которые, несомненно, возникали бы из-за различного положения кнопки в проектах. Поэтому не стоит сразу после запуска нажимать на кнопку, т.к. после этого наиболее вероятна некорректная работа устройства.

Сенсорный модуль, по своей сути аналогичен цифровой кнопке. Пока кнопка Pin-Up датчик отдаёт логическую единицу, а если нет, то логический ноль.

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

Начнём с простого: при нажатии на кнопку загорается Pin-Up светодиод.

const int buttonPin = 7; // Выставляем значения порта, подсоединённого с сигнал-портом кнопки void setup() { pinMode(LED_BUILTIN, OUTPUT); // Команда для адекватного реагирования светодиода pinMode(buttonPin, INPUT); // Открываем порт для считывания } void loop() { buttonState = digitalRead(buttonPin); // Считываем статус кнопки (нажата / не нажата) if (digitalRead(buttonPin)) { /.. digitalWrite(LED_BUILTIN, HIGH); // Подаём Pin-Up на LED_BUILTIN - значение для встроенного светодиода } else { /.. digitalWrite(LED_BUILTIN, LOW); // Не подаём напряжение } }

Теперь усложним Pin-Up Нажатием на кнопку изменяется режим работы светодиода.

const int buttonPin = 7; // Выставляем значения порта, подсоединённого с сигнал-портом кнопки int count = 0; // Переменная, предназначенная для Pin-Up режима работы void setup() { pinMode(LED_BUILTIN, OUTPUT); // Команда для адекватного реагирования светодиода pinMode(buttonPin, INPUT); // Открываем порт для считывания } void loop() { if(digitalRead(buttonPin)){ /.. count = count + 1; // Изменяем режим кнопки if(count > 2){ //В случае превышения значения count начинаем отсчет сначала count = 0; } while(digitalRead(buttonPin)){ // Пустой цикл для ожидания, пока пользователь отпустит кнопку } } if(count == 0) { // 3 режима по переключению кнопки: digitalWrite(LED_BUILTIN, LOW); // 1: Выключенный светодиод } else if(count == 1) { digitalWrite(LED_BUILTIN, HIGH); // 2: Включенный } else { digitalWrite(LED_BUILTIN, HIGH); // 3: Мигающий delay(100); digitalWrite(LED_BUILTIN, LOW); delay(100); } }

Заключение

В этой статье мы с вами рассмотрели принцип работы и схему подключения сенсорной кнопки к платам Arduino. С точки зрения программной модели никаких особенных отличий при работе с таким видом кнопок нет. Вы просто анализируете уровень входящего сигнала и принимаете решение о своем действии. С учетом того, что сами модули сенсорных кнопок достаточно дешевы и доступны в большом Pin-Up интернет-магазинов, добавить такой интересный и современный интерфейс к своему ардуино-проекту на составит никакого труда.

2 КОММЕНТАРИИ

ОСТАВЬТЕ ОТВЕТ

Please enter your comment!
Please enter your name here