MPR121 este un controler de senzor tactil capacitiv care poate detecta până la 12 electrozi sensibili la atingere. Este utilizat în mod obișnuit în interfețe sensibile la atingere, instrumente muzicale și alte proiecte interactive. În acest tutorial, vă vom arăta cum să vă conectați și să utilizați MPR121 cu Arduino pentru a crea aplicații bazate pe atingere.
Ce vei avea nevoie
- MPR121 Modul senzor tactil
- Arduino Board (de exemplu, Uno, Mega, Nano)
- Tablă de pâine și jumper
- Un computer cu IDE Arduino instalat
Pasul 1: Înțelegerea modulului MPR121
MPR121 folosește comunicarea I2C pentru a interfața cu un microcontroler. Are 12 intrări sensibile la atingere care pot detecta modificări capacitive atunci când un obiect conductiv (de exemplu, un deget) este aproape de electrozi.
MPR121 PINOUT
Ac | Funcţie |
---|---|
VCC | Sursă de alimentare (3.3V/5V) |
GND | Sol |
SDA | Linia de date I2C |
SCL | Linia de ceas I2C |
Irq | Ieșire de întrerupere (opțional) |
Pasul 2: Cablarea MPR121 către Arduino
Iată cum să conectați MPR121 la un Arduino Uno:
Pin MPR121 | Pinul Arduino |
---|---|
VCC | 5V |
GND | GND |
SDA | A4 (SDA) |
SCL | A5 (SCL) |
IRQ (opțional) | Nu este conectat |
Nota: Pentru alte panouri Arduino, verificați pinii I2C din documentația consiliului dvs.
Pasul 3: Instalați biblioteca necesară
Biblioteca Adafruit MPR121 simplifică lucrul cu senzorul.
Pași pentru instalare:
- Deschideți IDE Arduino.
- Du -te la Schiţa > Include biblioteca > Gestionați bibliotecile.
- Căutați „Adafruit MPR121” și faceți clic pe Instala.
Pasul 4: Încărcați codul
Iată un exemplu de schiță pentru a detecta intrările de atingere din 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
}
Pasul 5: Testați configurarea
- Conectați Arduino la computer prin USB.
- Deschideți IDE Arduino și selectați corect Bord şi Port sub Instrumente meniu.
- Încărcați codul la Arduino făcând clic pe Încărcați.
- Deschideți monitorul în serie (Instrumente > Monitor în serie) și setați rata de transfer la
9600
. - Atingeți electrozii de pe modulul MPR121 și observați monitorul în serie pentru intrările de atingere detectate.
Opțional: Utilizarea pinului IRQ pentru întreruperi
Pinul IRQ poate fi utilizat pentru a declanșa o întrerupere atunci când este detectată o atingere, reducând nevoia de a sonda constant senzorul.
- Conectați
IRQ
Pinul MPR121 la un pin digital de pe Arduino (de exemplu, pinul 2). - Modificați codul pentru a atașa o întrerupere și gestionarea detectării atingerii în rutina serviciului de întrerupere (ISR).
Aplicațiile MPR121
- Interfețe tactile capacitive
- Instrumente muzicale
- Instalații de artă interactivă
- Controale bazate pe gesturi
Depanare
- Fără răspuns din partea senzorului: Verificați conexiunile și adresa I2C.
- Detectarea inconsistentă a atingerii: Asigurați -vă că electrozii sunt curate și conectați corespunzător.
- Erori de bibliotecă: Confirmați că este instalată biblioteca AdaFruit MPR121.
Concluzie
Ați interfațat cu succes senzorul de atingere capacitiv MPR121 cu Arduino. Acest senzor versatil deschide posibilități pentru crearea de proiecte interactive și sensibile la atingere. Experimentați cu diferite proiecte și configurații de electrozi pentru a -și extinde funcționalitatea!