.. note::
Ciao, benvenuto nella SunFounder Raspberry Pi & Arduino & ESP32 Enthusiasts Community su Facebook! Approfondisci le tue conoscenze su Raspberry Pi, Arduino ed ESP32 insieme ad altri appassionati.
**Perché Unirsi?**
- **Supporto Esperto**: Risolvi problemi post-vendita e sfide tecniche con l'aiuto della nostra community e del nostro team.
- **Impara e Condividi**: Scambia suggerimenti e tutorial per migliorare le tue competenze.
- **Anteprime Esclusive**: Accedi in anteprima agli annunci dei nuovi prodotti.
- **Sconti Speciali**: Approfitta di sconti esclusivi sui nostri nuovi prodotti.
- **Promozioni Festive e Omaggi**: Partecipa a omaggi e promozioni speciali per le festività.
👉 Pronto a esplorare e creare con noi? Clicca su [|link_sf_facebook|] e unisciti subito!
Buzzer Attivo
====================
Introduzione
---------------
In questo progetto, impareremo come azionare un buzzer attivo per emettere
un suono utilizzando un transistor PNP.
Componenti
-------------
.. image:: ../img/list_1.2.1.png
Schema Elettrico
-------------------
In questo esperimento, sono utilizzati 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
su livello basso (0V) tramite programmazione, il transistor entrerà in
conduzione grazie alla saturazione di corrente e il buzzer emetterà un
suono. Quando invece viene applicato un livello alto al GPIO, il transistor
si disattiva e il buzzer smette di emettere suoni.
.. image:: ../img/image332.png
Procedura Sperimentale
--------------------------
**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 ~/davinci-kit-for-raspberry-pi/nodejs/
**Passo 3**: Esegui.
.. raw:: html
.. code-block::
sudo node active_buzzer.js
Dopo l’esecuzione del codice, il buzzer emette un suono.
**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 istanzia un oggetto active per controllare la porta IO Gpio17, impostandola in modalità di output.
.. code-block:: js
setInterval(() => {
active.digitalWrite(!active.digitalRead());
}, 500);
Il buzzer attivo funziona in modo simile al LED e può essere controllato con ``digitalWrite()``, mentre ``digitalRead()`` viene utilizzato per leggere il livello corrente del pin.
In questo esempio, facciamo cambiare lo stato del buzzer attivo ogni 500ms.
.. code-block:: js
process.on('SIGINT', function() {
/* DO SOME STUFF HERE */
process.exit()
})
Gestisce Ctrl+C, qui utilizzato per fermare il suono del buzzer all'uscita dal programma.
`Process - NodeJS `_
Immagine del Fenomeno
--------------------------
.. image:: ../img/image105.jpeg