jueves, 3 de marzo de 2022

El zumbador (IDE Arduino)

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
}


Ejercicios propuestos:

1.- Realizar un programa que haga parpadear un LED y, a la vez, emita dos pitidos cortos.


2.- Conseguir que suene la escala musical completa en el zumbador.


3.- Ampliar el programa del semáforo de la entrada anterior de manera que el zumbador emita unos pitidos cortos para avisar que el tiempo de paso de los peatones se está acabando.


No hay comentarios:

Publicar un comentario