.. note:: ¡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 [|link_sf_facebook|] y únete hoy mismo. .. _1.2.1_py_pi5: 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. .. image:: ../python_pi5/img/1.2.1_active_buzzer_list.png Es definitivamente conveniente comprar un kit completo, aquí está el enlace: .. list-table:: :widths: 20 20 20 :header-rows: 1 * - Nombre - COMPONENTES EN ESTE KIT - ENLACE * - Kit Raphael - 337 - |link_Raphael_kit| También puedes comprarlos por separado desde los enlaces a continuación. .. list-table:: :widths: 30 20 :header-rows: 1 * - INTRODUCCIÓN AL COMPONENTE - ENLACE DE COMPRA * - :ref:`cpn_gpio_board` - |link_gpio_board_buy| * - :ref:`cpn_breadboard` - |link_breadboard_buy| * - :ref:`cpn_wires` - |link_wires_buy| * - :ref:`cpn_resistor` - |link_resistor_buy| * - :ref:`cpn_buzzer` - \- * - :ref:`cpn_transistor` - |link_transistor_buy| 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 ============ ======== ======== === .. image:: ../python_pi5/img/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). .. image:: ../python_pi5/img/1.2.1_ActiveBuzzer_circuit.png **Paso 2:** Abre el archivo de código. .. raw:: html .. code-block:: cd ~/raphael-kit/python-pi5 **Paso 3:** Ejecuta el archivo. .. raw:: html .. code-block:: sudo python3 1.2.1_ActiveBuzzer_zero.py Al ejecutar el código, el zumbador sonará. .. warning:: Si recibe el mensaje de error ``RuntimeError: Cannot determine SOC peripheral base address``, consulte :ref:`faq_soc` **Código** .. note:: 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. .. raw:: html .. code-block:: python #!/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** #. Estas sentencias importan la clase ``Buzzer`` de la biblioteca ``gpiozero`` y la función ``sleep`` del módulo ``time``. .. code-block:: python #!/usr/bin/env python3 from gpiozero import Buzzer from time import sleep #. Esta línea crea un objeto ``Buzzer`` conectado al pin GPIO 17 de la Raspberry Pi. .. code-block:: python # Initialize a Buzzer object on GPIO pin 17 buzzer = Buzzer(17) #. 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. .. code-block:: python 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 #. Este segmento asegura que el programa pueda ser terminado de manera segura usando una interrupción del teclado (Ctrl+C) sin arrojar un error. .. code-block:: python except KeyboardInterrupt: # Handle KeyboardInterrupt (Ctrl+C) for clean script termination pass