Berührungsempfindliche Tasten auf beliebigen Oberflächen mit dem MPR121 kapazitiven Sensor
Komponenten und Zubehör
| Bauteil | Menge |
|---|---|
| Arduino UNO | 1 |
| Adafruit MPR121 Kapazitiver Touch-Sensor Breakout (12 Kanäle) | 1 |
| LED (beliebig, z. B. 3 mm rot) | 1 |
Software & Tools
- Arduino IDE
- MPR121-Bibliothek von Bare Conductive: GitHub
Projektbeschreibung
Der MPR121 ist ein 12-Kanal-Kapazitivsensor, der Berührung über Änderungen der Kapazität detektiert. Er eignet sich hervorragend, um beliebige leitfähige Oberflächen (Metallfolie, leitfähige Farbe, Kupferband) in berührungsempfindliche Tasten zu verwandeln.
Wichtige Eigenschaften
- Interrupt-Pin (IRQ): Signalisiert Berührungs- oder Loslassereignisse – ermöglicht schnelle Reaktionszeiten ohne Polling im Loop.
- I²C-Adresse konfigurierbar: Über den ADDR-Pin: Standard 0x5A (GND), 0x5B (3V3), 0x5C (SDA), 0x5D (SCL). Bei Clones kann die Adresse abweichen – I²C-Scanner nutzen.
- Versorgungsspannung: 3,3 V! Nicht direkt an 5 V anschließen. Die I²C-Leitungen vertragen 5 V durch die offene-Kollektor-Struktur meist problemlos; bei Problemen Logic-Level-Converter verwenden.
Verkabelung (I²C)
| MPR121 Pin | Arduino UNO Pin |
|---|---|
| VCC | 3,3 V |
| GND | GND |
| SDA | A4 |
| SCL | A5 |
| IRQ | Digital 4 (Interrupt-fähig) |
Die Elektroden (E0–E11) werden mit leitfähigem Material (Kupferband, leitfähige Farbe, Alufolie) verbunden, das die Berührungsfläche bildet.
Anwendungsbeispiele
- Interaktives Lernspiel für Kinder: Buchstaben aus leitfähiger Farbe, Berührung löst MP3-Ausgabe aus (2× MPR121 = 24 Kanäle).
- Steuerpult aus Bare Conductive Electric Paint auf Papier oder Holz.
- Unsichtbare Tasten hinter Glas, Kunststoff oder dünnem Holz.
Code-Beispiel: LED an Pin 3 per Touch ein/aus
Elektrode 0 = Einschalten, Elektrode 1 = Ausschalten. Nutzt Interrupt-Pin für ereignisgesteuerte Abfrage.
#include <MPR121.h>
#include <Wire.h>
#define NUM_ELECTRODES 2
#define LED_PIN 3
void setup() {
Serial.begin(115200);
Serial.println(F("System gestartet"));
pinMode(LED_PIN, OUTPUT);
Wire.begin();
// 0x5A ist Standardadresse bei Adafruit/Bare Conductive Boards
if (!MPR121.begin(0x5A)) {
Serial.println(F("Fehler bei MPR121-Initialisierung"));
switch (MPR121.getError()) {
case NO_ERROR: Serial.println(F("kein Fehler")); break;
case ADDRESS_UNKNOWN: Serial.println(F("falsche Adresse")); break;
case READBACK_FAIL: Serial.println(F("Readback-Fehler")); break;
case OVERCURRENT_FLAG: Serial.println(F("Überstrom an REXT")); break;
case OUT_OF_RANGE: Serial.println(F("Elektrode außerhalb Bereich")); break;
case NOT_INITED: Serial.println(F("nicht initialisiert")); break;
default: Serial.println(F("unbekannter Fehler")); break;
}
while (1); // Halt
}
MPR121.setInterruptPin(4);
MPR121.setTouchThreshold(40); // Empfindlichkeit anpassen
MPR121.setReleaseThreshold(20); // Hysterese
MPR121.updateTouchData();
}
void loop() {
if (MPR121.touchStatusChanged()) {
MPR121.updateTouchData();
for (int i = 0; i < NUM_ELECTRODES; i++) {
if (MPR121.isNewTouch(i)) {
if (i == 0) digitalWrite(LED_PIN, HIGH);
} else if (MPR121.isNewRelease(i)) {
if (i == 1) digitalWrite(LED_PIN, LOW);
}
}
}
}
Tipps & Tricks
- Schwellenwerte (
setTouchThreshold,setReleaseThreshold) an Anwendung anpassen: niedriger = empfindlicher, höher = unempfindlicher gegen Störungen. - Lange Leitungen zu den Elektroden erhöhen Parasitkapazität – ggf. abgeschirmte Kabel oder kürzere Wege wählen.
- Mehrere MPR121 über unterschiedliche I²C-Adressen kaskadierbar (bis 4 Boards = 48 Kanäle).
- Für batteriebetriebene Projekte: MPR121 hat sehr niedrigen Stromverbrauch im Standby (~20 µA).
Herstellungsprozess
- Blitzdetektion mit Raspberry Pi und AS3935: Praktischer Leitfaden
- Hamster-Fitness-Tracker mit Raspberry Pi: Tägliche Laufrad-Aktivität messen
- Einstieg in IoT und MQTT: Code-freies ESP8266 Tutorial
- Nahtlose Arduino–Raspberry Pi 2 I2C-Integration für IoT-Sensorprojekte
- DNA-Speicher in Alltagsobjekten: 3D-gedruckter Hase trägt eigenen Bauplan
- Menschzentrierte Supply-Chain-Transformation: Effizienz und Resilienz steigern
- Smart Lathe: Fortschrittliche Touchscreen-Steuerungen für Präzisionsbearbeitung
- OmniFibers: Intelligenter Stoff reguliert Atmung für Leistung & Erholung
- Vom Konzept zur Realität: Kreative Designs in greifbare Produkte verwandeln
- Vorteile der CNC-Drehfräsbearbeitung (Mill-Turn) entdecken