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

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!

Compartilhe esse post

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