Arduino, Internet das Coisas e Computação vestível

[Voltar]

[Avançar]

Módulo Touch Sensor - MPR121 12-Key

Descrição

É um módulo que controla sensores de toque. Ele é impulsionado por uma interface I2C que permite o controle de até doze eletrodos capacitivos individuais. Como o módulo opera somente em 3V, existe um regulador interno de energia de 3V para que seja seguro usá-lo em qualquer placa Arduino (3V ou 5V). Ele também possui um LED na linha IRQ para que pisque quando os toques forem detectados, tornando a depuração visual um pouco mais fácil.

Especificações

  • Modelo: MPR121
  • Interface: I²C
  • Tipo de Sensor: Toque
  • Faixa de Detecção: 12 Botões
  • Tensão de Operação: 3.3 V ~ 5 V

Projeto(s) relacionado(s)

Banana drum machine

Projeto que utiliza bananas como material condutivo, placa MPR121 e Arduino Uno para tocar música.

 


Projeto Teclado de Piano

O projeto utiliza os módulos Buzzer Ativo KY-012, Touch Sensor - MPR121 12-Key e placa Arduino Uno R3 ou Mega. Para programação da placa é necessário instalar a biblioteca  Adafruit_MPR121.

Conectando MPR121 12-Key ao Arduino UNO ou MEGA

  • Conecte VCC à fonte de alimentação, 3.3V.
  • Conecte GND ao terra
  • Conecte SCL ao pino SCL de dados I2C (UNO pino A5, Mega pino digital 21)
  • Conecte SDA ao pino SDA de dados I2C (UNO pino A4, Mega pino digital 20)

// Projeto: Sensor - teclado musical 
// Autor: André Silveira
// Data: 07/05/2018  

#include <Wire.h>
#include "Adafruit_MPR121.h"

Adafruit_MPR121 cap = Adafruit_MPR121();
int buzzer = 10;      // conectar um buzzer ao pino 10
int tecla = 0;        
int nota = 0;

void setup() {

   pinMode(buzzer,OUTPUT); //Pino do buzzer
   Serial.begin(9600);  
  
    // I2C 7-bit address 0x5A é padrão (pode ser setado para 0x5B, 0x5C or 0x5D) 
    if  (!cap.begin(0x5A)) {
         Serial.println("Sensor não Encontrado");
         while (1);
    }
    Serial.println("Sensor encontrado");
}

void loop() {

   tecla = cap.touched();
   for (uint8_t i=0; i<12; i++) {
       if  (tecla & _BV(i)) {
            nota = 262+(i*32); // --- DEFINE A NOTA MUSICAL 
Serial.print(i);
Serial.print(" - Nota tocada: ");
Serial.println(nota);
tone(buzzer,nota,200); } } }



Projeto player de música com teclado

O projeto utiliza os módulos Touch Sensor 12 Key, Player - WTV020M01, Amplificador de Áudio LM386 e um alto-falante para acionar músicas que estão armazenados em um Cartão Micro SD de até 2GB. Os arquivos de áudio armazenados no cartão estão no formado AD4.

// Projeto: Modulo WTV020M01 (WTV020-SD) Executa música 
// Autor: André Silveira
// Data: 15/05/2018 

#include <Wire.h>
#include <Wtv020sd16p.h>
#include <Adafruit_MPR121.h>

int resetPin = 4;  // Pino Reset (RESET)
int clockPin = 5;  // Pino clock (P04/CLK)
int dataPin = 6;   // Pino data (P05/DI)
int busyPin = 7;   // Pino busy (P06/BUSY)

int tecla  = 0;      // Tecla apertada 
int volume = 8;   // Volume do aparelho 
int musica = 0;   // Musica tocada 

Adafruit_MPR121 teclado = Adafruit_MPR121(); // Cria instância da Classe Adafruit_MPR121
Wtv020sd16p tocador(resetPin,clockPin,dataPin,busyPin); // Cria instância da Classe Wtv020sd16p 

void setup() {

     Serial.begin(9600);
     tocador.reset();             // Initializa o módulo Wtv020sd16p
     tocador.setVolume(volume);   // Configura volume do módulo Wtv020sd16p

     if  (!teclado.begin(0x5A)) {   // Localiza teclado do módulo Adafruit_MPR121
          Serial.println("Sensor não Encontrado");
          while (1);
     }
     Serial.println("Sensor encontrado");
}

void loop() {

   tecla = teclado.touched(); // Verifica tecla apertada
   switch (tecla) {
       case 0:  // MUSICA 0
            musica=0;
            TocaAudio(0);
            break;
       case 1:  // VOLUME AUMENTA
            volume=volume+1;
            if (volume > 8) {
                volume = 8;
            }
            tocador.setVolume(volume);
            break;
       case 2:  // MUSICA 1
            musica=1;
            TocaAudio(1);
            break;
       case 3:  // VOLUME DIMINUI
            volume=volume-1;
            if (volume < 0) {
                volume = 0;
            }
            tocador.setVolume(volume);
            break;
       case 4:  // MUSICA 2
            musica=2;
            TocaAudio(2);
            break;
       case 5:  // VOLTAR
            musica = musica -1;
            if (musica < 0) {
                musica = 0;                
            }
            TocaAudio(musica);
            break;
       case 6:  // MUSICA 3
            musica=3;
            TocaAudio(3);
            break;
       case 7:   // PLAY
            tocador.playVoice(musica);
            break;
       case 8: // MUSICA 4 
            musica=4;
            TocaAudio(4);
            break;
       case 9:   // STOP
            tocador.stopVoice();
            break;
       case 10:  // MUSICA 5 
            musica=5;
            TocaAudio(5);
            break;
       case 11:  
            musica = musica +1;
            if (musica > 5) {
                musica = 5;
            }
            TocaAudio(musica);
            break;
       default: 
            break;
   }
   delay (5000);   
}

void TocaAudio(int i) {
    Serial.println("tocando: ");
    Serial.print(i);
    tocador.playVoice(2);
    tocador.asyncPlayVoice(i); 
}

 

[Voltar]

[Avançar]