El shield multifunción lleva incorporado un zumbador, conectado al pin 3 de Arduino, con el que podemos emitir sonidos; para ello se utiliza la instrucción tone, indicando el numero del pin y la frecuencia del mismo. También necesitaremos la instrucción noTone para silenciarlo. Además, si no queremos que el zumbador haga ruido es conveniente mantener el pin 3 con un nivel de voltaje alto. El siguiente programa hace que el zumbador suene durante 1 segundo con una frecuencia de 440 Hz y después queda en silencio 5 segundos.
/* zumbador
* Emite un sonido (nota La) durante 1 segundo,
* después permanece en silencio 5 segundos.
* El zumbador está conectado al pin 3 de Arduino.
* Para evitar que emita ruidos hay que poner un
* nivel de voltaje alto (HIGH) en dicho pin.
*/
void setup() {
pinMode(3, OUTPUT); //pin 3 como salida
digitalWrite(3, HIGH); //zumbador sin ruido
}
void loop() {
tone(3, 440); //nota La, frecuencia 440Hz
delay(1000); //esperamos 1 segundo
noTone(3); //silencio
digitalWrite(3, HIGH);
delay(5000); //esperamos 5 segundos
}
En la siguiente lista tenemos las frecuencias de las notas musicales básicas:
Ahora haremos que suenen las notas Do, Re y Mi durante medio segundo cada una, después permanecerá en silencio 2 segundos y se repetirá el ciclo.
/* zumbadorDoReMi
* Suenan las notas Do, Re y Mi durante medio
* segundo cada una, después 2 segundos en silencio
*/
void setup() {
pinMode(3, OUTPUT);
digitalWrite(3, HIGH);
}
void loop() {
tone(3, 262); //Do
delay(500);
tone(3, 294); //Re
delay(500);
tone(3, 330); //Mi
delay(500);
noTone(3); //silencio
digitalWrite(3, HIGH);
delay(2000);
}
En el siguiente programa suenan las mismas notas pero dando un pitido corto de 0'1 segundos.
/* zumbadorDoReMiCorto
* Suenan unos pitidos cortos (100 mseg) de las notas
* Do, Re y Mi. Posteriormente, pasados 2 segundos
* se vuelve a repetir el ciclo.
*/
void setup() {
pinMode(3, OUTPUT); //pin 3 como salida
digitalWrite(3, HIGH); //zumbador sin sonido
}
void loop() {
tone(3, 262); //Do
delay(100);
noTone(3); //silencio
digitalWrite(3, HIGH);
delay(400);
tone(3, 294); //Re
delay(100);
noTone(3); //silencio
digitalWrite(3, HIGH);
delay(400);
tone(3, 330); //Mi
delay(100);
noTone(3); //silencio
digitalWrite(3, HIGH);
delay(400);
delay(2000); //dos segundos de pausa
}
2.- Conseguir que suene la escala musical completa en el zumbador.
No hay comentarios:
Publicar un comentario