Общие сведения:
Trema-модуль Сенсорная кнопка - это емкостная сенсорная кнопка, которая может служить источником сигналов (команд) для Ваших проектов. Кнопки используются для управления устройствами, подачи команд, осуществления настроек, ввода данных и т.д.
Видео:
Спецификация:
- Рабочее напряжение: 3.3/5 В
- Сопротивление прижимающего резистора: 10 кОм
- Рабочая температура: -20 ... 70 °C
- Габариты: 30x30x15 (без учёта выводов)
Все модули линейки "Trema" выполнены в одном формате
Подключение:
Trema-модуль Сенсорная кнопка входит в линейку Trema-модулей, что позволяет подключать её к Arduino через Trema Shield по 4-х проводному шлейфу (который идёт в комплекте с кнопкой) без пайки, без дополнительных проводов и переходников.
Trema-модуль Сенсорная кнопка можно подключать к любому выводу Arduino, как цифровому, так и аналоговому.
Модуль удобно подключать 3 способами, в зависимости от ситуации:
Способ - 1 : Используя проводной шлейф и Piranha UNO
Используя провода «Папа — Мама», подключаем напрямую к контроллеру Piranha UNO.
Способ - 2 : Используя Trema Set Shield
Модуль можно подключить к любому из цифровых или аналоговых входов Trema Set Shield.
Способ - 3 : Используя проводной шлейф и Shield
Используя один 4-х проводной шлейф, к Trema Shield, Trema-Power Shield, Motor Shield, Trema Shield NANO и тд.
Питание:
Рабочее напряжение питания от 3.3В до 5В постоянного тока.
Подробнее о модуле:
Trema-модуль Сенсорная кнопка построена на базе чипа TTP223 и предназначена для коммутации электрических цепей и широко используется в радиоэлектронной аппаратуре.
Trema-модуль Сенсорная кнопка имеет четыре вывода: GND (G), Vcc (V), Signal (K), Trigger(T). В не нажатом состоянии на выходе K присутствует уровень логического «0» (выход прижат к GND через резистор). В нажатом состоянии на выходе K устанавливается уровень логической «1» (выход соединяется с Vcc). Вывод T используется для перевода кнопки в режим триггера — режим, при котором кнопка работает как выключатель с защёлкой. Для этого достаточно подать на вывод T логическую "1". Чтобы кнопка работала в обычном режиме, подайте на выход T логический "0" или отключите данный вывод.
Для работы с модулем нужно сконфигурировать вывод Arduino, подключённый к выходу K, как вход, а к выводу T как выход.
При считывании показаний с модуля нужно учитывать такое явление, как дребезг контактов. При нажатии или отпускании кнопки, её контакты сначала многократно и неконтролируемо замыкаются и размыкаются по причине того, что чип сенсора может улавливать воздействие руки в пограничной зоне, а постоянный логический уровень устанавливается только после окончания дребезга. Это значит, что если 1 раз нажать на кнопку и отпустить её, то алгоритм программы может зафиксировать многократное нажатие на кнопку, если в нём не учитывается подавление дребезга.
Для подавления влияния дребезга на алгоритм скетча, нужно после фиксации изменения логического уровня на выходе кнопки выдержать паузу, равную или превышающую время дребезга.
Примеры:
При работе с кнопкой можно фиксировать её состояния (нажата / отпущена) и события (нажимается / отпускается).
Фиксация всех состояний и событий в режиме кнопки:
const uint8_t pinBTN_K = 10; // Определяем номер вывода к которому подключён вывод К const uint8_t pinBTN_T = 7; // Определяем номер вывода к которому подключён вывод Т void setup(){ pinMode(pinBTN_K, INPUT ); // Конфигурируем вывод к которому подключен вывод К как вход pinMode(pinBTN_T, OUTPUT ); // Конфигурируем вывод к которому подключен вывод Т как выход digitalWrite(pinBTN_T, LOW); // Конфигурируем модуль работать в режиме кнопки } void loop(){ if(digitalRead(pinBTN_K)){ // Если кнопка нажата, то ... delay(1); // Выполняем задержку на 1 мс для подавления дребезга при нажатии на кнопку // КОД ВЫПОЛНЯЕТСЯ ПРИ НАЖАТИИ // Код в данной части скетча выполняется однократно при нажатии на кнопку while(digitalRead(pinBTN_K)){ // Если кнопка удерживается, то ... // КОД ВЫПОЛНЯЕТСЯ ПРИ УДЕРЖАНИИ // Код в данной части скетча выполняется постоянно пока нажата кнопка } } // КОД ВЫПОЛНЯЕТСЯ ЕСЛИ КНОПКА НЕ НАЖАТА // Код в данной части скетча выполняется постоянно пока кнопка не нажата }
В данном примере каждый участок кода выполняется в зависимости от состояния или события кнопки.
Фиксация всех состояний и событий в режиме выключателя с защёлкой:
const uint8_t pinBTN_K = 10; // Определяем номер вывода к которому подключён вывод К const uint8_t pinBTN_T = 7; // Определяем номер вывода к которому подключён вывод Т void setup(){ pinMode(pinBTN_K, INPUT ); // Конфигурируем вывод к которому подключен вывод К как вход pinMode(pinBTN_T, OUTPUT ); // Конфигурируем вывод к которому подключен вывод Т как выход digitalWrite(pinBTN_T, HIGH); // Конфигурируем модуль работать в режиме выключателя с защёлкой } void loop(){ if(digitalRead(pinBTN_K)){ // Если кнопка нажата, то ... delay(1); // Выполняем задержку на 1 мс для подавления дребезга при нажатии на кнопку // КОД ВЫПОЛНЯЕТСЯ ПРИ НАЖАТИИ // Код в данной части скетча выполняется однократно при нажатии на кнопку // В данном случае блок с удержанием не нужен, так как при однократном нажатии кнопка будет "запираться" и выполнять данный блок до тех пор, пока не будет нажата повторно } } // КОД ВЫПОЛНЯЕТСЯ ЕСЛИ КНОПКА НЕ НАЖАТА // Код в данной части скетча выполняется постоянно пока кнопка не нажата }
В любом из указанных скетчей можно использовать не все участки кода, а только те, которые требуются Вам.
Применение:
- Управление устройствами;
- Пульты управления;
- Подача управляющих команд системе и пр.
Обсуждение