MPR121 è un controller del sensore di touch capacitivo in grado di rilevare fino a 12 elettrodi sensibili al tocco. È comunemente usato in interfacce sensibili al touch, strumenti musicali e altri progetti interattivi. In questo tutorial, ti mostreremo come connetterti e utilizzare MPR121 con Arduino per creare applicazioni basate su touch.
Cosa avrai bisogno
- Modulo del sensore tocco MPR121
- Arduino Board (ad es. Uno, Mega, Nano)
- Breadboard e fili jumper
- Un computer con l'IDE Arduino installato
Passaggio 1: comprensione del modulo MPR121
MPR121 utilizza la comunicazione I2C per interfacciarsi con un microcontrollore. Ha 12 input sensibili al tocco in grado di rilevare cambiamenti capacitivi quando un oggetto conduttivo (ad esempio un dito) è vicino agli elettrodi.
Pinout MPR121
Spillo | Funzione |
---|---|
VCC | Alimentazione (3.3V/5V) |
GND | Terra |
SDA | Linea di dati I2C |
SCL | Linea di orologio i2c |
Irq | Interrupt output (opzionale) |
Passaggio 2: cablaggio da MPR121 ad Arduino
Ecco come collegare MPR121 a un Arduino Uno:
PIN MPR121 | Arduino Pin |
---|---|
VCC | 5v |
GND | GND |
SDA | A4 (SDA) |
SCL | A5 (SCL) |
IRQ (opzionale) | Non connesso |
Nota: Per altre schede Arduino, verifica i pin i2C nella documentazione della tua scheda.
Passaggio 3: installare la libreria richiesta
La libreria Adafruit MPR121 semplifica il lavoro con il sensore.
Passi da installare:
- Apri l'IDE Arduino.
- Vai a Schizzo > Includi la libreria > Gestisci le biblioteche.
- Cerca "Adafruit MPR121" e fai clic su Installare.
Passaggio 4: caricare il codice
Ecco uno schizzo di esempio per rilevare gli input di tocco dall'MPR121:
#include <Wire.h>
#include "Adafruit_MPR121.h"
Adafruit_MPR121 mpr121 = Adafruit_MPR121();
void setup() {
Serial.begin(9600);
Serial.println("Initializing MPR121...");
if (!mpr121.begin(0x5A)) { // Default I2C address is 0x5A
Serial.println("MPR121 not found. Check connections.");
while (1);
}
Serial.println("MPR121 initialized.");
}
void loop() {
// Read touch status
uint16_t touchStatus = mpr121.touched();
for (uint8_t i = 0; i < 12; i++) {
if (touchStatus & (1 << i)) {
Serial.print("Electrode ");
Serial.print(i);
Serial.println(" touched.");
}
}
delay(100); // Update every 100ms
}
Passaggio 5: testare l'installazione
- Collega l'Arduino al tuo computer tramite USB.
- Apri l'IDE Arduino e seleziona il corretto Asse E Porta sotto il Utensili menu.
- Carica il codice su Arduino facendo clic Caricamento.
- Apri il monitor seriale (Utensili > Monitor seriale) e impostare il tasso di baud su
9600
. - Toccare gli elettrodi sul modulo MPR121 e osservare il monitor seriale per gli ingressi di tocco rilevati.
Opzionale: usando il pin IRQ per gli interrupt
Il perno IRQ può essere utilizzato per attivare un interrupt quando viene rilevato un tocco, riducendo la necessità di pollicare costantemente il sensore.
- Collegare il
IRQ
Pin dell'MPR121 su un perno digitale sull'Arduino (ad esempio, PIN 2). - Modifica il codice per allegare un rilevamento di interruzioni e gestire il rilevamento del touch nella routine di servizio di interruzione (ISR).
Applicazioni dell'MPR121
- Interfacce tocco capacitive
- Strumenti musicali
- Installazioni artistiche interattive
- Controlli basati su gesti
Risoluzione dei problemi
- Nessuna risposta dal sensore: Verifica le connessioni e l'indirizzo I2C.
- Rilevamento incoerente del tocco: Assicurarsi che gli elettrodi siano puliti e correttamente collegati.
- Errori della libreria: Conferma che sia installata la libreria Adafruit MPR121.
Conclusione
Hai interfacciato con successo il sensore di touch capacitivo MPR121 con Arduino. Questo sensore versatile apre possibilità per la creazione di progetti interattivi e sensibili al touch. Sperimenta diversi disegni e configurazioni di elettrodi per espandere la sua funzionalità!