Saltar al contenido

Arduino UNO: Sensor táctil MPR121 – Tutorial – 2019

Conexiones MPR121 y arduino UNO
Conexiones MPR121 y arduino UNO

Arduino UNO: Sensor táctil MPR121. Tutorial de Arduino UNO Sensor táctil para usar el módulo MPR121.

 

Arduino UNO: Sensor táctil MPR121

Sensor táctil MPR121
Sensor táctil MPR121

Este sensor tiene una característica, se comporta como un táctil capacitivo, usando la interfaz I2C, y lo mejor utiliza 2 pines.

Sensor táctil MPR121 reverso
Sensor táctil MPR121 reverso

Mirando la parte del reverso, podemos encontrar 4 puentes, ojo podemos romperlos SI NO se usa la resistencia PullUp.

Adicionalmente puedes romper el ADD para cambiar la dirección, por ejemplo si va a usar otro MPR121 al bus I2C.

Un electrodo puede estar compuesto por cualquier superficie conductora, cobre, metal, papel metálico, que active el electrodo, a veces no es necesario hacer contacto.

Depende la calibración, esto se hace con umbrales que usan los módulos como punto de referencia, dando lugar a un touch o no touch.

Es posible configurar los electrodos inactivos para definirlos como salidas de LEDs.

 

Te puede interesar

 

Materiales

  • Arduino UNO R3
  • Módulo MPR121 Sensor Capacitivo Táctil
  • Cable Dupont – hembra a macho 20 cm x 20Und

 

Conexión Arduino UNO y MPR121

Te recordamos que la transferencia es a través de I2C de Arduino, el pin varía dependiendo la placa que vayas a utilizar.

La alimentación es de 3.3v, el pin IRQ va al interruptor externo que viene por defecto en Arduino.

Cómo conectar el módulo MPR121 y Arduino:

MPR121 Arduino UNO – NANO – MINI – PRO Arduino MEGA 2560 Arduino DUE
3.3v Pin 3.3v (*) Pin 3.3v (*) Pin 3.3v (*)
IRQ Pin 2 (**) Pin 2 (**) Pin 2 (**)
SCL Pin A5 Pin 21 Pin 21
SDA Pin A4 Pin 20 Pin 20
GND Pin GND Pin GND Pin GND

Importante: El módulo PMR121 no cuenta con regulación de voltaje incorporado, por este motivo usamos la salida de Arduino de 3.3v.

Si usas una fuente externa no debe exceder el voltaje de 3.3v.

Si quieres usar un Pin digital, usa el IRQ, no tiene interrupciones, pero si es el caso, debes conectarlo en la parte externa.

 

Programación código MPR121

Normalmente se usan librerías para trabajar en Arduino, pero esta vez no la vamos a usar.

¿Porque? pues es muy fácil, puedes migrar el código a otro programa o micro controlador.

 

Comencemos:

Declaramos la librería para la comunicación I2C acompañado del Pin IRQ.

Se ha creado una variable para guardar los estados de los electrodos, así podemos ver el cambio que han tenido.

Adicionalmente viene una variable que especifica la dirección del I2C en el sensor PMR121.

Se usa la función > mpr121_Config(addess_mpr) aquí esta esa función:

El código anterior configura el registro para el funcionamiento, son 12 registros utilizados para definir los umbrales de touch o no touch.

Es muy importante tener en cuenta los valores de registro, para aumentar o disminuir de acuerdo al electrodo que usemos.

Usamos 2 variables para establecer umbrales de touch y reléase en pocas palabras «tocar y no tocar o tocar y soltar» depende como lo configures en los 12 electrodos.

Se puede calibrar de forma independiente, debes usar electrodos diferentes.

Los umbrales son valores cercanos, pero si tienes un conocimiento más definido puedes usar un ciclo de histéresis

Los electrodos son almacenados en una variable de 16bits, los 12 menos significativos guardan los valores de cada estado de los electrodos.

Ahora viene la parte donde analizaremos el estado de cada uno individualmente, recuerdas que era importante guardar los estados anteriores,

pues aquí es donde son comparados y si hay un cambio realizará la acción que le vamos a definir, en este caso solo será notificación.

Código completo para leer 12 electrodos:

 

MPR121 Capacitive Touch Sensor Music

 

Arduino + MPR121 Capacitive Touch Sensor

 

Fuente: Naylam