.. note:: ¡Hola, bienvenido a la comunidad de entusiastas de SunFounder Raspberry Pi, Arduino y ESP32 en Facebook! Sumérgete más profundamente 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. - **Vistas previas exclusivas**: Obtén acceso anticipado a anuncios de nuevos productos y avances. - **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_js: 1.2.1 Zumbador Activo ================================== Introducción ---------------- En este proyecto, aprenderemos cómo activar un zumbador activo para que emita un pitido utilizando un transistor PNP. Componentes Necesarios ------------------------------ En este proyecto, necesitaremos 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 - ARTÍCULOS 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 DEL 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 utiliza 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 la Raspberry Pi se suministra con un 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 la 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**: Ir a la carpeta del código. .. raw:: html .. code-block:: cd ~/raphael-kit/nodejs/ **Paso 3**: Ejecutar. .. raw:: html .. code-block:: sudo node active_buzzer.js El código se ejecuta y el zumbador emite un pitido. **Código** .. code-block:: js const Gpio = require('pigpio').Gpio; const active = new Gpio(17,{mode: Gpio.OUTPUT}); setInterval(() => { active.digitalWrite(!active.digitalRead()); }, 500); process.on('SIGINT',function(){ active.digitalWrite(1); process.exit(); }); **Explicación del Código** .. code-block:: js const Gpio = require('pigpio').Gpio; const active = new Gpio(17,{mode: Gpio.OUTPUT}); Importar el módulo ``pigpio``, e instanciar un objeto active para controlar el puerto IO Gpio17, y el modo se establece en modo de salida. .. code-block:: js setInterval(() => { active.digitalWrite(!active.digitalRead()); }, 500); El zumbador activo es similar al LED en uso y puede ser controlado con ``digitalWrite()``, y ``digitalRead()`` se utiliza para leer el nivel actual del pin. Aquí hacemos que el zumbador activo cambie su estado de funcionamiento cada 500ms. .. code-block:: js process.on('SIGINT', function() { /* DO SOME STUFF HERE */ process.exit() }) Manejar Ctrl+C, aquí se usa para detener el sonido del zumbador al salir del programa. `Process - NodeJS `_ Imagen del Fenómeno ------------------------- .. image:: ../img/image105.jpeg