Cum se folosește senzorul de atingere capacitiv MPR121 cu Arduino

How to Use the MPR121 Capacitive Touch Sensor with Arduino

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

  1. MPR121 Modul senzor tactil
  2. Arduino Board (de exemplu, Uno, Mega, Nano)
  3. Tablă de pâine și jumper
  4. 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:

  1. Deschideți IDE Arduino.
  2. Du -te la Schiţa > Include biblioteca > Gestionați bibliotecile.
  3. 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

  1. Conectați Arduino la computer prin USB.
  2. Deschideți IDE Arduino și selectați corect Bord şi Port sub Instrumente meniu.
  3. Încărcați codul la Arduino făcând clic pe Încărcați.
  4. Deschideți monitorul în serie (Instrumente > Monitor în serie) și setați rata de transfer la 9600.
  5. 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.

  1. Conectați IRQ Pinul MPR121 la un pin digital de pe Arduino (de exemplu, pinul 2).
  2. Modificați codul pentru a atașa o întrerupere și gestionarea detectării atingerii în rutina serviciului de întrerupere (ISR).

Aplicațiile MPR121

  1. Interfețe tactile capacitive
  2. Instrumente muzicale
  3. Instalații de artă interactivă
  4. 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!

Lasă un comentariu

Notice an Issue? Have a Suggestion?
If you encounter a problem or have an idea for a new feature, let us know! Report a problem or request a feature here.