Manufaturação industrial
Internet das coisas industrial | Materiais industriais | Manutenção e reparo de equipamentos | Programação industrial |
home  MfgRobots >> Manufaturação industrial >  >> Manufacturing Technology >> Processo de manufatura

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

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

Crie Botões de Toque em Qualquer Superfície Usando o Sensor Capacitivo MPR121
Conexão do MPR121 ao Arduino UNO via I2C

Processo de manufatura

  1. Detecção de Raios com Raspberry Pi e AS3935: Guia Prático
  2. Monitore o Exercício Diário do Seu Hamster com Rastreador de Fitness Raspberry Pi
  3. Primeiros Passos com IoT e MQTT: Tutorial ESP8266 Sem Código
  4. Integração I2C Arduino‑Raspberry Pi 2 Perfeita para Projetos IoT de Sensores
  5. Armazenamento Baseado em DNA Revolucionário Transforma Objetos Cotidianos em Arquivos Duráveis
  6. Transformação de Cadeia de Suprimentos Centrada no Humano: Aumentar Eficiência e Resiliência
  7. Torno Inteligente: Controles Avançados Touch-Screen para Usinagem de Precisão
  8. OmniFibers: Tecido Inteligente que Regula Respiração para Desempenho e Recuperação
  9. Do Conceito à Realidade: Transformando Designs Criativos em Produtos Tangíveis
  10. Explorando os Benefícios da Usinagem CNC Mill-Turn