En el capítulo anterior mostré la conexión de un zumbador, al cual, enseñé la forma básica para hacerlo sonar. En este verás como descargar, instalar y utilizar la biblioteca EasyBuzzer para Arduino.
Descargar EasyBuzzer
En GitHub disponemos de esta biblioteca gratuita llamada EasyBuzzer.
Para descargarla, puedes ir a este enlace.

Se te descargará un archivo .zip que no hace falta que abras.
Una vez la tengas descargada, vamos al IDE de Arduino > Menú superior > Programa > Incluir Librería > Añadir biblioteca .ZIP...
Como curiosidad, la traducción de "Incluir Librería" es incorrecta, la traducción sería "Incluir Biblioteca".

Selecciona el archivo descargado y ya estará. Ahora, tu IDE de Arduino tiene más funcionalidades.
Importar la biblioteca EasyBuzzer
Para importar la biblioteca de EasyBuzzer, tan solo hay que escribir arriba del todo esta línea:
#include <EasyBuzzer.h>
Si no te da ningún error, quiere decir que la tienes instalada correctamente.
Vayamos al setup(). Aquí, pondremos el pin positivo para poder controlarlo. Yo lo tengo en el 3.
void setup() {
// Pin del zumbador
EasyBuzzer.setPin(3);
}
En el mismo setup() también pondremos la llamada a una función de EasyBuzzer llamada beep. Fíjate que cada vez que llamamos a algo de la biblioteca EasyBuzzer, lo hacemos con su nombre y luego un punto.
Debería quedarte todo así:
#include <EasyBuzzer.h>
void setup() {
// Pin del zumbador
EasyBuzzer.setPin(3);
// Ajustes del tono
EasyBuzzer.beep(
500 //Frecuencia en Hz
);
}
void loop() {
// Bucle de actualización de la biblioteca
EasyBuzzer.update();
}
En la función EasyBuzzer.beep() podemos pasar varios argumentos en un orden concreto. Mínimo tenemos que poner uno tal y como ves en el código anterior. Este primer argumento representa la frecuencia en hercios. Ves probando valores y verás que el sonido cambia.
Si ejecutas este código en tu Arduino, el zumbador va a pitar en esa frecuencia constantemente, no va a parar.
Añade un segundo argumento para indicar el número de veces que quieres que se ejecute el sonido:
EasyBuzzer.beep(
500, // Frecuencia en Hz
10 // Número de pitidos
);
Podemos agregar una función como tercer argumento. Con ella puedes inventar el código que quieras. A mí, se me ocurre hacer una función que lleve dentro una llamada a EasyBuzzer.beep() para hacer que cuando acabe de emitir los 10 pitidos que le he indicado, que haga 1 pitido extra en otra frecuencia.
#include <EasyBuzzer.h>
void setup() {
// Pin del zumbador
EasyBuzzer.setPin(3);
// Ajustes del tono
EasyBuzzer.beep(
500, //Frecuencia en Hz
10, // Número de pitidos
sonidoFinal // Llamada a función
);
}
void sonidoFinal(){
EasyBuzzer.beep(
350, //Frecuencia en Hz
1 // Número de pitidos
);
}
void loop() {
// Bucle de actualización de la biblioteca
EasyBuzzer.update();
}
Solo piensa, que incluso en la función del pitido final, si le indicas aquí también el tercer argumento, puedes hacer que llame a otra función. Por ejemplo, si llamo al propio setup(), crea un bucle infinito, aunque podrías crear más funciones haciendo diferentes cosas en lugar de esto.
#include <EasyBuzzer.h>
void setup() {
// Pin del zumbador
EasyBuzzer.setPin(3);
// Ajustes del tono
EasyBuzzer.beep(
500, //Frecuencia en Hz
10, // Número de pitidos
sonidoFinal // Llamada a función sonidoFinal()
);
}
void sonidoFinal(){
EasyBuzzer.beep(
350, //Frecuencia en Hz
1, // Número de pitidos
setup //Llamada a la función setup()
);
}
void loop() {
// Bucle de actualización de la biblioteca
EasyBuzzer.update();
}
Crear una secuencia con EasyBuzzer
Ahora que ya dominas lo básico, vamos a utilizar más opciones de la función EasyBuzzer.beep() para crear una secuencia.
Primero, analicemos la función EasyBuzzer.Beep().
El primer argumento se corresponde con la frecuencia en hercios (tono), el segundo especifica la duración del pitido en milisegundos, el tercero especifica la duración de los silencios en milisegundos entre pitido y pitido. El cuarto es para el número de pitidos de la secuencia. El quinto especifica en milisegundos la duración de la pausa entre ciclo y ciclo. El sexto sirve para especificar el número de ciclos y por último, podemos llamar opcionalmente a una función. En mi caso, he llamado a la función sonidoFinal().
Esta función, lo que hace es utilizar una función llamada EasyBuzzer.singleBeep que sirve para realizar un único pitido. Este va a durar 3 segundos (3000 ms).
#include <EasyBuzzer.h>
void setup() {
// Pin del zumbador
EasyBuzzer.setPin(3);
// Ajustes del tono
EasyBuzzer.beep(
500, //Frecuencia en Hz
700, // Duración del pitido
800, // Duración del silencio entre pitidos
5, // Número de pitidos
3000, // Pausa final entre ciclos
3, // Número de ciclos
sonidoFinal // Llamada a función
);
}
void sonidoFinal(){
EasyBuzzer.singleBeep(
350, //Frecuencia en Hz
3000 // Duración del pitido
);
}
void loop() {
// Bucle de actualización de la biblioteca
EasyBuzzer.update();
}
Hasta aquí este capítulo, que sepas que puedes hacer hasta música. Solo tienes que buscar música Arduino en Google y te saldrán un montón. Si necesitas ayuda para saber como utilizar eso, déjame un comentario.