Модуль подключения по интерфейсу I2C для сенсорной 16-кнопочной клавиатуры на TTP229 от Robotdyn. Предназначен для построения систем ввода данных или замены кнопочных и мембранных клавиатур.
Данный 16-канальный модуль используется совместно с емкостными клавиатурами и имеет два режима работы. Модуль можно подключать по шине I2C к различным микроконтроллерам (Arduino, Raspberry, STM).
Характеристики:
-
Микросхема: 16-канальный TTP229
-
Напряжение питания: от 2.4 до 5.5В
-
Размеры: 30 x 40 мм
Пример скетча
#include <wire.h>
#define ttp229 (0xAF>>1)
uint16_t data_out=0; uint16_t data1,data2; int count=0; boolean count2=false; int button[16]; int oldata[16];
void setup()
{ Serial.begin(9600); Wire.begin(); }
void loop() { Wire.requestFrom(ttp229,2,true); delay(1);
while(Wire.available()) { data1=Wire.read(); data2=Wire.read(); data_out=(data1<<8)|data2; for(int i=1;i<17;i++) { uint16_t contrast=0x8000;
if(data_out & contrast) { //Serial.println(i); button[count]=i; count++; delay(1); } data_out<<=1; }
if(count2) { switch(count) { case 1: if(oldata[0]==button[0]) { Serial.println(button[0]); delay(20); } break;
case 2: if(oldata[0]==button[0]&&oldata[1]==button[1]) { for(int i=0;i<2;i++)
{ Serial.print(button[i]); Serial.print(" "); delay(10); } } break; } } delay(50);
for(int i=0;i<16;i++) { oldata[i]=button[i]; } count=0; count2=!count2; } }
Ссылки: