Mini piano com arduino SR 5, fácil de fazer com um notebook e botões

Leonardo Campbell
Criei um piano com arduino, com som de piano de verdade mesmo. um projeto bem simples de piano com o arduino Leonardo e mini botões, veja o vídeo e descubra a facilidade de fazer.

Compartilhe esse post

Share on whatsapp
Share on telegram
Share on facebook
Share on twitter
Share on email

Vamos ao ponto, veja o tutorial

Veja o esquemático pra de auxilair na montagem

Código fonte gratuito:

/*
  -----------Piano com arduino SR 5------------------------------------------------
  Versão do Software: 1.0 SR 5 //não apague essa linha, para futuras consultas
  Software open source, favor citar o autor: Seu Robô https://SeuRobo.com.br/
  Criado por: Leonardo Campbell - Seu Robô  
*/
//declarando a biblioteca usada de teclado
#include <Keyboard.h>

//configurando as portas dos botões
#define botao1 2
#define botao2 3
#define botao3 4
#define botao4 5
#define botao5 6
#define botao6 7
//criando as variaveis para armazenar o estado do botão
int statusbotao1; 
int statusbotao2; 
int statusbotao3; 
int statusbotao4; 
int statusbotao5; 
int statusbotao6; 
//criando as variaveis para armazenar o ultimo estado do botão
int ultimoclick1 = LOW;    
int ultimoclick2 = LOW; 
int ultimoclick3 = LOW; 
int ultimoclick4 = LOW; 
int ultimoclick5 = LOW; 
int ultimoclick6 = LOW;

//configurando os botoes  
void setup()
{
  pinMode(botao1, INPUT_PULLUP);//definindo os pinos do botão como saida com o "o botão para cima"
  pinMode(botao2, INPUT_PULLUP);  
  pinMode(botao3, INPUT_PULLUP); 
  pinMode(botao4, INPUT_PULLUP); 
  pinMode(botao5, INPUT_PULLUP); 
  pinMode(botao6, INPUT_PULLUP);   
  Keyboard.begin();//inicia a biblioteca de teclado
}

void loop(){
  
  // faz a leitura do botão e armazena na variável
  int lerbotao1 = digitalRead(botao1);
  int lerbotao2 = digitalRead(botao2);
  int lerbotao3 = digitalRead(botao3);
  int lerbotao4 = digitalRead(botao4);
  int lerbotao5 = digitalRead(botao5);
  int lerbotao6 = digitalRead(botao6);
  

  if (lerbotao1 != ultimoclick1) { //compara se o botão é diferente da ultima vez que clicou
    statusbotao1 = lerbotao1;  //grava o valor ba variavel para comparar ela depois
    if (lerbotao1 == HIGH) { //se o botão 1 for pressionado então faça
        Keyboard.press('t'); //digite a letra no computador
        delay(100); //aguarde um tempo
        Keyboard.releaseAll(); //para de pressionar o tecla do pc
      }
  }

  if (lerbotao2 != ultimoclick2) { //compara se o botão é diferente da ultima vez que clicou
    statusbotao2 = lerbotao2;  //grava o valor ba variavel para comparar ela depois
    if (lerbotao2 == HIGH) { //se o botão 1 for pressionado então faça
        Keyboard.press('y'); //digite a letra no computador
        delay(100); //aguarde um tempo
        Keyboard.releaseAll(); //para de pressionar o tecla do pc
      }
  }

  if (lerbotao3 != ultimoclick3) { //compara se o botão é diferente da ultima vez que clicou
    statusbotao3 = lerbotao3;  //grava o valor ba variavel para comparar ela depois
    if (lerbotao3 == HIGH) { //se o botão 1 for pressionado então faça
        Keyboard.press('u'); //digite a letra no computador
        delay(100); //aguarde um tempo
        Keyboard.releaseAll(); //para de pressionar o tecla do pc
      }
  }

  if (lerbotao4 != ultimoclick4) { //compara se o botão é diferente da ultima vez que clicou
    statusbotao4 = lerbotao4;  //grava o valor ba variavel para comparar ela depois
    if (lerbotao4 == HIGH) { //se o botão 1 for pressionado então faça
        Keyboard.press('i'); //digite a letra no computador
        delay(100); //aguarde um tempo
        Keyboard.releaseAll(); //para de pressionar o tecla do pc
      }
  }

  if (lerbotao5 != ultimoclick5) { //compara se o botão é diferente da ultima vez que clicou
    statusbotao5 = lerbotao5;  //grava o valor ba variavel para comparar ela depois
    if (lerbotao5 == HIGH) { //se o botão 1 for pressionado então faça
        Keyboard.press('o'); //digite a letra no computador
        delay(100); //aguarde um tempo
        Keyboard.releaseAll(); //para de pressionar o tecla do pc
      }
  }

  if (lerbotao6 != ultimoclick6) { //compara se o botão é diferente da ultima vez que clicou
    statusbotao6 = lerbotao6;  //grava o valor ba variavel para comparar ela depois
    if (lerbotao6 == HIGH) { //se o botão 1 for pressionado então faça
        Keyboard.press('p'); //digite a letra no computador
        delay(100); //aguarde um tempo
        Keyboard.releaseAll(); //para de pressionar o tecla do pc
      }
  }          
   
  
  // Atualiza a variável com o valor lido no botão
  ultimoclick1 = lerbotao1;
  ultimoclick2 = lerbotao2;
  ultimoclick3 = lerbotao3;
  ultimoclick4 = lerbotao4;
  ultimoclick5 = lerbotao5;
  ultimoclick6 = lerbotao6;
}

Se estiver com duvidas, por favor deixe um comentário ou entre em contato, abraço! 

Deixe seu comentário no final da pagina!

Patrocinadores

Compartilhe esse post

Share on whatsapp
Share on telegram
Share on facebook
Share on twitter
Share on skype

Receba avisos de novos posts e novidades

Conteúdo extra e contato mas próximo com você

Outros Posts que talvez você goste

Que Saber Mais Sobre Robótica?

Venha Fazer Um Curso Online E Aprender Muito Mais