Arduino Lektion 86: kapazitives Touchpad MPR121

In diesem Tutorial möchte ich das kapazitive Touchpad „MPR121“ vorstellen.

kapazitives Touchpad MPR121
kapazitives Touchpad MPR121

Das kapazitive Touchpad hat 10 Felder welche als Taster verwendet werden können.

Bezug

Das kapazitive Touchpad „MPR121“ kann für knapp 6,65€ bei ebay.de erworben werden.

Technische Daten des Kapazitiven Touchpad MPR121

  • Betriebsspannung – 3.3V
  • Ausgang – I2C
  • Abmaße – 48mm x 78mm

Anschluss

Das kapazitive Touchpad „MPR121“ vefügt über 5 Pins welche wiefolgt angeschlossen werden.

MPR121Arduino LeonardoArduino UNO
VCC3.3V3.3V
GNDGNDGND
SDASDAanaloger Pin A4
SCLSCLanaloger Pin A5
IRQbleibt frei*bleibt frei*

* Bei der Verwendung der Bibliothek von Adafruit wird dieser Pin nicht gesetzt. Es gibt jedoch andere Bibliotheken da wird dieser Pin wiederum benötigt.

Schaltung

Im folgenden möchte ich zeigen wie man das kapazitive Touchpad MPR121 an den Arduino Leonardo anschließt. Der Arduino Leonardo verfügt über die Fähigkeit als USB HID zu dienen d.h. der Microcontroller kann eine Tastatur & Maus emulieren.

kapazitives Touchpad MPR121 am Arduino Leonardo
kapazitives Touchpad MPR121 am Arduino Leonardo

Besonderheiten beim betrieb von 2 Touchpads

Man kann theoretisch 4 MPR121 Boards an einem Microcontroller betreiben, jedoch ist bauartbedingt bei dem mir vorliegenden Modul nur möglich zwischen den Adressen 0x5A & 0x5B zu wählen.

Die Wahl der Adresse erfolgt durch das setzen eines Lötpunktes auf dem Shield.

wahl der Adresse für ide I2C Kommunikation am kapazitiven Touchpad MPR121
wahl der Adresse für ide I2C Kommunikation am kapazitiven Touchpad MPR121

Hinweis

Es gibt im Internet ein Datenblatt (leider nur auf Englisch) zum Chip MPR121 unter https://www.sparkfun.com/datasheets/Components/MPR121.pdf dieses Datenblatt befasst sich jedoch nur mit dem Chip. Des Weiteren gibt es diverse andere Boards welche den gleichen Chip haben jedoch zusätzlich einen ADDR Pin besitzen. Über diesen zusätzlichen ADDR Pin kann man die Adresse bei diesen Boards bestimmen, somit sind max. 4 Boards an einem I2C Bus lauffähig. In dem mir vorliegenden Board kann man wie bereits erwähnt die Adresse mittels Lötpunkt setzen und kann somit nur 2 Boards an einem I2C Bus verwenden. 

Quellcode

Bibliothek MPR121 von Adafruit

Von der Firma Adafruit gibt es eine sehr gute Bibliothek mit welcher ich das Board zum laufen gebracht habe und vor allem kann man mit dieser Bibliothek mehr als ein Board am I2C Bus betreiben.

Bibliothek "MPR121" von Adafruit
Bibliothek „MPR121“ von Adafruit

Wie man eine Bibliothek in der Arduino IDE installiert, habe ich im gleichnamigen Tutorial Arduino IDE, Einbinden einer Bibliothek ausführlich erläutert.

Beispiel mit einem Board

Hier nun ein kleines Beispiel mit einem Board am Arduino Leonardo.

Als Grundlage zu diesem Sketch diente mir das Beispiel „MPR121test“ welches der Bibliothek beiliegt.

Video

 

Beispiel mit 2 Boards

Wie bereits erwähnt muss zunächst auf einem Board ein Lötpunkt für die Adresse 0x5B gesetzt werden. D.h. die beiden unteren Lötaugen werden verbunden.

kapazitives Touchpad MPR121 Adresse 0x5B gesetzt durch ein Lötpunkt
kapazitives Touchpad MPR121 Adresse 0x5B gesetzt durch ein Lötpunkt

Sketch

Video

2x kapazitives Touchpad MPR121 am Arduino Leonardo

Fazit

Die Programmierung eines Boards ist relativ einfach gewesen jedoch beim zweiten Board war es deutlich schwieriger da hier das Datenblatt und die Beschreibungen zum Chip MPR121 Informationen liefern welche zu dem mir vorliegenden Shield nicht passen. Ich muss gestehen das ich mich hier der Schwarmintelligenz bedient habe und einen Beitrag in der Facebook Gruppe „Arduino Deutschland“ abgesetzt habe, dort wurde mir auf die Sprünge geholfen und ich habe herausgefunden das die beiden fast unscheinbaren Lötpunkte zum setzen von Adressen sind.

Nachdem das Problem gelöst war, war der Rest schon wieder banal den was mit einem Board funktioniert, funktioniert auch mit zwei 🙂 hier war zu Nummer nur ein Offset von 12 zuzurechnen.

 

Ein Gedanke zu „Arduino Lektion 86: kapazitives Touchpad MPR121

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.