.. note:: Ciao, benvenuto nella Community di appassionati di Raspberry Pi, Arduino e ESP32 di SunFounder su Facebook! Approfondisci il tuo viaggio con Raspberry Pi, Arduino ed ESP32 insieme ad altri appassionati. **Perché unirti a noi?** - **Supporto esperto**: Risolvi i problemi post-vendita e le sfide tecniche con l'aiuto della nostra community e del nostro team. - **Impara e condividi**: Scambia consigli e tutorial per migliorare le tue competenze. - **Anteprime esclusive**: Ottieni accesso anticipato a nuovi annunci di prodotti e anteprime. - **Sconti speciali**: Godi di sconti esclusivi sui nostri prodotti più recenti. - **Promozioni e concorsi festivi**: Partecipa a concorsi e promozioni durante le festività. 👉 Pronto a esplorare e creare con noi? Clicca su [|link_sf_facebook|] e unisciti oggi stesso! .. _1.2.1_js: 1.2.1 Buzzer Attivo ======================== Introduzione --------------- In questo progetto, impareremo come far suonare un buzzer attivo utilizzando un transistor PNP. Componenti necessari -------------------------------- In questo progetto, abbiamo bisogno dei seguenti componenti. .. image:: ../img/list_1.2.1.png È sicuramente conveniente acquistare un kit completo, ecco il link: .. list-table:: :widths: 20 20 20 :header-rows: 1 * - Nome - OGGETTI IN QUESTO KIT - LINK * - Raphael Kit - 337 - |link_Raphael_kit| Puoi anche acquistarli separatamente dai link sottostanti. .. list-table:: :widths: 30 20 :header-rows: 1 * - INTRODUZIONE AI COMPONENTI - LINK PER L'ACQUISTO * - :ref:`cpn_gpio_extension_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| Schema elettrico -------------------- In questo esperimento, utilizziamo un buzzer attivo, un transistor PNP e una resistenza da 1k tra la base del transistor e il GPIO per proteggere il transistor. Quando il GPIO17 del Raspberry Pi è impostato a basso livello (0V) tramite programmazione, il transistor si saturerà e condurrà corrente, facendo suonare il buzzer. Tuttavia, quando il GPIO è impostato ad alto livello, il transistor si interromperà e il buzzer non emetterà suoni. .. image:: ../img/image332.png Procedure sperimentali -------------------------- **Passo 1:** Costruisci il circuito. (Il buzzer attivo ha un adesivo bianco sulla superficie e un retro nero.) .. image:: ../img/image104.png **Passo 2**: Vai alla cartella del codice. .. raw:: html .. code-block:: cd ~/raphael-kit/nodejs/ **Passo 3**: Esegui. .. raw:: html .. code-block:: sudo node active_buzzer.js Dopo l'esecuzione del codice, il buzzer suonerà a intervalli regolari. **Codice** .. 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(); }); **Spiegazione del codice** .. code-block:: js const Gpio = require('pigpio').Gpio; const active = new Gpio(17,{mode: Gpio.OUTPUT}); Importa il modulo ``pigpio`` e crea un oggetto ``active`` per controllare la porta IO GPIO17, impostata in modalità di uscita. .. code-block:: js setInterval(() => { active.digitalWrite(!active.digitalRead()); }, 500); Il buzzer attivo è simile a un LED per quanto riguarda l'uso e può essere controllato con ``digitalWrite()``, mentre ``digitalRead()`` è usato per leggere il livello del pin corrente. Qui facciamo cambiare lo stato operativo del buzzer attivo ogni 500 ms. .. code-block:: js process.on('SIGINT', function() { /* DO SOME STUFF HERE */ process.exit() }) Gestisce Ctrl+C; in questo caso, viene utilizzato per fermare il suono del buzzer quando il programma viene chiuso. `Process - NodeJS `_ Immagine del fenomeno ---------------------------- .. image:: ../img/image105.jpeg