// Difinición para pines
#define pinSPK 40
// Definición de frecuencias en Hz para cada nota
#define DO4 262
#define RE4 294
#define MI4 330
#define FA4 349
#define SOL4 392
#define LA4 440
#define SI4 494
// Declaración de arreglos y variables
int pinPUL[7] = {16, 17, 18, 8, 3, 46, 9};
int notas4[7] = {DO4, RE4, MI4, FA4, SOL4, LA4, SI4};
int i;
void setup() {
// Configuramos los pines de los pulsadores
for(i=0; i<7; i++){
pinMode(pinPUL[i], INPUT_PULLUP);
}
// Inicializamos el parlante en silencio
analogWrite(pinSPK, 0);
}
void loop() {
for(i=0; i<7; i++){
// Si se presiona alguno de los siete pulsadores
if(digitalRead(pinPUL[i]) == LOW){
delay(5);
// Actualizamos la frecuencia PWM
analogWriteFrequency(pinSPK, notas4[i]);
// Ciclo de trabajo de 50%
analogWrite(pinSPK, 128);
while(digitalRead(pinPUL[i])==LOW);
delay(5);
// Ciclo de trabajo 0% al soltar el pulsador
analogWrite(pinSPK, 0);
}
}
delay(10); // this speeds up the simulation
}