Сенсорная кнопка на базе TP223
Описание
Сенсорная кнопка “TTP223” выполнена на базе микросхемы “TTP223-BA6” в виде бескорпусной платы на емкостном принципе, и может работать в режиме с фиксацией и без фиксации включения при касании рукой или поднесении руки на небольшое расстояние (до 5 мм).
Датчик касания модуля “TTP223” имеет площадку в виде металлизированной поверхности печатной платы с надписью “touch”, при поднесении или касании его рукой, происходит включение светодиода на плате и на выходе “Q” появляется напряжение. На плате имеются две перемычки для настройки режимов выхода “Q” (перемычка A (AHLB) – настройка 0 или 1 на выходе и перемычка B – вкл./выкл. фиксации переключения)
Внешний вид "TTP223" | Принципиальная схема сенсорной кнопки “TTP223” |
Технические характеристики TTP223
- Напряжение питания постоянного тока, В: 2 – 5.5
- Потребляемый ток (в покое, при VCC= 3 В), мкА: 70
- Максимальное время срабатывания (при VCC= 3 В), мС: 220
- Габаритный размер платы, мм: 11x15
Регулировка чувствительности емкостной кнопки
Чувствительность модуля “TTP223” зависит от размера сенсора и конденсатора – C3 (на плате не припаян), место под который расположено на плате между выводом 3 микросхемы и общим проводом (GND).
Для настройки чувствительности “TTP223” можно использовать несколько методов:
- для ее увеличения надо увеличить размер контактной площадки сенсора, для этого с помощью отверстия на площадке, к ней припаивается короткий провод, который соединяется с новой увеличенной контактной площадкой.
- также для увеличения чувствительности можно уменьшить толщину стенки корпуса, за которой будет находиться датчик
- еще один способ увеличения чувствительности – не использовать конденсатор C3 (когда его нет чувствительность максимальная, когда установлен C3 = 50 пикофарад – минимальная). С3 можно использовать в диапазоне от 0 до 50 пФ.
Вариант использования сенсорной кнопки
без использования Arduino
Использование сенсорной кнопки TP223 с Arduino
Начнём с простого: при нажатии на кнопку загорается встроенный светодиод.
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); // Подаём напряжение на LED_BUILTIN - значение для встроенного светодиода } else { // Иначе... digitalWrite(LED_BUILTIN, LOW); // Не подаём напряжение } }
Теперь немного усложним задачу, при нажатии на кнопку будет изменяется режим работы светодиода.
const int buttonPin = 7; // Выставляем значения порта, подсоединённого с сигнал-портом кнопки int count = 0; // Переменная, предназначенная для выбора режима работы 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); } }