Сенсорная кнопка (Trema-модуль v2.0)

Общие сведения:

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 мс для подавления дребезга при нажатии на кнопку
            // КОД ВЫПОЛНЯЕТСЯ ПРИ НАЖАТИИ           // Код в данной части скетча выполняется однократно при нажатии на кнопку
            // В данном случае блок с удержанием не нужен, так как при однократном нажатии кнопка будет "запираться" и выполнять данный блок до тех пор, пока не будет нажата повторно
        }
    }
            // КОД ВЫПОЛНЯЕТСЯ ЕСЛИ КНОПКА НЕ НАЖАТА // Код в данной части скетча выполняется постоянно пока кнопка не нажата
}

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

Применение:

  • Управление устройствами;
  • Пульты управления;
  • Подача управляющих команд системе и пр.

Ссылки:

Обсуждение