Cómo conectar un Buzzer pasivo a Raspberry Pi

En este pequeño tutorial veremos cómo conectar un buzzer pasivo a una tarjeta Raspberry Pi, también encontrarás un código de programación para tus primeras pruebas.

Un buzzer pasivo es un dispositivo que tiene la capacidad de transformar una señal variable de voltaje en una señal de audio, se le conoce como pasivo porque no cuenta con componentes internos que generen señales con frecuencias audibles por lo que la señal de voltaje con la que es controlado debe tener las frecuencias correspondientes a la nota que deseamos escuchar.

De esta manera un buzzer pasivo es un componente de salida, es decir, su funcionamiento consiste recibir una señal de voltaje variable para convertirla en una señal de audio. La tarjeta Raspberry Pi tiene la capacidad de generar señales cuadradas a distintas frecuencias en sus pines digitales, para implementar dichas señales utilizaremos el paquete RPi.GPIO de python3.

Componentes necesarios

  • Buzzer pasivo
  • Raspberry Pi
  • Protoboard Chica
  • Transistor BC548
  • Resistor 220 ohms
  • Cables de conexión H-M y M-M

Diagrama de conexiones

Raspberry Pi – Protoboard Chica – Buzzer pasivo – BC548

Código de Python3

Copiamos el siguiente código ejemplo a un script de Python y lo ejecutamos con Python3 para ingresar el ciclo de trabajo y la frecuencia de la señal PWM que deseamos escuchar.



import RPi.GPIO as GPIO  #Importamos el paquete RPi.GPIO y en el código nos refiriremos a el como GPIO

pin_buzz = 18  #Variable que contiene el pin(GPIO.BCM) al cual conectamos la señal del LED

GPIO.setmode(GPIO.BCM)   #Establecemos el modo según el cual nos refiriremos a los GPIO de nuestra RPi            
GPIO.setup(pin_buzz, GPIO.OUT) #Configuramos el GPIO18 como salida


#Contenemos el código principal en una estructura try para limpiar los GPIO al terminar o presentarse un error
try:
    while 1:   #Implementamos un loop infinito
        PWM=input("Ingresa el ciclo de trabajo (1 to 99):")    #Input para introducir el ciclo de trabajo d ela señal PWM
        HZ=input("Ingresa la frecuencia en Hz (0 to 2000);")    #Input para introducir la frecuencia de la señal
        pwm=int(PWM)
        hz=int(HZ)
        pwm_led=GPIO.PWM(pin,hz)  # Creamos la instancia PWM
        pwm_led.start(pwm)        #Inicializamos la señal PWM 
except KeyboardInterrupt:
    # CTRL+C
    print("\nInterrupcion por teclado")
except:
    print("Otra interrupcion")
finally:
    GPIO.cleanup()
    print("GPIO.cleanup() ejecutado")