Nota

¡Hola! Bienvenido a la comunidad de entusiastas de SunFounder Raspberry Pi, Arduino y ESP32 en Facebook. Profundiza en Raspberry Pi, Arduino y ESP32 con otros entusiastas.

¿Por qué unirse?

  • Soporte experto: Resuelve problemas postventa y desafíos técnicos con la ayuda de nuestra comunidad y equipo.

  • Aprende y comparte: Intercambia consejos y tutoriales para mejorar tus habilidades.

  • Previsualizaciones exclusivas: Obtén acceso anticipado a nuevos anuncios de productos y adelantos.

  • Descuentos especiales: Disfruta de descuentos exclusivos en nuestros productos más recientes.

  • Promociones festivas y sorteos: Participa en sorteos y promociones de temporada.

👉 ¿Listo para explorar y crear con nosotros? Haz clic en [Aquí] y únete hoy mismo.

1.2.1 Zumbador Activo

Introducción

En este proyecto, aprenderemos a hacer sonar un zumbador activo con un transistor NPN.

Componentes Necesarios

En este proyecto, necesitaremos los siguientes componentes.

../_images/1.2.1_active_buzzer_list.png

Es definitivamente conveniente comprar un kit completo, aquí está el enlace:

Nombre

COMPONENTES EN ESTE KIT

ENLACE

Kit Raphael

337

Raphael Kit

También puedes comprarlos por separado desde los enlaces a continuación.

INTRODUCCIÓN AL COMPONENTE

ENLACE DE COMPRA

Placa de Extensión GPIO

COMPRAR

Protoboard

COMPRAR

Cables de Puente

COMPRAR

Resistor

COMPRAR

Zumbador

-

Transistor

COMPRAR

Diagrama Esquemático

En este experimento se utilizan un zumbador activo, un transistor NPN y una resistencia de 1 kΩ. La resistencia se conecta entre el pin GPIO y la base del transistor para limitar la corriente de base y proteger el transistor. Cuando el GPIO17 de la Raspberry Pi emite un nivel alto (3,3 V), el transistor entra en saturación, permitiendo el paso de corriente a través del zumbador, que emite sonido. Cuando el GPIO17 emite un nivel bajo (0 V), el transistor se apaga y el zumbador permanece en silencio.

T-Board Name

physical

wiringPi

BCM

GPIO17

Pin 11

0

17

../_images/1.2.1_active_buzzer_schematic.png

Procedimientos Experimentales

Paso 1: Construye el circuito. (El zumbador activo tiene una etiqueta blanca en la superficie y un respaldo negro).

../_images/1.2.1_ActiveBuzzer_circuit.png

Paso 2: Abre el archivo de código.

cd ~/raphael-kit/python-pi5

Paso 3: Ejecuta el archivo.

sudo python3 1.2.1_ActiveBuzzer_zero.py

Al ejecutar el código, el zumbador sonará.

Advertencia

Si recibe el mensaje de error RuntimeError: Cannot determine SOC peripheral base address, consulte Si «gpiozero» no funciona.

Código

Nota

Puedes Modificar/Restablecer/Copiar/Ejecutar/Detener el código a continuación. Pero antes de eso, necesitas ir a la ruta del código fuente como raphael-kit/python-pi5. Después de modificar el código, puedes ejecutarlo directamente para ver el efecto.

#!/usr/bin/env python3
from gpiozero import Buzzer
from time import sleep

# Initialize a Buzzer object on GPIO pin 17
buzzer = Buzzer(17)

try:
    while True:
        # Turn on the buzzer
        print('Buzzer On')
        buzzer.on()
        sleep(0.1)  # Keep the buzzer on for 0.1 seconds

        # Turn off the buzzer
        print('Buzzer Off')
        buzzer.off()
        sleep(0.1)  # Keep the buzzer off for 0.1 seconds

except KeyboardInterrupt:
    # Handle KeyboardInterrupt (Ctrl+C) for clean script termination
    pass

Explicación del Código

  1. Estas sentencias importan la clase Buzzer de la biblioteca gpiozero y la función sleep del módulo time.

    #!/usr/bin/env python3
    from gpiozero import Buzzer
    from time import sleep
    
  2. Esta línea crea un objeto Buzzer conectado al pin GPIO 17 de la Raspberry Pi.

    # Initialize a Buzzer object on GPIO pin 17
    buzzer = Buzzer(17)
    
  3. En un bucle infinito (while True), el zumbador se enciende y se apaga cada 0.1 segundos. Las declaraciones print proporcionan una salida en la consola para cada acción.

    try:
        while True:
            # Turn on the buzzer
            print('Buzzer On')
            buzzer.on()
            sleep(0.1)  # Keep the buzzer on for 0.1 seconds
    
            # Turn off the buzzer
            print('Buzzer Off')
            buzzer.off()
            sleep(0.1)  # Keep the buzzer off for 0.1 seconds
    
  4. Este segmento asegura que el programa pueda ser terminado de manera segura usando una interrupción del teclado (Ctrl+C) sin arrojar un error.

    except KeyboardInterrupt:
    # Handle KeyboardInterrupt (Ctrl+C) for clean script termination
    pass