Nota: Para este programa se necesita un zumbador activo (la explicación sigue más adelante), hay que prestar atención a la polaridad. No se necesita una resistencia en serie para el zumbador (altavoz).
En esta entrada del blog, queremos hacer que un zumbador y un LED se enciendan o suenen con la ayuda de un microcontrolador Raspberry Pi. Este programa se utiliza a menudo en las escuelas para mostrar cómo se pueden utilizar señales de salida simples utilizando una Raspberry Pi con componentes sencillos.
Antes de entrar en la cuestión de cuál es la diferencia entre un altavoz activo y uno pasivo, veamos primero el esquema del circuito y el código del programa.
El esquema del circuito: Conexión del zumbador y el LED a la Raspberry Pi
El código fuente: Conexión del zumbador y el LED a la Raspberry Pi
# Esta vez también utilizamos la primera sección del programa. Aquí se introducen las variables. Esto significa que hay un número detrás de una letra o una palabra. En nuestro caso, el LED está conectado a la patilla 23 y el altavoz piezoeléctrico a la patilla 4. Para evitar confundir las dos patillas más adelante, simplemente renombramos la patilla 23 y la patilla 24.
# Empezamos importando los módulos del programa
import RPI.GPIO as GPIO
importar tiempo
GPIO.setmode(GPIO.BCM) # Establecemos el modo a BCM
LED=23; # La palabra " LED" ahora representa el número "23".
Bip=24; # La palabra " Bip" ahora representa el número "24".
GPIO.setup(LED,GPIO.OUT) # El pin "LED" (pin 23) es una salida.
GPIO.setup(Pieps,GPIO.OUT) # El pin " Pieps" (pin 24) es una salida
# El bucle comienza aquí
prueba:
while True: # Bucle while para que el programa se ejecute continuamente
GPIO.output(LED,GPIO.HIGH) # Enciende el LED.
GPIO.output(Pieps,GPIO.HIGH) # Enciende el altavoz piezoeléctrico.
time.sleep(1) # Espera 1 segundo
GPIO.output(LED,GPIO.LOW) # Apaga elLED.
GPIO.output(Pieps,GPIO.LOW) # Apaga elaltavoz piezoeléctrico.
time.sleep(1)
# Aquí al final, el programa salta al inicio del bucle while. Así que está a punto de pitar y encenderse de nuevo. Si aumentas o reduces la pausa (tiempo.dormir), pita y se enciende más rápido o más lento.
except InterrupciónTeclado: # Con CTRL+C interrumpimos el programa
print ("Finalizado") # Escribe "Finalizado" en la ventana del intérprete de comandos
GPIO.cleanup() # Sal del programa
Diferencia entre zumbador activo y pasivo
El zumbador activo tiene un oscilador incorporado que produce un zumbido cuando se aplica una tensión de 3,3 V o 5 V. Debido a su diseño, tienes que prestar atención a la polaridad del zumbador. En el momento de la entrega, estos zumbadores suelen tener una pequeña pegatina con el signo más y la pegatina "QUITA EL SELLO DESPUÉS DE LAVAR". También hay un signo más + de nuevo en el cuerpo del propio componente. Tienes que mirar dos veces para ver la pata más larga. O puedes coger una pequeña placa breakout; aquí los contactos están marcados con S (significa señal) y - (menos, masa).
Puedes probar el zumbador con un programa sencillo como el del LED parpadeante, en el que el pin (casi) cualquiera se pone en ALTO durante un segundo y en BAJO durante un segundo.
El zumbador pasivo no tiene oscilador incorporado, por lo que la Raspberry Pi tiene que hacerse cargo de esta función. Si pruebas el programa anterior en un zumbador pasivo, oirás un suave sonido de "clic" cada segundo.
Sin embargo, si acortas extremadamente el tiempo de pausa (sleep(0,001) o sleep(0,002)) y repites el encendido/apagado durante cierta duración, podrás oír un sonido cuya frecuencia podemos calcular fácilmente: un milisegundo cada uno de ALTO o BAJO significa (sin tener en cuenta el tiempo de ejecución de los demás comandos) unos 500 ciclos de encendido/apagado por segundo, es decir, unos 500 Hz.
Si quieres emitir un tono de aviso breve, debes utilizar un zumbador activo que se encienda y apague como un LED. Debes prestar atención a la polaridad.
Si quieres programar una sirena de dos tonos (que se oiga más claramente) o una breve melodía de reconocimiento (jingle), debes utilizar un zumbador pasivo o un pequeño altavoz.