TOQUE MELODIAS ATRAVÉS DE UM SENSOR TOUCH COM BUZZER

TOQUE MELODIAS ATRAVÉS DE UM SENSOR TOUCH COM BUZZER

Sensores de toque podem ser uma ferramenta muito útil em substituição a botões. Hoje veremos como utilizar o Sensor Touch Capacitivo TTP223B com um Arduino para tocar uma melodia através de um buzzer!

Sobre o Sensor Touch Capacitivo TTP223B

Neste módulo temos um CI chamado TTP223B, que é o responsável por detectar toques. Ao tocar a área demarcada com círculos, a saída é ativada em nível alto por cerca de 12s e depois retorna ao nível baixo.

sensor_touch

Sua utilização é muito parecida com botões push button, a diferença está no touch, que tocado de forma suave, já realiza a ativação.

O sensor funciona com 5V no VCC (pino central), GND e SIG (sinal, pino digital). Quando alimentado, um led verde existente no módulo acende.

Circuito de utilização com Arduino Uno

Para utilizar o módulo como um botão para tocar uma melodia, você vai precisar de um Arduino (Uno, Nano, Pro Mini, etc), um buzzer com resisitor de 100Ω, um protoboard, além do Sensor Touch Capacitivo.

Basta realizar as conexões a seguir:

OBS: Caso você possua o módulo Buzzer 5V passivo, pode substituir o buzzer, protoboard e resistor 100 Ω utilizado na figura.

Programando o Arduino com Sensor Touch

Para a programação, é necessário o uso de um arquivo chamado picthes.h, que contém as notas musicais mais utilizadas. Para facilitar, usaremos um exemplo pronto contendo este arquivo, para não criar um novo.

Abra na IDE Arduino: Arquivo => Exemplos => 02. Digital => ToneMelody.

IDE Arduino Tone Melody

Repare que, quando abrir o arquivo, há duas abas, uma referente ao sketch principal e uma com o arquivo “pitches.h”.

Abas Tone Melody

Substitua o sketch original ToneMelody pelo sketch a seguir:

#include "pitches.h"

int touch = 2; //pino SIG do sensor touch
// notas da melodia
int melody[] = {
  NOTE_C4, NOTE_G3, NOTE_G3, NOTE_A3, NOTE_G3, 0, NOTE_B3, NOTE_C4
};

// duraçao das notas: 4 = um quarto, 8 = um oitavo, etc.:
int noteDurations[] = {
  4, 8, 8, 4, 4, 4, 4, 4
};

void setup() {
  // declara o pino de sinal do sensor como entrada:
  pinMode(touch,INPUT);
  
}

void loop() { 
  int botao = digitalRead(touch); // realiza leitura do pino de sinal e armazena na variavel botao
  if(botao == 1){ // se botao for igual a 1, ou seja, pressionado
    for (int thisNote = 0; thisNote < 8; thisNote++) {

    // para calcular a duraçao da nota, faz um segundo
    // dividido pelo tempo da nota.
    //para um quarto = 1000 / 4, para um oitavo = 1000/8, etc.
    int noteDuration = 1000 / noteDurations[thisNote];
    tone(8, melody[thisNote], noteDuration);

    // para distinguir as notas, seta um tempo minimo entre elas.
    // a duraçao da nota + 30%:
    int pauseBetweenNotes = noteDuration * 1.30;
    delay(pauseBetweenNotes);
    // para a melodia
    noTone(8);
   }
  }
}

Salve o sketch acima com outro nome (Arquivo => Salvar como…) e o carregue na placa Arduino. Quando estiver carregado, toque o Sensor touch e ouvirá a melodia.

sensor_touch_capacitativo

Caso queira, crie sua própria melodia, tendo em referências as notas musicais no arquivo “pitches.h”. Há várias disponíveis pela internet, como clássicos estilo Mario Bros ou Star Wars.

Também utilize o Sensor Touch Capacitivo para acionar leds, relés e tudo mais que sua imaginação permitir! Com um toque mais suave que um push button!

Gostou? Ajude-nos a melhorar o blog atribuindo uma nota a este tutorial (estrelas no final do artigo), comente e visite nossa loja FILIPEFLOP !

1
TOQUE MELODIAS ATRAVÉS DE UM SENSOR TOUCH COM BUZZER
5 votos, 5.00 classificação média (100% pontuação)

Mestranda em Automação e Controle de Processos, Engenheira de Controle e Automação e Técnica em Automação Industrial. Realiza projetos na área de Wearables, palestras e mini cursos em eventos de IoT, Arduino e Tecnologia. Colaboradora do site FILIPEFLOP.

Compartilhe este Post

13 Comentários

  1. - 24 de março de 2017

    Excelênte POST!!
    Galera, olha essa história em quadrinhos com Mario conhecendo DIY pelo cogumelo Toad KKKK
    Ficou muito bom! Mario Bros é TOP

    http://gentemaker.com.br/3-inovacoes

  2. Daniel - 22 de março de 2017

    Olá pessoal,

    Fiquei em dúvida, este sensor funciona apenas com o dedo? Ou se for tocado com algum objeto ele também reconhecerá o siinal?

    Pergunto isso pois a idéia é utilizá-lo para montar uma maquete de estacionamento, onde carrinhos passariam por cima dele, ai ele sentiria e enviaria esse sinal para uma base dados.

    Caso ele não funcione para essa finalidade, alguém tem uma sugestão de qual sensor utilizar?

    Obrigado!

    • Gedeane Kenshima - 28 de maio de 2017

      Olá Daniel, perdoe-me pela demora!

      Eu só fiz os testes com o dedo, creio que para este tipo de projeto você poderia utilizar um sensor de luminosidade, pois quando o carrinho estiver em cima do sensor, estará escuro, e quando não tiver carrinho, estará com luz ambiente.

      Já fiz um estacionamento também utilizando chaves tipo switch.

      Espero ter ajudado a tempo, obrigada por sua pergunta!

  3. Everson Casagrande - 5 de março de 2017

    Olá Gedeane, estou com uma dúvida na saída dele (Sig). Esta saída envia sinal positivo ou negativo?

    • Gedeane Kenshima - 13 de março de 2017

      Olá Everson.

      No meu caso, o sinal era positivo. Houve alguma divergência em seu código? Comente suas dúvidas que na medida do possível iremos ajudar.

      Grande abraço

      • Everson Casagrande - 13 de março de 2017

        Olá Gedeane, obrigado pela resposta.
        Então, para comentar em relação a minha dúvida.
        Eu tenho uma placa controladora que controla 16 relés, utilizo ela par iluminação em automação residencial! Cada porta dessa placa pode ser acionada tanto manual como por um aplicativo, só que, quando manual, preciso enviar um sinal negativo pra ela, o GND, por isso da pergunta. Com esse sensor não tem essa possibilidade certo?!

  4. Arthur Jr. - 27 de janeiro de 2017

    Boa tarde, é possível utilizar uma lamina de vidro normal entre o dedo e a PCB? Queria utilizar com botão para um sistema smart mirror.

    • Gedeane Kenshima - 5 de fevereiro de 2017

      Olá Arthur, desculpe-me pela demora!
      Já utilizei algumas versões com uma chapa de acrílico, porém não fiz testes em vidro. Se eu souber outras informações, comentarei aqui mesmo.
      Abraço!

  5. Luis Henrique Goll - 20 de dezembro de 2016

    Olá, funciona com 3.3V? Pretendo usar um ESP8266-01 para alimentá-lo.

Deixe uma resposta