Модуль TTP223B - готовая сенсорная кнопка для ваших DIY-проектов

Оценка товара
Благодарности
1

Брал сразу 10 шт., получается примерно по 10 руб. за штуку, что, по-моему, довольно дёшево по сравнению с обычными таковыми кнопками, особенно учитывая, что здесь мы получаем целую схему, а не просто подпружиненный кусок пластика и/или металла. В целом, товаром вполне доволен, кнопка реагирует исправно и поддерживает целых 4 (!) режима работы (но об этом ниже).

История покупки

Относительно недавно я приобрёл двойной Wi-Fi выключатель Sonoff ITEAD DUAL (скоро напишу обзор), так вот, в нём оказалась в наличии недокументированная возможность подключения кнопок, хотя изначально предполагалось только управление по Wi-Fi (и по таймерам). Сначала я установил две тактовых кнопки, однако кнопка одного из каналов почему-то срабатывала через раз (а то и с 3-го и более раза).

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

Таким образом, скорее всего, достаточно было бы просто подключить какую-нибудь тонкую проводящую пластинку к сигнальному проводу (второй провод в колодке является землёй) в качестве сенсорного поля. Но об этом я догадался только прочитав документацию на модуль TTP223 - героя этого обзора.

Контакт же земли, скорее всего, нужен, чтобы по желанию повесить между ним и сенсорным электродом небольшую ёмкость (менее 50 пФ) для настройки чувствительности сенсора (см. схему ниже):

Но я пошёл сложным путём и подключил туда весь модуль TTP223B (если кто-то всё-таки обойдётся простым электродом, прошу отписаться в комментариях).

Подключение и использование модуля

Поскольку с точки зрения выходной схемы это обычная кнопка, то и каких-то особых библиотек для управления ею с Arduino не требуется. Это я к тому, что, как выяснилось (см. статью: https://www.compel.ru/lib/ne/2011/9/7-sensornyie-knopki-s-resheniyami-ot-stm-eshhe-proshhe) на микроконтроллерах STM бывают специальные выводы, сразу для подключения сенсорного электрода, то же есть и у контроллера ESP8285, который как раз и используется в Sonoff DUAL (см. схему ниже), в этом случае, насколько я понимаю, никаких дополнительных модулей не требуетcя, однако требуется специальная программная обработка.

На мой взгляд, это очередной раз доказывает, что выбор контроллеров от AVR для платформы Arduino - это явно не самый лучший вариант. Ранее меня удивило отсутствие поддержки отладки прямо на кристалле (точнее, она в некоторой степени реализована в виде закрытого интерфейса DebugWire, для подключения к которому требуется дорогостоящее оборудование, правда, есть поделки и от "кулибиных" - ищите в Интернете, однако даже с ними подключиться можно далеко не к каждой плате Arduino и уж тем более отсутствует программная поддержка отладчиков в Arduino IDE.

Это я отвлёкся, конечно, а если по существу, то главным отличием сенсорной кнопки является отсутствие движущихся частей. Она может работать значительно дольше, чем механическая. Кроме того, сенсорный модуль может располагаться внутри корпуса и вообще не контактировать с человеком напрямую - на то он и бесконтактный.

Однако, если он не встроен в МК (как в нашем случае), то для его работы нужно уже три контакта, а не два, как для кнопки. Поэтому мне пришлось вскрывать корпус Sonoff, чтобы добраться до не распаянных контактов RX, TX, GND и заветного VCC. А чтобы упростить подключение, я распаял контактную гребёнку и на самом модуле:

Кстати, чтобы проверить работоспособность модуля, я воспользовался отличной программой для Windows 10 - Windows Remote Arduino Experience (https://www.microsoft.com/store/productId/9NBLGGH2041M). Эта программа написана самой Microsoft в рамках инициативы Windows IoT. Она позволяет без написания тестовых программ для МК подавать сигналы на ножки контроллера с помощью программных переключателей, и считывать их. Однако, предварительно на контроллер должна быть загружена программа StandardFirmdata, которую можно найти на GitHub или в примерах Arduino IDE.

Мало того, оказалось есть и программа, так сказать, решающая обратную задачу - Windows Virtual Shields for Arduino (https://www.microsoft.com/store/productId/9NBLGGGZ0MLD) - она позволяет передавать информацию с сенсоров ПК (или планшета на Windows 10), в качестве имитации входящих данных для программы на Arduino - это может быть сенсорный экран, GPS, камера, распознавание речи и не только!

Варианты исполнения микросхемы TTP223

Судя по даташиту, эта микросхема исполняется в трёх вариантах корпуса, и в нашем случае используется самый упрощённый вариант. В чём заключается упрощение? Технически во всех трёх случаях - это одна и та же микросхема, однако в нашем шестиножечном варианте отсутствует ряд ножек точной настройки, влияющих на поведение модуля.

Проще сказать, что осталось, а остались у нас только контакты, влияющие на поведение модуля как тактовой кнопки или как кнопки с фиксацией (перемычка B) и активный уровень (ноль или единица - перемычка А). К сожалению, данный продавец не удосужился расписать это, привожу ниже описание из лота другого продавца:

Т.к. в Sonoff один из контактов, который подходит у нас к каждой кнопке - это земля, я ошибочно решил, что нужно закоротить перемычку А, чтобы сенсор активировался низким уровнем. Однако, это скорее всего было ошибкой (см. самую первую схему).

А что же мы имеем в других корпусах данной микросхемы (кстати, не знаю, бывают ли они в виде готовых модулей)? В промежуточном восьминожечном варианте (обозначение TTP223-D) у нас появляются дополнительные контакты MOTB (Maximum key on duration time) и LPMB (Low Power Mode).

LPMB отвечает за включение режима экономии энергии (в нашем случае всегда включён). Влияет на частоту опроса сенсора: в режиме энергосбережения частота замедляется до первого касания, после чего на некоторое время режим экономии отключается и частота повышается, затем возвращается к низкому значению (см. графики ниже):

Второй контакт, MOTB, можно сказать, выступает в роли опции защиты от зажатия кнопки (в нашем случае всегда отключена). При включённой защите контакт автоматически возвращается в неактивное состояние, если он удерживается дольше определённого времени (100 секунд при питании модуля от 3 В). Таким образом, чтобы активировать контакт снова, потребуется сначала убрать объект, вызвавший слишком долгую активацию сенсора.

Оценка товара
Благодарности
1
Товар на eBay
Поделитесь отзывом
Или скопируйте реферальную ссылку
войдите через соцсеть
чтобы получить ссылку
Показать комментарии Скрыть комментарии