Crie Botões de Toque em Qualquer Superfície Usando o Sensor Capacitivo MPR121
Componentes e Materiais
| Arduino UNO | 1 |
| Adafruit Capacitive Touch Sensor Breakout - MPR121 | 1 |
| LED (genérico) | 1 |
Aplicativos e Serviços Online
- Arduino IDE
Sobre o Projeto
O MPR121 é um sensor de toque de 12 pinos, utilizando capacidades de capacitância do CI.
Existem 2 bibliotecas para este CI; eu pessoalmente prefiro usar a da Bare Conductive: Biblioteca MPR121 Bare Conductive
O chip possui um pino de trigger (interrupção), que permite saber que um dos pinos foi tocado ou liberado, dando ótimo tempo de resposta e a opção de usar uma interrupção em vez de escanear o estado no loop – como mostrado no exemplo. A única desvantagem é que você tem apenas um pino de trigger para todos os 12 pinos de I/O do CI.
O endereço I2C pode ser configurado: ADDR é o pino de seleção de endereço I2C. Por padrão, este é pull-down para ground com resistor de 100K, para endereço I2C 0x5A. Você também pode conectá-lo ao pino 3Vo para endereço 0x5B, ao pino SDA para 0x5C ou SCL para endereço 0x5D. Esta configuração é para as placas Adafruit; algumas placas clones têm conjuntos de endereços I2C diferentes e padrões. Você pode usar o scanner I2C caso não saiba o endereço da sua placa.
Conectar as placas é realmente simples, como mostrado no esquemático.
Observação importante: a maioria das breakout boards tem alimentação nominal de 3.3V – não alimente com 5V. Quanto ao nível de tensão dos dados: devido à natureza do hardware I2C, você não danificará o MPR121 com 5V do Arduino, mas se notar problemas na leitura ou nem encontrá-lo no barramento, tente um conversor de nível lógico entre os dois.
Ao longo dos anos fiz várias coisas com este excelente CI. Uma das primeiras foi um jogo para meu filho: as letras no topo estão conectadas a 2 MPR121 e cada toque dispara um MP3 gravado por mim dizendo o nome da letra.
Também experimentei com a tinta condutiva Bare Conductive – é muito divertido e funciona muito bem com o MPR121.
Código
Liga/Desliga LED simples nos pinos 0/1
Mostra a opção de ligar e desligar um LED conectado no pino 3. Usa o pino 0 do toque do MPR121 para ligar e o pino 1 na liberação para desligar.
#include <MPR121.h>
#include <Wire.h>
#define numElectrodes 2
#define LEDPIN 3
void setup() {
Serial.begin(115200);
Serial.println("System started");
pinMode(LEDPIN, OUTPUT);
Wire.begin();
// 0x5C é o endereço I2C do MPR121 na Bare Touch Board
if (!MPR121.begin(0x5A)) {
Serial.println("error setting up MPR121");
switch (MPR121.getError()) {
case NO_ERROR: Serial.println("no error"); break;
case ADDRESS_UNKNOWN: Serial.println("incorrect address"); break;
case READBACK_FAIL: Serial.println("readback failure"); break;
case OVERCURRENT_FLAG: Serial.println("overcurrent on REXT pin"); break;
case OUT_OF_RANGE: Serial.println("electrode out of range"); break;
case NOT_INITED: Serial.println("not initialised"); break;
default: Serial.println("unknown error"); break;
}
while (1);
}
MPR121.setInterruptPin(4);
MPR121.setTouchThreshold(40);
MPR121.setReleaseThreshold(20);
MPR121.updateTouchData();
}
void loop() {
if (MPR121.touchStatusChanged()) {
MPR121.updateTouchData();
for (int i = 0; i < numElectrodes; i++) {
if (MPR121.isNewTouch(i)) {
if (i == 0) { digitalWrite(LEDPIN, HIGH); }
} else if (MPR121.isNewRelease(i)) {
if (i == 1) { digitalWrite(LEDPIN, LOW); }
}
}
}
}
Esquemático
Processo de manufatura
- Detecção de Raios com Raspberry Pi e AS3935: Guia Prático
- Monitore o Exercício Diário do Seu Hamster com Rastreador de Fitness Raspberry Pi
- Primeiros Passos com IoT e MQTT: Tutorial ESP8266 Sem Código
- Integração I2C Arduino‑Raspberry Pi 2 Perfeita para Projetos IoT de Sensores
- Armazenamento Baseado em DNA Revolucionário Transforma Objetos Cotidianos em Arquivos Duráveis
- Transformação de Cadeia de Suprimentos Centrada no Humano: Aumentar Eficiência e Resiliência
- Torno Inteligente: Controles Avançados Touch-Screen para Usinagem de Precisão
- OmniFibers: Tecido Inteligente que Regula Respiração para Desempenho e Recuperação
- Do Conceito à Realidade: Transformando Designs Criativos em Produtos Tangíveis
- Explorando os Benefícios da Usinagem CNC Mill-Turn