Partitura:
Enlace para descargar el codigo: https://drive.google.com/drive/folders/0B20kHfrc3NnpUXpLNjgxa3hVLXM?usp=sharing
Nota: conectar el zumbador al Pin 2 del Arduino
CODIGO:
/*
//////////////////////////////////////////////////////////////////////////////////////////////
// AUTOR: Marcos Gonzalez Perez Septiembre/2017
//////////////////////////////////////////////////////////////////////////////////////////////
// PROGRAMA: Notas musicales VERSION: 1.0
// DISPOSITIVO: ATMEGA328P COMPILADOR: AVR
// Entorno IDE: 1.6.0 SIMULADOR:
// TARJETA DE APLICACION: ARDUINO UNO DEBUGGER:
//////////////////////////////////////////////////////////////////////////////////////////////
Programa que hace una la cancion de los pajaritos
https://www.youtube.com/watch?v=CgYD3ChlVMA
//////////////////////////////////////////////////////////////////////////////////////////////
*/
//////////////////////////////////////////////////////////////////////////////////////////////
// LIBRERIAS /////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////////////////
// VARIABLES GLOBALES ////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////////////////
// FUNCIONES /////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////////////////
// CONFIGURACION /////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////////////////
//Notas en clave de Sol:
const int Do = 261;
//Do sostenido o re bemol
const int DoS = 277;
const int ReB = 277;
const int Re = 294;
//Re sostenido o Mi bemol
const int ReS = 311;
const int MiB = 311;
const int Mi = 329;
const int Fa = 349;
//Fa sostenido o Sol bemol
const int FaS = 370;
const int SolB = 370;
const int Sol = 392;
//Sol soltenido o La bemol
const int SolS = 415;
const int LaB = 415;
const int La = 440;
//La sostenido o Si Bemol
const int LaS = 466;
const int SiB = 466;
const int Si = 493;
//Do agudo
const int DO = 522;
const int RE = 587;
const int MI = 659;
#define Redonda 4000
#define Blanca 2000
#define Negra 1000
#define Corchea 500
#define Semicorchea 250
#define Fusa 125
#define Semifusa 62.5
//Nota: el punto equivale a la mitad del tiempo de la nota (la nota vale 1.5 veces su tiempo normal)
#define Punto 1.5
const int buzzerPin = 2;
void setup() {
pinMode(buzzerPin, OUTPUT);
}
//////////////////////////////////////////////////////////////////////////////////////////////
//PRINCIPAL///////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////////////////
//Partitura: Chicken Dance: http://www.freesheetmusic.net/folktunes1/ChickenDance.pdf
void loop() {
for(int x=0; x<2; x++){ //repeticion de todo
for(int y=0; y<2; y++){ //repeticion parte 1
//linea 1
tone(buzzerPin, Sol, Semicorchea-10);
delay(Semicorchea);
tone(buzzerPin, Sol, Semicorchea-10);
delay(Semicorchea);
tone(buzzerPin, La, Semicorchea-10);
delay(Semicorchea);
tone(buzzerPin, La, Semicorchea-10);
delay(Semicorchea);
tone(buzzerPin, Mi, Semicorchea-10);
delay(Semicorchea);
tone(buzzerPin, Mi, Semicorchea-10);
delay(Semicorchea);
tone(buzzerPin, Sol, Corchea-10);
delay(Corchea);
tone(buzzerPin, Sol, Semicorchea-10);
delay(Semicorchea);
tone(buzzerPin, Sol, Semicorchea-10);
delay(Semicorchea);
tone(buzzerPin, La, Semicorchea-10);
delay(Semicorchea);
tone(buzzerPin, La, Semicorchea-10);
delay(Semicorchea);
tone(buzzerPin, Mi, Semicorchea-10);
delay(Semicorchea);
tone(buzzerPin, Mi, Semicorchea-10);
delay(Semicorchea);
tone(buzzerPin, Sol, Corchea-10);
delay(Corchea);
tone(buzzerPin, Sol, Semicorchea-10);
delay(Semicorchea);
tone(buzzerPin, Sol, Semicorchea-10);
delay(Semicorchea);
tone(buzzerPin, La, Semicorchea-10);
delay(Semicorchea);
tone(buzzerPin, La, Semicorchea-10);
delay(Semicorchea);
tone(buzzerPin, DO, Semicorchea-10);
delay(Semicorchea);
tone(buzzerPin, DO, Semicorchea-10);
delay(Semicorchea);
tone(buzzerPin, Si, Corchea-10);
delay(Corchea);
//silencio de corchea
delay(Corchea);
//silencio de negra
delay(Negra);
//silencio de corchea
delay(Corchea);
tone(buzzerPin, Fa, Semicorchea-10);
delay(Semicorchea);
tone(buzzerPin, Fa, Semicorchea-10);
delay(Semicorchea);
tone(buzzerPin, Sol, Semicorchea-10);
delay(Semicorchea);
tone(buzzerPin, Sol, Semicorchea-10);
delay(Semicorchea);
tone(buzzerPin, Re, Semicorchea-10);
delay(Semicorchea);
tone(buzzerPin, Re, Semicorchea-10);
delay(Semicorchea);
//Linea 2
tone(buzzerPin, Fa, Corchea-10);
delay(Corchea);
tone(buzzerPin, Fa, Semicorchea-10);
delay(Semicorchea);
tone(buzzerPin, Fa, Semicorchea-10);
delay(Semicorchea);
tone(buzzerPin, Sol, Semicorchea-10);
delay(Semicorchea);
tone(buzzerPin, Sol, Semicorchea-10);
delay(Semicorchea);
tone(buzzerPin, Re, Semicorchea-10);
delay(Semicorchea);
tone(buzzerPin, Re, Semicorchea-10);
delay(Semicorchea);
/////////////////////////////////////////////////////////////
if (x==0){
tone(buzzerPin, Fa, Corchea-10);
delay(Corchea);
tone(buzzerPin, Fa, Semicorchea-10);
delay(Semicorchea);
tone(buzzerPin, Fa, Semicorchea-10);
delay(Semicorchea);
tone(buzzerPin, Sol, Semicorchea-10);
delay(Semicorchea);
tone(buzzerPin, Sol, Semicorchea-10);
delay(Semicorchea);
tone(buzzerPin, Si, Semicorchea-10);
delay(Semicorchea);
tone(buzzerPin, Si, Semicorchea-10);
delay(Semicorchea);
tone(buzzerPin, La, Corchea-10);
delay(Corchea);
//silencio de corchea
delay(Corchea);
//silencio de negra
delay(Negra);
//silencio de corchea
delay(Corchea);
}
}
if (x==1){
tone(buzzerPin, Mi, Corchea-10);
delay(Corchea);
tone(buzzerPin, Fa, Corchea-10);
delay(Corchea);
tone(buzzerPin, Sol, Corchea-10);
delay(Corchea);
tone(buzzerPin, La, Corchea-10);
delay(Corchea);
tone(buzzerPin, Si, Blanca+Corchea-10);
delay(Blanca+Corchea);
}
tone(buzzerPin, Sol, Semicorchea-10);
delay(Semicorchea);
tone(buzzerPin, SolB, Semicorchea-10);
delay(Semicorchea);
tone(buzzerPin, Mi, Semicorchea-10);
delay(Semicorchea);
//Linea 3
tone(buzzerPin, Mi, Negra*Punto-10);
delay(Negra*Punto);
tone(buzzerPin, Sol, Corchea-10);
delay(Corchea);
tone(buzzerPin, MI, Negra*Punto-10);
delay(Negra*Punto);
tone(buzzerPin, RE, Corchea-10);
delay(Corchea);
tone(buzzerPin, RE, Negra-10);
delay(Negra);
tone(buzzerPin, DO, Negra+Corchea-10);
delay(Negra+Corchea);
tone(buzzerPin, Sol, Corchea-10);
delay(Corchea);
tone(buzzerPin, SolB, Corchea-10);
delay(Corchea);
tone(buzzerPin, Fa, Corchea-10);
delay(Corchea);
tone(buzzerPin, Mi, Negra*Punto-10);
delay(Negra*Punto);
tone(buzzerPin, Sol, Corchea-10);
delay(Corchea);
tone(buzzerPin, RE, Negra*Punto-10);
delay(Negra*Punto);
tone(buzzerPin, DO, Corchea-10);
delay(Corchea);
tone(buzzerPin, Si, Blanca+Corchea-10);
delay(Blanca+Corchea);
tone(buzzerPin, Sol, Corchea-10);
delay(Corchea);
tone(buzzerPin, Sol, Corchea-10);
delay(Corchea);
tone(buzzerPin, SolB, Corchea-10);
delay(Corchea);
//Linea 4
tone(buzzerPin, Fa, Negra*Punto-10);
delay(Negra*Punto);
tone(buzzerPin, Sol, Corchea-10);
delay(Corchea);
tone(buzzerPin, RE, Negra*Punto-10);
delay(Negra*Punto);
tone(buzzerPin, DO, Corchea-10);
delay(Corchea);
tone(buzzerPin, DO, Negra-10);
delay(Negra);
tone(buzzerPin, Si, Negra+Corchea-10);
delay(Negra+Corchea);
tone(buzzerPin, RE, Corchea-10);
delay(Corchea);
tone(buzzerPin, RE, Corchea-10);
delay(Corchea);
tone(buzzerPin, DO, Corchea-10);
delay(Corchea);
tone(buzzerPin, DO, Negra-10);
delay(Negra);
tone(buzzerPin, Si, Negra+Corchea-10);
delay(Negra+Corchea);
tone(buzzerPin, Si, Corchea-10);
delay(Negra);
tone(buzzerPin, DO, Corchea-10);
delay(Corchea);
tone(buzzerPin, RE, Corchea-10);
delay(Corchea);
tone(buzzerPin, DO, Blanca+Corchea-10);
delay(Blanca+Corchea);
}
noTone(buzzerPin);
delay(5000);
}