Hola a todos, aquí os enseñaremos a como hacer música con leds. Lo primero que necesitaremos serán las siguientes cosas:
-10 cables, si pueden ser de diferentes colores, mejor.
-7 leds, para determinar cada nota musical.
-1 resistencia de 220 ohmios.
-1 speaker para poder escucharla.
Así es como quedaría:

Y aquí el vídeo:
https://youtu.be/yvz3aAZTLFU
El programa es el siguiente, para empezar tenemos que determinar los cables con los leds para determinar la nota, y para el speaker. Luego determinaremos la frecuencia de cada nota, pondremos la salida de los leds, y por último pondremos la canción. Para el final es fácil, es solo poner cada led con su nota correspondiente, lo haremos así:
/* declaración de variables */
int spk=13;
int Do=1;
int Re=2;
int Mi=3;
int Fa=4;
int Sol=5;
int La=6;
int Si=7;
// altavoz a GND y pin 13
int c[5]={131,262,523,1046,2093}; // frecuencias 4 octavas de Do
int cs[5]={139,277,554,1108,2217}; // Do#
int d[5]={147,294,587,1175,2349}; // Re
int ds[5]={156,311,622,1244,2489}; // Re#
int e[5]={165,330,659,1319,2637}; // Mi
int f[5]={175,349,698,1397,2794}; // Fa
int fs[5]={185,370,740,1480,2960}; // Fa#
int g[5]={196,392,784,1568,3136}; // Sol
int gs[5]={208,415,831,1661,3322}; // Sol#
int a[5]={220,440,880,1760,3520}; // La
int as[5]={233,466,932,1866,3729}; // La#
int b[5]={247,494,988,1976,3951}; // Si
void nota(int a, int b); // declaración de la función auxiliar. Recibe dos números enteros.
void setup()
{
pinMode(1, OUTPUT);
pinMode(2, OUTPUT); // Configuración de los PIN como salida
pinMode(3, OUTPUT);
pinMode(4, OUTPUT);
pinMode(5, OUTPUT);
pinMode(6, OUTPUT);
pinMode(7, OUTPUT);
pinMode(13, OUTPUT); //speaker
/*******************/
/* STAR WARS */
/*******************/
/**** tema principal ****/
nota(d[1],150);noTone(spk);delay(50);
nota(d[1],150);noTone(spk);delay(50);
nota(d[1],150);noTone(spk);delay(50);
nota(g[1],900);noTone(spk);delay(150);
nota(d[2],900);noTone(spk);delay(50);
nota(c[2],150);noTone(spk);delay(50);
nota(b[1],150);noTone(spk);delay(50);
nota(a[1],150);noTone(spk);delay(50);
nota(g[2],900);noTone(spk);delay(150);
nota(d[2],900);noTone(spk);delay(100);
nota(c[2],150);noTone(spk);delay(50);
nota(b[1],150);noTone(spk);delay(50);
nota(a[1],150);noTone(spk);delay(50);
nota(g[2],900);noTone(spk);delay(150);
nota(d[2],900);noTone(spk);delay(100);
nota(c[2],150);noTone(spk);delay(50);
nota(b[1],150);noTone(spk);delay(50);
nota(c[2],150);noTone(spk);delay(50);
nota(a[1],1000);noTone(spk);delay(200);
}
/*****************************************/
void nota(int frec, int t)
{
tone(spk,frec); // suena la nota frec recibida
if ((frec==131) || (frec==262) || (frec==523) || (frec==1046) || (frec==2093)) {
digitalWrite (Do, HIGH);
delay(t);
digitalWrite (Do, LOW);
}
else if ((frec==139) || (frec==277) || (frec==554) || (frec==1108) || (frec==2217)) {
digitalWrite (Do, HIGH);
delay(t);
digitalWrite (Do, LOW);
}
else if ((frec==147) || (frec==294) || (frec==587) || (frec==1175) || (frec==2349)) {
digitalWrite (Re, HIGH);
delay(t);
digitalWrite (Re, LOW);
}
else if ((frec==156) || (frec==311) || (frec==622) || (frec==1244) || (frec==2489)) {
digitalWrite (Re, HIGH);
delay(t);
digitalWrite (Re, LOW);
}
else if ((frec==165) || (frec==330) || (frec==659) || (frec==1319) || (frec==2637)) {
digitalWrite (Mi, HIGH);
delay(t);
digitalWrite (Mi, LOW);
}
else if ((frec==175) || (frec==349) || (frec==698) || (frec==1397) || (frec==2794)) {
digitalWrite (Fa, HIGH);
delay(t);
digitalWrite (Fa, LOW);
}
else if ((frec==185) || (frec==370) || (frec==740) || (frec==1480) || (frec==2960)) {
digitalWrite (Fa, HIGH);
delay(t);
digitalWrite (Fa, LOW);
}
else if ((frec==196) || (frec==392) || (frec==784) || (frec==1568) || (frec==3136)) {
digitalWrite (Sol, HIGH);
delay(t);
digitalWrite (Sol, LOW);
}
else if ((frec==208) || (frec==415) || (frec==831) || (frec==1661) || (frec==3322)) {
digitalWrite (Sol, HIGH);
delay(t);
digitalWrite (Sol, LOW);
}
else if ((frec==220) || (frec==440) || (frec==880) || (frec==1760) || (frec==3520)) {
digitalWrite (La, HIGH);
delay(t);
digitalWrite (La, LOW);
}
else if ((frec==233) || (frec==466) || (frec==932) || (frec==1866) || (frec==3729)) {
digitalWrite (La, HIGH);
delay(t);
digitalWrite (La, LOW);
}
else if ((frec==247) || (frec==494) || (frec==988) || (frec==1976) || (frec==3951)) {
digitalWrite (Si, HIGH);
delay(t);
digitalWrite (Si, LOW);
}
}
void loop()
{
}
-10 cables, si pueden ser de diferentes colores, mejor.
-7 leds, para determinar cada nota musical.
-1 resistencia de 220 ohmios.
-1 speaker para poder escucharla.
Así es como quedaría:

Y aquí el vídeo:
https://youtu.be/yvz3aAZTLFU
El programa es el siguiente, para empezar tenemos que determinar los cables con los leds para determinar la nota, y para el speaker. Luego determinaremos la frecuencia de cada nota, pondremos la salida de los leds, y por último pondremos la canción. Para el final es fácil, es solo poner cada led con su nota correspondiente, lo haremos así:
/* declaración de variables */
int spk=13;
int Do=1;
int Re=2;
int Mi=3;
int Fa=4;
int Sol=5;
int La=6;
int Si=7;
// altavoz a GND y pin 13
int c[5]={131,262,523,1046,2093}; // frecuencias 4 octavas de Do
int cs[5]={139,277,554,1108,2217}; // Do#
int d[5]={147,294,587,1175,2349}; // Re
int ds[5]={156,311,622,1244,2489}; // Re#
int e[5]={165,330,659,1319,2637}; // Mi
int f[5]={175,349,698,1397,2794}; // Fa
int fs[5]={185,370,740,1480,2960}; // Fa#
int g[5]={196,392,784,1568,3136}; // Sol
int gs[5]={208,415,831,1661,3322}; // Sol#
int a[5]={220,440,880,1760,3520}; // La
int as[5]={233,466,932,1866,3729}; // La#
int b[5]={247,494,988,1976,3951}; // Si
void nota(int a, int b); // declaración de la función auxiliar. Recibe dos números enteros.
void setup()
{
pinMode(1, OUTPUT);
pinMode(2, OUTPUT); // Configuración de los PIN como salida
pinMode(3, OUTPUT);
pinMode(4, OUTPUT);
pinMode(5, OUTPUT);
pinMode(6, OUTPUT);
pinMode(7, OUTPUT);
pinMode(13, OUTPUT); //speaker
/*******************/
/* STAR WARS */
/*******************/
/**** tema principal ****/
nota(d[1],150);noTone(spk);delay(50);
nota(d[1],150);noTone(spk);delay(50);
nota(d[1],150);noTone(spk);delay(50);
nota(g[1],900);noTone(spk);delay(150);
nota(d[2],900);noTone(spk);delay(50);
nota(c[2],150);noTone(spk);delay(50);
nota(b[1],150);noTone(spk);delay(50);
nota(a[1],150);noTone(spk);delay(50);
nota(g[2],900);noTone(spk);delay(150);
nota(d[2],900);noTone(spk);delay(100);
nota(c[2],150);noTone(spk);delay(50);
nota(b[1],150);noTone(spk);delay(50);
nota(a[1],150);noTone(spk);delay(50);
nota(g[2],900);noTone(spk);delay(150);
nota(d[2],900);noTone(spk);delay(100);
nota(c[2],150);noTone(spk);delay(50);
nota(b[1],150);noTone(spk);delay(50);
nota(c[2],150);noTone(spk);delay(50);
nota(a[1],1000);noTone(spk);delay(200);
}
/*****************************************/
void nota(int frec, int t)
{
tone(spk,frec); // suena la nota frec recibida
if ((frec==131) || (frec==262) || (frec==523) || (frec==1046) || (frec==2093)) {
digitalWrite (Do, HIGH);
delay(t);
digitalWrite (Do, LOW);
}
else if ((frec==139) || (frec==277) || (frec==554) || (frec==1108) || (frec==2217)) {
digitalWrite (Do, HIGH);
delay(t);
digitalWrite (Do, LOW);
}
else if ((frec==147) || (frec==294) || (frec==587) || (frec==1175) || (frec==2349)) {
digitalWrite (Re, HIGH);
delay(t);
digitalWrite (Re, LOW);
}
else if ((frec==156) || (frec==311) || (frec==622) || (frec==1244) || (frec==2489)) {
digitalWrite (Re, HIGH);
delay(t);
digitalWrite (Re, LOW);
}
else if ((frec==165) || (frec==330) || (frec==659) || (frec==1319) || (frec==2637)) {
digitalWrite (Mi, HIGH);
delay(t);
digitalWrite (Mi, LOW);
}
else if ((frec==175) || (frec==349) || (frec==698) || (frec==1397) || (frec==2794)) {
digitalWrite (Fa, HIGH);
delay(t);
digitalWrite (Fa, LOW);
}
else if ((frec==185) || (frec==370) || (frec==740) || (frec==1480) || (frec==2960)) {
digitalWrite (Fa, HIGH);
delay(t);
digitalWrite (Fa, LOW);
}
else if ((frec==196) || (frec==392) || (frec==784) || (frec==1568) || (frec==3136)) {
digitalWrite (Sol, HIGH);
delay(t);
digitalWrite (Sol, LOW);
}
else if ((frec==208) || (frec==415) || (frec==831) || (frec==1661) || (frec==3322)) {
digitalWrite (Sol, HIGH);
delay(t);
digitalWrite (Sol, LOW);
}
else if ((frec==220) || (frec==440) || (frec==880) || (frec==1760) || (frec==3520)) {
digitalWrite (La, HIGH);
delay(t);
digitalWrite (La, LOW);
}
else if ((frec==233) || (frec==466) || (frec==932) || (frec==1866) || (frec==3729)) {
digitalWrite (La, HIGH);
delay(t);
digitalWrite (La, LOW);
}
else if ((frec==247) || (frec==494) || (frec==988) || (frec==1976) || (frec==3951)) {
digitalWrite (Si, HIGH);
delay(t);
digitalWrite (Si, LOW);
}
}
void loop()
{
}
Comentarios
Publicar un comentario