Varias prácticas con el zumbador (buzzer)
- Si los conectáis al revés, simplemente no sonará, y tendréis que dar la vuelta.
- Además para este primer montaje, necesitamos usar un pin PWM (como el 9) porque es la alternancia entre HIGH y LOW lo que produce el efecto piezoeléctrico (recordad que una señal PWM envía un tren de ondas cuadradas de amplitud variable), por lo que lo más cómodo es usar un pin PWM en lugar de programar un efecto equivalente en un pin normal.
Este es el código del PROGRAMA1, que simplemente emite un beep
-----------------------------------------------------------------------------------------------------
void setup() {
pinMode(9, OUTPUT);
beep(50);
beep(50);
beep(50);
delay(1000);
}
void loop() {
beep(200);
}
void beep(unsigned char pausa) {
analogWrite(9, 20);
delay(pausa); // Espera
analogWrite(9, 0); // Apaga
delay(pausa); // Espera
}
-----------------------------------------------------------------------------------------------------
-----------------------------------------------------------------------------------------------------
Arduino dispone de la función tone() que genera una señal de la frecuencia indicada, y notone() que la corta.
Prueba este PROGRAMA2, con el buzzer conectado al pin digital 9
-----------------------------------------------------------------------------------------------------
-------------------------------------------------------------------------------------
// Genera señales de tono variable para hacer una melodía
int speakerPin = 9;
int numTones = 10;
int tones[ ] = {261, 277, 294, 311, 330, 349, 370, 392, 415, 440, 466, 494};
// mid C C# D D# E F F# G G# A
void setup()
{ }
void loop()
{
for (int i = 0; i < numTones; i++)
{
tone(speakerPin, tones[i]);
delay(500);
}
noTone(speakerPin);
}