O MPR121 é um controlador de sensor de toque capacitivo que pode detectar até 12 eletrodos sensíveis ao toque. É comumente usado em interfaces sensíveis ao toque, instrumentos musicais e outros projetos interativos. Neste tutorial, mostraremos como conectar e usar o MPR121 com o Arduino para criar aplicativos baseados em toque.
O que você precisará
- Módulo de sensor de toque MPR121
- Board Arduino (por exemplo, Uno, Mega, Nano)
- Fios de pão e jumper
- Um computador com o Arduino IDE instalado
Etapa 1: Compreendendo o módulo MPR121
O MPR121 usa a comunicação I2C para interface com um microcontrolador. Possui 12 entradas sensíveis ao toque que podem detectar alterações capacitivas quando um objeto condutor (por exemplo, um dedo) está próximo dos eletrodos.
MPR121 PILOUT
Alfinete | Função |
---|---|
VCC | Fonte de alimentação (3,3V/5V) |
Gnd | Chão |
SDA | I2C Linha de dados |
SCL | I2C Linha do relógio |
IRQ | Saída de interrupção (opcional) |
Etapa 2: Fiação do MPR121 para Arduino
Veja como conectar o MPR121 a um Arduino Uno:
Pino Mpr121 | Pino Arduino |
---|---|
VCC | 5V |
Gnd | Gnd |
SDA | A4 (SDA) |
SCL | A5 (SCL) |
IRQ (opcional) | Não conectado |
Observação: Para outras placas do Arduino, verifique os pinos I2C na documentação do seu quadro.
Etapa 3: Instale a biblioteca necessária
A biblioteca Adafruit MPR121 simplifica o trabalho com o sensor.
Etapas para instalar:
- Abra o Arduino IDE.
- Vá para Esboço > Inclua biblioteca > Gerenciar bibliotecas.
- Pesquise "Adafruit Mpr121" e clique Instalar.
Etapa 4: Faça o upload do código
Aqui está um exemplo de esboço para detectar entradas de toque do 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
}
Etapa 5: teste a configuração
- Conecte o Arduino ao seu computador via USB.
- Abra o Arduino IDE e selecione o correto Quadro e Porta sob o Ferramentas menu.
- Faça o upload do código para o Arduino clicando Carregar.
- Abra o monitor serial (Ferramentas > Monitor serial) e definir a taxa de transmissão como
9600
. - Toque nos eletrodos no módulo MPR121 e observe o monitor serial para obter entradas de toque detectadas.
Opcional: usando o pino IRQ para interrupções
O pino IRQ pode ser usado para acionar uma interrupção quando um toque é detectado, reduzindo a necessidade de pesquisar constantemente o sensor.
- Conecte o
IRQ
Pino do MPR121 para um pino digital no Arduino (por exemplo, pino 2). - Modifique o código para anexar uma interrupção e lidar com a detecção de toque na rotina de serviço de interrupção (ISR).
Aplicações do MPR121
- Interfaces de toque capacitivo
- Instrumentos musicais
- Instalações de arte interativa
- Controles baseados em gestos
Solução de problemas
- Nenhuma resposta do sensor: Verifique as conexões i2C e o endereço.
- Detecção de toque inconsistente: Verifique se os eletrodos estão limpos e conectados adequadamente.
- Erros da biblioteca: Confirme que a biblioteca Adafruit MPR121 está instalada.
Conclusão
Você interfigurou com sucesso o sensor de toque capacitivo MPR121 com o Arduino. Esse sensor versátil abre possibilidades de criar projetos interativos e sensíveis ao toque. Experimente diferentes projetos de eletrodos e configurações para expandir sua funcionalidade!