Nota

Ciao, benvenuto nella Community di SunFounder Raspberry Pi & Arduino & ESP32 Enthusiasts su Facebook! Approfondisci il mondo di Raspberry Pi, Arduino ed ESP32 insieme ad altri appassionati.

Perché unirti a noi?

  • Supporto tecnico esperto: Risolvi problemi post-vendita e sfide tecniche con l’aiuto della nostra comunità e del nostro team.

  • Impara e condividi: Scambia consigli e tutorial per migliorare le tue competenze.

  • Anteprime esclusive: Ottieni accesso anticipato agli annunci di nuovi prodotti e alle anteprime.

  • Sconti speciali: Approfitta di sconti esclusivi sui nostri prodotti più recenti.

  • Promozioni festive e giveaway: Partecipa a giveaway e promozioni durante le festività.

👉 Sei pronto a esplorare e creare con noi? Clicca [Qui] e unisciti oggi stesso!

1.2.1 Buzzer Attivo

Introduzione

In questo progetto, impareremo a far suonare un buzzer attivo con l’aiuto di un transistor NPN.

Componenti Necessari

Per questo progetto, avremo bisogno dei seguenti componenti.

../_images/1.2.1_active_buzzer_list.png

È decisamente conveniente acquistare un kit completo, ecco il link:

Nome

COMPONENTI NEL KIT

LINK

Raphael Kit

337

Raphael Kit

Puoi anche acquistarli separatamente dai link sottostanti.

INTRODUZIONE AI COMPONENTI

LINK D’ACQUISTO

Scheda di estensione GPIO

ACQUISTA

Breadboard

ACQUISTA

Cavi Jumper

ACQUISTA

Resistore

ACQUISTA

Cicalino

-

Transistor

ACQUISTA

Schema Elettrico

In questo esperimento vengono utilizzati un buzzer attivo, un transistor NPN e una resistenza da 1 kΩ. La resistenza è collegata tra il pin GPIO e la base del transistor per limitare la corrente di base e proteggere il transistor. Quando il GPIO17 del Raspberry Pi fornisce un livello alto (3,3 V), il transistor va in saturazione, permettendo alla corrente di fluire attraverso il buzzer, che emette un suono. Quando il GPIO17 fornisce un livello basso (0 V), il transistor è spento e il buzzer rimane silenzioso. ============ ======== ======== === T-Board Name physical wiringPi BCM GPIO17 Pin 11 0 17 ============ ======== ======== ===

../_images/1.2.1_active_buzzer_schematic.png

Procedure Sperimentali

Passo 1: Costruisci il circuito. (Il buzzer attivo ha un adesivo bianco sulla superficie e un retro nero.)

../_images/1.2.1_ActiveBuzzer_circuit.png

Passo 2: Apri il file del codice.

cd ~/raphael-kit/python-pi5

Passo 3: Esegui.

sudo python3 1.2.1_ActiveBuzzer_zero.py

Il codice viene eseguito e il buzzer suona.

Avvertimento

Se viene visualizzato l’errore RuntimeError: Cannot determine SOC peripheral base address, fare riferimento a If gpiozero doesn’t work..

Code

Nota

Puoi Modificare/Resettare/Copiare/Eseguire/Fermare il codice qui sotto. Ma prima, devi andare nella directory del codice come raphael-kit/python-pi5. Dopo aver modificato il codice, puoi eseguirlo direttamente per vedere l’effetto.

#!/usr/bin/env python3
from gpiozero import Buzzer
from time import sleep

# Inizializza un oggetto Buzzer sul pin GPIO 17
buzzer = Buzzer(17)

try:
    while True:
        # Accendi il buzzer
        print('Buzzer On')
        buzzer.on()
        sleep(0.1)  # Mantieni il buzzer acceso per 0.1 secondi

        # Spegni il buzzer
        print('Buzzer Off')
        buzzer.off()
        sleep(0.1)  # Mantieni il buzzer spento per 0.1 secondi

except KeyboardInterrupt:
    # Gestisce l'interruzione da tastiera (Ctrl+C) per terminare correttamente lo script
    pass

Spiegazione del Codice

  1. Queste righe importano la classe Buzzer dalla libreria gpiozero e la funzione sleep dal modulo time.

    #!/usr/bin/env python3
    from gpiozero import Buzzer
    from time import sleep
    
  2. Questa riga crea un oggetto Buzzer collegato al pin GPIO 17 del Raspberry Pi.

    # Inizializza un oggetto Buzzer sul pin GPIO 17
    buzzer = Buzzer(17)
    
  3. In un ciclo infinito (while True), il buzzer si accende e si spegne ogni 0.1 secondi. Le istruzioni print forniscono un’uscita sulla console per ogni azione.

    try:
        while True:
            # Accendi il buzzer
            print('Buzzer On')
            buzzer.on()
            sleep(0.1)  # Mantieni il buzzer acceso per 0.1 secondi
    
            # Spegni il buzzer
            print('Buzzer Off')
            buzzer.off()
            sleep(0.1)  # Mantieni il buzzer spento per 0.1 secondi
    
  4. Questa parte garantisce che il programma possa essere terminato in modo sicuro utilizzando un’interruzione da tastiera (Ctrl+C) senza generare errori.

    except KeyboardInterrupt:
    # Gestisce l'interruzione da tastiera (Ctrl+C) per terminare correttamente lo script
    pass