Approved Reseller
Approved Reseller
Si quieres usar buzzers con tu Raspberry Pi Pico tienes dos opciones: buzzers pasivos o activos. Los buzzer pasivos son como bocinas, requieren de una señal que cambie a través del tiempo para funcionar. Los buzzers activos son más sencillos de usar, solo necesitan una señal digital y tienen un pitido agudo que no puede cambiar de frecuencia. En esta entrada te mostramos dos ejemplos para usar ambos buzzers con tu Raspberry Pi Pico y el IDE de Arduino.
Recientemente han surgido algunos problemas para cargar los programas en la tarjeta, esto debido a la compatibilidad de las librerías del microcontrolador RP2040. Para asegurarte de que no surjan inconvenientes con tu código, te recomendamos seguir estos pasos:
1.- Actualizar las librerías de la tarjeta
2.- Borrar la memoria flash
3.- Actualizar el bootloader
Para utilizar el buzzer activo solo se necesita una señal digital. Al igual que un programa blink, podemos encender y apagar el buzzer cada 500 ms. Carga este código y conecta tu buzzer al pin 20 de tu tarjeta, el extremo negativo del buzzer irá a tierra.
// the setup function runs once when you press reset or power the board void setup() { // initialize digital pin 15 as an output. pinMode(15, OUTPUT); } // the loop function runs over and over again forever void loop() { digitalWrite(15, HIGH); delay(500); digitalWrite(15, LOW); delay(500); }
El buzzer pasivo necesita una señal variable en el tiempo para funcionar. El IDE de Arduino maneja una función llamada tone con la que podemos configurar el pin de salida y la frecuencia. En este caso vamos a mandar 11 señales cada segundo al GPIO 15 (pin 20 de la tarjeta).
const int pinBuzzer = 15; //Constante que contiene el numero del pin de Arduino al cual conectamos un buzzer pasivo const int frecuencias[] = {261, 277, 294, 311, 330, 349, 370, 392, 415, 440, 466, 494, 1000};//Arreglo que contiene las frecuencias que queremos escuchar en nuestro buzzer const int numFrecuencias = 11; void setup() { } void loop() { for (int i = 0; i < numFrecuencias; i++) { tone(pinBuzzer, frecuencias[i]); delay(1000); } noTone(pinBuzzer); }
Referencias: