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.
È decisamente conveniente acquistare un kit completo, ecco il link:
Nome |
COMPONENTI NEL KIT |
LINK |
|---|---|---|
Raphael Kit |
337 |
Puoi anche acquistarli separatamente dai link sottostanti.
INTRODUZIONE AI COMPONENTI |
LINK D’ACQUISTO |
|---|---|
- |
|
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 |
Procedure Sperimentali
Passo 1: Costruisci il circuito. (Il buzzer attivo ha un adesivo bianco sulla superficie e un retro nero.)
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
Queste righe importano la classe
Buzzerdalla libreriagpiozeroe la funzionesleepdal modulotime.#!/usr/bin/env python3 from gpiozero import Buzzer from time import sleep
Questa riga crea un oggetto
Buzzercollegato al pin GPIO 17 del Raspberry Pi.# Inizializza un oggetto Buzzer sul pin GPIO 17 buzzer = Buzzer(17)
In un ciclo infinito (
while True), il buzzer si accende e si spegne ogni 0.1 secondi. Le istruzioniprintforniscono 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
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