Cómo usar el sensor táctil capacitivo MPR121 con Arduino

How to Use the MPR121 Capacitive Touch Sensor with Arduino

El MPR121 es un controlador de sensor táctil capacitivo que puede detectar hasta 12 electrodos sensibles al tacto. Se usa comúnmente en interfaces sensibles al tacto, instrumentos musicales y otros proyectos interactivos. En este tutorial, le mostraremos cómo conectarse y usar el MPR121 con Arduino para crear aplicaciones basadas en táctil.


Lo que necesitarás

  1. Módulo de sensor táctil MPR121
  2. Arduino Board (por ejemplo, Uno, Mega, Nano)
  3. Cables de placa y jersey
  4. Una computadora con el Arduino IDE instalado

Paso 1: Comprender el módulo MPR121

El MPR121 utiliza la comunicación I2C para interactuar con un microcontrolador. Tiene 12 entradas sensibles al tacto que pueden detectar cambios capacitivos cuando un objeto conductor (por ejemplo, un dedo) está cerca de los electrodos.

MPR121 PINOUT

Alfiler Función
VCC Fuente de alimentación (3.3V/5V)
Gnd Suelo
SDA Línea de datos I2C
SCL Línea de reloj I2C
Irq Salida de interrupción (opcional)

Paso 2: Cableado el MPR121 a Arduino

Aquí le mostramos cómo conectar el MPR121 a un Arduino Uno:

Pin MPR121 Alfiler de arduino
VCC 5V
Gnd Gnd
SDA A4 (SDA)
SCL A5 (SCL)
IRQ (opcional) No conectado

Nota: Para otros tableros Arduino, verifique los pines I2C en la documentación de su junta.


Paso 3: Instale la biblioteca requerida

La biblioteca AdaFruit MPR121 simplifica el trabajo con el sensor.

Pasos para instalar:

  1. Abra el IDE Arduino.
  2. Ir a Bosquejo > Incluir biblioteca > Administrar bibliotecas.
  3. Busque "AdaFruit MPR121" y haga clic Instalar.

Paso 4: cargar el código

Aquí hay un boceto de ejemplo para detectar entradas táctiles del 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
}

Paso 5: prueba la configuración

  1. Conecte el Arduino a su computadora a través de USB.
  2. Abra el IDE Arduino y seleccione el correcto Junta y Puerto bajo el Herramientas menú.
  3. Sube el código al Arduino haciendo clic en Subir.
  4. Abra el monitor en serie (Herramientas > Monitor en serie) y establecer la tasa de baudios en 9600.
  5. Toque los electrodos en el módulo MPR121 y observe el monitor en serie para las entradas táctiles detectadas.

Opcional: Uso del pin IRQ para interrupciones

El pasador IRQ se puede usar para activar una interrupción cuando se detecta un toque, reduciendo la necesidad de sondear constantemente el sensor.

  1. Conecte el IRQ Pin del MPR121 a un pasador digital en el Arduino (por ejemplo, pin 2).
  2. Modifique el código para adjuntar y manejar una detección táctil de interrupción en la rutina de servicio de interrupción (ISR).

Aplicaciones del MPR121

  1. Interfaces táctil capacitiva
  2. Instrumentos musicales
  3. Instalaciones de arte interactivos
  4. Controles basados ​​en gestos

Solución de problemas

  • Sin respuesta del sensor: Verifique las conexiones y la dirección I2C.
  • Detección táctil inconsistente: Asegúrese de que los electrodos estén limpios y conectados adecuadamente.
  • Errores de la biblioteca: Confirme que se instala la biblioteca AdaFruit MPR121.

Conclusión

Has interactuado con éxito el sensor táctil capacitivo MPR121 con Arduino. Este sensor versátil abre posibilidades para crear proyectos interactivos y sensibles al tacto. ¡Experimente con diferentes diseños y configuraciones de electrodos para expandir su funcionalidad!

Escribir un comentario

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.