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 PNP.

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, 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 è alimentato con un livello alto (3,3 V) tramite programmazione, il transistor condurrà a causa della saturazione di corrente e il buzzer emetterà suoni. Ma quando al pin IO del Raspberry Pi viene fornito un livello basso, il transistor verrà interrotto e il buzzer non emetterà suoni.

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