In diesem Beitrag möchte ich dir zeigen, wie du das Touch Keypad vom Typ KS0260 mit 16 Tasten am Arduino programmieren kannst.
Das Touch Keypad wird in einem kleinen Karton fertig aufgebaut geliefert, du brauchst also eigentlich nur noch 4 Breadboardkabel und einen Mikrocontroller.
Bezug des Touchkeypad
Das mir vorliegende Modell habe ich auf ebay.de für knapp 4,7 € zzgl. Versandkosten* bestellt.
Hinweis von mir: Die mit einem Sternchen (*) markierten Links sind Affiliate-Links. Wenn du über diese Links einkaufst, erhalte ich eine kleine Provision, die dazu beiträgt, diesen Blog zu unterstützen. Der Preis für dich bleibt dabei unverändert. Vielen Dank für deine Unterstützung!
Aufbau
Das Touchkeypad KS0260 wird per I2C angeschlossen und somit ergeben sich 4 Pins welche mit dem Mikrocontroller verbunden werden.
Anschluss an den Mikrocontroller
Das Modul verfügt über eine 4 polige Stiftleiste, welche wir mit einfachen Breadboardkabel an den Mikrocontroller anschließen können.
Wie auf dem Bild oben zu sehen verfügt das Modul über eine I2C Schnittstelle, somit ergibt sich nachfolgender Anschlussplan:
KS0260 | Arduino Mikrocontroller |
---|---|
3V3 | 3.3V |
SDA | analoger Pin A4 |
SCL | analoger Pin A5 |
GND | GND |
Für diesen Beitrag verwende ich den Funduino UNO, welcher dem Arduino UNO sehr ähnlich ist.
Anschluss & Programmieren
Im nachfolgenden YouTube Video erläutere ich dir, wie du das Touch Keypad KS0260 von Keyestudio an den Funduino UNO anschließt und programmierst.
Programmieren
Für die Programmierung des Touchkeypad Typ KS0260 benötigen wir noch eine Bibliothek, diese können wir über die Wiki-Seite Ks0260 keyestudio TTP229L 16-key Touch Sensor als RAR-Datei inkl. Beispiel herunterladen.
Da jedoch das Beispiel vom Hersteller unnötige Ausgaben auf der seriellen Schnittstelle erzeugt und auch die Tasten dort nicht ausreichend beschrieben sind, habe ich mir die Zeit genommen und die Bibliothek erweitert.
Du kannst diese Bibliothek unter nachfolgenden Link herunterladen und als ZIP-Bibliothek in der Arduino IDE installieren (was bei der RAR-Datei nicht möglich war / ist).
Verwenden der Bibliothek
Wie erwähnt lässt sich die ZIP-Datei als Bibliothek in die Arduino IDE einbinden und auch enthält diese ein kleines Beispiel.
Die 16 Tasten haben nun jeweils einen Namen und können über diesen angesprochen werden. Um an diese Namen zu gelangen, müssen wir lediglich die Klasse KS0260Button initialisieren und können dann auf die Konstanten zugreifen.
Jetzt kann man recht easy mit einem If-Statement prüfen, ob die gedrückte Taste einem der Buttons entspricht.
data = TTP229_i2c_read(); if (data != 2 && data != 0) { String button = "-undefine-"; switch (data) { case btns.button_power: button = "Power"; break; } }
In dem Code Snipped klammer ich die Werte 2 & 0 aus, denn diese werden abwechselnd ausgegeben, auch wenn keine Taste betätigt wird.
Beispiel
Nachfolgend das Beispiel, welches ich der ZIP-Datei beigelegt habe.
#include "TTP229L_I2C.h" unsigned int data; #define debugKs0260 false KS0260Buttons btns = KS0260Buttons(); btns.button_ void setup() { Serial.begin(9600); } void loop() { data = TTP229_i2c_read(); if (data != 2 && data != 0) { String button = "-undefine-"; switch (data) { case btns.button_power: button = "Power"; break; case btns.button_raspberry: button = "Raspberry"; break; case btns.button_up: button = "Up"; break; case btns.button_down: button = "Down"; break; case btns.button_left: button = "Left"; break; case btns.button_right: button = "Right"; break; case btns.button_home: button = "Home"; break; case btns.button_triangle: button = "Triangle"; break; case btns.button_quare: button = "Quare"; break; case btns.button_circle: button = "Circle"; break; case btns.button_cross: button = "Cross"; break; case btns.button_l: button = "L"; break; case btns.button_minus: button = "Minus (-)"; break; case btns.button_plus: button = "Plus (+)"; break; case btns.button_r: button = "R"; break; default: Serial.println("Unknown Code[" + String(data, DEC) + "] found!"); } Serial.println(button); } }
Wenn man diesen Code auf dem Mikrocontroller überspielt und Tasten auf dem Touch Keypad betätigt, dann wird der jeweilige Text auf der seriellen Schnittstelle ausgegeben.