PIANO INTERACTIVO CON ARDUINO


CODIGO PARA 5 NOTAS MUSICALES

Este codigo te permitira tocar las notas musicales (Do Re Mi Fa Sol) al colocar un objeto frente a cas uno de los ultrasonido, para el ultrasonido izquierdo (nota Do), para el ultrasonido central (nota Re), para el ultrasonido derecho (nota Mi - Fa - Sol).

long DO=523.25, //definimos las frecuencias de las notas
        DoS=554.37,
        RE=587.33,
        RES=622.25,
        MI=659.26,
        FA=698.46,
        FAS=739.99,
        SOL=783.99,
        SOLS=830.61,
        LA=880,
        LAS=932.33,
        SI=987.77,
        RE2=1174.66,
        FAS2=1479.98,
        PAU=30000; //pausa

int trigger_i =13;
int echo_i =12;

int trigger_c =11;
int echo_c =10;

int trigger_d =9;
int echo_d =8;


int piezo_a=7;
int piezo_b=6;
int piezo_c=5;
int piezo_d=4;
int piezo_e=3;

int led_a= A3;
int led_b= A4;
int led_c= A5;


void setup()
{
pinMode(echo_i, INPUT);
pinMode(trigger_i, OUTPUT);
   
pinMode(echo_c, INPUT);
pinMode(trigger_c, OUTPUT);
 
pinMode(echo_d, INPUT);
pinMode(trigger_d, OUTPUT);
 
pinMode(piezo_a, OUTPUT);
pinMode(piezo_b, OUTPUT);
pinMode(piezo_c, OUTPUT);
pinMode(piezo_d, OUTPUT);
pinMode(piezo_e, OUTPUT);
 
pinMode(led_a, OUTPUT);
pinMode(led_b, OUTPUT);
pinMode(led_c, OUTPUT);
}

void loop()
{
  long t_i;
  long d_i;
  digitalWrite(trigger_i,HIGH);
  delayMicroseconds(10);
  digitalWrite(trigger_i,LOW);
  t_i= pulseIn(echo_i,HIGH);
  d_i= t_i/59;
 
  long t_c;
  long d_c;
  digitalWrite(trigger_c,HIGH);
  delayMicroseconds(10);
  digitalWrite(trigger_c,LOW);
  t_c= pulseIn(echo_c,HIGH);
  d_c= t_c/59;
 
  long t_d;
  long d_d;
  digitalWrite(trigger_d,HIGH);
  delayMicroseconds(10);
  digitalWrite(trigger_d,LOW);
  t_d= pulseIn(echo_d,HIGH);
  d_d= t_d/59;
 
  if(d_i <= 10)
  {
  tone(piezo_a,DO,300);
  noTone(piezo_b);
  noTone(piezo_c);
  noTone(piezo_d);
  noTone(piezo_e);
    digitalWrite(led_a,HIGH);
    digitalWrite(led_b,LOW);
    digitalWrite(led_c,LOW);
   
  }
  else
  {
   if(d_c <= 10)
   {
    tone(piezo_b,RE,300);
    noTone(piezo_a);
    noTone(piezo_c);
    noTone(piezo_d);
    noTone(piezo_e);
    digitalWrite(led_a,LOW);
    digitalWrite(led_b,HIGH);
    digitalWrite(led_c,LOW);
   }
   else
   {
   if(d_d <= 5)
   {
       tone(piezo_c,MI,300);
       noTone(piezo_a);
       noTone(piezo_b);
       noTone(piezo_d);
       noTone(piezo_e);
       digitalWrite(led_a,LOW);
       digitalWrite(led_b,LOW);
       digitalWrite(led_c,HIGH);
   }
   else{
   if(d_d >= 5 && d_d <= 10)
   {
       tone(piezo_d,FA,300);
       noTone(piezo_a);
       noTone(piezo_b);
       noTone(piezo_c);
       noTone(piezo_e);
       digitalWrite(led_a,LOW);
       digitalWrite(led_b,LOW);
       digitalWrite(led_c,HIGH);
   }
    else
   {
   if(d_d >=10)
       tone(piezo_e,SOL,300);
       noTone(piezo_a);
       noTone(piezo_b);
       noTone(piezo_c);
       noTone(piezo_d);
       digitalWrite(led_a,LOW);
       digitalWrite(led_b,LOW);
       digitalWrite(led_c,HIGH);
   }
   }
   }
   }
}

Si deseas puedes consultar el siguiente video


CODIGO 7 NOTAS MUSICALES 5 BUZZER

Este codigo te permitira tocar las notas musicales (Do Re Mi Fa Sol La Si) al colocar un objeto frente a cas uno de los ultrasonido, para el ultrasonido izquierdo (nota Do - Re), para el ultrasonido central (nota Mi - Fa), para el ultrasonido derecho (nota Sol - La - Si).


// 7 NOTAS MUSICALES - Para el armado es necesario emplear una fuente de alimentacion externa, los buzzer demandan un consumo importante de energia del total que arduino puede suministrar


long DO=523.25, //definimos las frecuencias de las notas
        DoS=554.37,
        RE=587.33,
        RES=622.25,
        MI=659.26,
        FA=698.46,
        FAS=739.99,
        SOL=783.99,
        SOLS=830.61,
        LA=880,
        LAS=932.33,
        SI=987.77,
        RE2=1174.66,
        FAS2=1479.98,
        PAU=30000; //pausa

int trigger_i =13;
int echo_i =12;

int trigger_c =11;
int echo_c =10;

int trigger_d =9;
int echo_d =8;


int piezo_a=7;
int piezo_b=6;
int piezo_c=5;
int piezo_d=4;
int piezo_e=3;

int led_a= A5;
int led_b= A4;
int led_c= A3;


void setup()
{
pinMode(echo_i, INPUT);
pinMode(trigger_i, OUTPUT);
   
pinMode(echo_c, INPUT);
pinMode(trigger_c, OUTPUT);
 
pinMode(echo_d, INPUT);
pinMode(trigger_d, OUTPUT);
 
pinMode(piezo_a, OUTPUT);
pinMode(piezo_b, OUTPUT);
pinMode(piezo_c, OUTPUT);
pinMode(piezo_d, OUTPUT);
pinMode(piezo_e, OUTPUT);
 
pinMode(led_a, OUTPUT);
pinMode(led_b, OUTPUT);
pinMode(led_c, OUTPUT);
}

void loop()
{
  long t_i;
  long d_i;
  digitalWrite(trigger_i,HIGH);
  delayMicroseconds(10);
  digitalWrite(trigger_i,LOW);
  t_i= pulseIn(echo_i,HIGH);
  d_i= t_i/59;
 
  long t_c;
  long d_c;
  digitalWrite(trigger_c,HIGH);
  delayMicroseconds(10);
  digitalWrite(trigger_c,LOW);
  t_c= pulseIn(echo_c,HIGH);
  d_c= t_c/59;
 
  long t_d;
  long d_d;
  digitalWrite(trigger_d,HIGH);
  delayMicroseconds(10);
  digitalWrite(trigger_d,LOW);
  t_d= pulseIn(echo_d,HIGH);
  d_d= t_d/59;
 
  if(d_i <= 7)
  {
  tone(piezo_a,DO);
    noTone(piezo_b);
    noTone(piezo_c);
    noTone(piezo_d);
    noTone(piezo_e);
    digitalWrite(led_a,HIGH);
    digitalWrite(led_b,LOW);
    digitalWrite(led_c,LOW);
   
  }
  else
  {
       if(d_i >=7 && d_i <= 14)
      {
       tone(piezo_a,RE);
       noTone(piezo_b);
       noTone(piezo_c);
       noTone(piezo_d);
       noTone(piezo_e);
       digitalWrite(led_a,HIGH);
       digitalWrite(led_b,LOW);
       digitalWrite(led_c,LOW);
      }
   else
   {      
   if(d_c <= 7)
   {
    tone(piezo_b,MI);
    noTone(piezo_a);
    noTone(piezo_c);
    noTone(piezo_d);
    noTone(piezo_e);
    digitalWrite(led_a,LOW);
    digitalWrite(led_b,HIGH);
    digitalWrite(led_c,LOW);
   }
   else
   {
       if(d_c >=7 && d_c <= 14)
   {
    tone(piezo_b,FA);
    noTone(piezo_a);
    noTone(piezo_c);
    noTone(piezo_d);
    noTone(piezo_e);
    digitalWrite(led_a,LOW);
    digitalWrite(led_b,HIGH);
    digitalWrite(led_c,LOW);
      }
   else
   {
   if(d_d <= 5)
   {
       tone(piezo_c,SOL);
       noTone(piezo_a);
       noTone(piezo_b);
       noTone(piezo_d);
       noTone(piezo_e);
       digitalWrite(led_a,LOW);
       digitalWrite(led_b,LOW);
       digitalWrite(led_c,HIGH);
   }
   else{
   if(d_d >= 5 && d_d <= 10)
   {
       tone(piezo_d,LA);
       noTone(piezo_a);
       noTone(piezo_b);
       noTone(piezo_c);
       noTone(piezo_e);
       digitalWrite(led_a,LOW);
       digitalWrite(led_b,LOW);
       digitalWrite(led_c,HIGH);
   }
    else
   {
   if(d_d >=10 && d_d <= 15)
       tone(piezo_e,SI);
       noTone(piezo_a);
       noTone(piezo_b);
       noTone(piezo_c);
       noTone(piezo_d);
       digitalWrite(led_a,LOW);
       digitalWrite(led_b,LOW);
       digitalWrite(led_c,HIGH);
   }
   }
   }
   }
   }
   }
}

Si desea puedes consultar el siguiente video:



CODIGO 7 NOTAS MUSICALES 1 BUZZER

Este codigo te permitira tocar las notas musicales (Do Re Mi Fa Sol La Si) al colocar un objeto frente a cas uno de los ultrasonido, para el ultrasonido izquierdo (nota Do - Re), para el ultrasonido central (nota Mi - Fa), para el ultrasonido derecho (nota Sol - La - Si).


//SOLO UN BUZZER - TRES ULTRASONIDOS
long DO=523.25, //definimos las frecuencias de las notas
        DoS=554.37,
        RE=587.33,
        RES=622.25,
        MI=659.26,
        FA=698.46,
        FAS=739.99,
        SOL=783.99,
        SOLS=830.61,
        LA=880,
        LAS=932.33,
        SI=987.77,
        RE2=1174.66,
        FAS2=1479.98,
        PAU=30000; //pausa

int trigger_i =13;
int echo_i =12;

int trigger_c =11;
int echo_c =10;

int trigger_d =9;
int echo_d =8;


int piezo_a=7;
int piezo_b=6;
int piezo_c=5;
int piezo_d=4;
int piezo_e=3;

int led_a= A5;
int led_b= A4;
int led_c= A3;


void setup()
{
pinMode(echo_i, INPUT);
pinMode(trigger_i, OUTPUT);
   
pinMode(echo_c, INPUT);
pinMode(trigger_c, OUTPUT);
 
pinMode(echo_d, INPUT);
pinMode(trigger_d, OUTPUT);
 
pinMode(piezo_a, OUTPUT);
pinMode(piezo_b, OUTPUT);
pinMode(piezo_c, OUTPUT);
pinMode(piezo_d, OUTPUT);
pinMode(piezo_e, OUTPUT);
 
pinMode(led_a, OUTPUT);
pinMode(led_b, OUTPUT);
pinMode(led_c, OUTPUT);
}

void loop()
{
  long t_i;
  long d_i;
  digitalWrite(trigger_i,HIGH);
  delayMicroseconds(10);
  digitalWrite(trigger_i,LOW);
  t_i= pulseIn(echo_i,HIGH);
  d_i= t_i/59;
 
  long t_c;
  long d_c;
  digitalWrite(trigger_c,HIGH);
  delayMicroseconds(10);
  digitalWrite(trigger_c,LOW);
  t_c= pulseIn(echo_c,HIGH);
  d_c= t_c/59;
 
  long t_d;
  long d_d;
  digitalWrite(trigger_d,HIGH);
  delayMicroseconds(10);
  digitalWrite(trigger_d,LOW);
  t_d= pulseIn(echo_d,HIGH);
  d_d= t_d/59;
 
  if(d_i <= 7)
  {
  tone(piezo_a,DO);
    digitalWrite(led_a,HIGH);
    digitalWrite(led_b,LOW);
    digitalWrite(led_c,LOW);
   
  }
  else
  {
       if(d_i >=7 && d_i <= 14)
      { tone(piezo_a,RE);
       digitalWrite(led_a,HIGH);
       digitalWrite(led_b,LOW);
       digitalWrite(led_c,LOW);
      }
   else
   {      
   if(d_c <= 7)
   {
    tone(piezo_a,MI);
    digitalWrite(led_a,LOW);
    digitalWrite(led_b,HIGH);
    digitalWrite(led_c,LOW);
   }
   else
   {
       if(d_c >=7 && d_c <= 14)
   {
    tone(piezo_a,FA);
    digitalWrite(led_a,LOW);
    digitalWrite(led_b,HIGH);
    digitalWrite(led_c,LOW);
      }
   else
   {
   if(d_d <= 5)
   {
       tone(piezo_a,SOL);
       digitalWrite(led_a,LOW);
       digitalWrite(led_b,LOW);
       digitalWrite(led_c,HIGH);
   }
   else{
   if(d_d >= 5 && d_d <= 10)
   {
       tone(piezo_a,LA);

       digitalWrite(led_a,LOW);
       digitalWrite(led_b,LOW);
       digitalWrite(led_c,HIGH);
   }
    else
   {
   if(d_d >=10 && d_d <= 15)
       tone(piezo_a,SI);

       digitalWrite(led_a,LOW);
       digitalWrite(led_b,LOW);
       digitalWrite(led_c,HIGH);
   }
   }
   }
   }
   }
   }
}

Si deseas puedes consultar el siguiente video:



Por favor considera suscribirte :)



Comentarios

Entradas populares