Como usar o sensor de toque capacitivo MPR121 com Arduino

How to Use the MPR121 Capacitive Touch Sensor with Arduino

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á

  1. Módulo de sensor de toque MPR121
  2. Board Arduino (por exemplo, Uno, Mega, Nano)
  3. Fios de pão e jumper
  4. 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:

  1. Abra o Arduino IDE.
  2. Vá para Esboço > Inclua biblioteca > Gerenciar bibliotecas.
  3. 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

  1. Conecte o Arduino ao seu computador via USB.
  2. Abra o Arduino IDE e selecione o correto Quadro e Porta sob o Ferramentas menu.
  3. Faça o upload do código para o Arduino clicando Carregar.
  4. Abra o monitor serial (Ferramentas > Monitor serial) e definir a taxa de transmissão como 9600.
  5. 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.

  1. Conecte o IRQ Pino do MPR121 para um pino digital no Arduino (por exemplo, pino 2).
  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

  1. Interfaces de toque capacitivo
  2. Instrumentos musicais
  3. Instalações de arte interativa
  4. 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!

Deixe um comentário

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.