.. note:: ¡Hola! Bienvenido a la Comunidad de Entusiastas de SunFounder para 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. - **Aprender y Compartir**: Intercambia consejos y tutoriales para mejorar tus habilidades. - **Preestrenos Exclusivos**: Obtén acceso anticipado a nuevos anuncios de productos y adelantos. - **Descuentos Especiales**: Disfruta de descuentos exclusivos en nuestros productos más nuevos. - **Promociones y Sorteos Festivos**: Participa en sorteos y promociones navideñas. 👉 ¿Listo para explorar y crear con nosotros? Haz clic en [|link_sf_facebook|] y únete hoy mismo! .. _1.2.1_py: 1.2.1 Zumbador Activo =========================== Introducción ---------------- En este proyecto, aprenderemos a hacer sonar un zumbador activo con un transistor PNP. Componentes Requeridos ------------------------- En este proyecto, necesitamos los siguientes componentes. .. image:: ../img/list_1.2.1.png Es definitivamente conveniente comprar un kit completo, aquí está el enlace: .. list-table:: :widths: 20 20 20 :header-rows: 1 * - Nombre - ELEMENTOS EN ESTE KIT - ENLACE * - Kit Raphael - 337 - |link_Raphael_kit| También puedes comprarlos por separado en los enlaces a continuación. .. list-table:: :widths: 30 20 :header-rows: 1 * - INTRODUCCIÓN DE COMPONENTES - 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 PNP y una resistencia de 1k entre la base del transistor y el GPIO para proteger el transistor. Cuando el GPIO17 de Raspberry Pi se suministra con nivel bajo (0V) mediante programación, el transistor conducirá debido a la saturación de corriente y el zumbador emitirá sonidos. Pero cuando se suministra un nivel alto al IO de Raspberry Pi, el transistor se cortará y el zumbador no emitirá sonidos. .. image:: ../img/image332.png Procedimientos Experimentales ----------------------------------- **Paso 1:** Construir el circuito. (El zumbador activo tiene una etiqueta blanca en la superficie y un respaldo negro.) .. image:: ../img/image104.png **Paso 2**: Abrir el archivo de código. .. raw:: html .. code-block:: cd ~/raphael-kit/python **Paso 3**: Ejecutar. .. raw:: html .. code-block:: sudo python3 1.2.1_ActiveBuzzer.py Al ejecutar el código, el zumbador emite un pitido. **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``. Después de modificar el código, puedes ejecutarlo directamente para ver el efecto. .. raw:: html .. code-block:: python import RPi.GPIO as GPIO import time # Set GPIO17 as buzzer pin BeepPin = 17 def setup(): GPIO.setmode(GPIO.BCM) GPIO.setup(BeepPin, GPIO.OUT, initial=GPIO.HIGH) def main(): while True: # Buzzer on (Beep) print ('Buzzer On') GPIO.output(BeepPin, GPIO.LOW) time.sleep(0.1) # Buzzer off print ('Buzzer Off') GPIO.output(BeepPin, GPIO.HIGH) time.sleep(0.1) def destroy(): # Turn off buzzer GPIO.output(BeepPin, GPIO.HIGH) # Release resource GPIO.cleanup() # If run this script directly, do: if __name__ == '__main__': setup() try: main() # When 'Ctrl+C' is pressed, the program # destroy() will be executed. except KeyboardInterrupt: destroy() **Explicación del Código** .. code-block:: python GPIO.output(BeepPin, GPIO.LOW) Establecer el pin del zumbador en nivel bajo para que el zumbador emita un pitido. .. code-block:: python time.sleep(0.1) Esperar 0.1 segundos. Cambia la frecuencia de conmutación modificando este parámetro. .. note:: No es la frecuencia del sonido. El zumbador activo no puede cambiar la frecuencia del sonido. .. code-block:: python GPIO.output(BeepPin, GPIO.HIGH) Apagar el zumbador. Imagen del Fenómeno ------------------------ .. image:: ../img/image105.jpeg