Nota
Ciao e benvenuto nella Community di Appassionati di SunFounder per Raspberry Pi, Arduino ed ESP32 su Facebook! Esplora a fondo il mondo di Raspberry Pi, Arduino ed ESP32 insieme a tanti altri appassionati.
Perché Unirsi?
Supporto da Esperti: Risolvi problemi post-vendita e 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 agli annunci dei nuovi prodotti e a contenuti inediti.
Sconti Speciali: Approfitta di sconti esclusivi sui nostri prodotti più recenti.
Promozioni Festive e Giveaway: Partecipa a concorsi e promozioni festive.
👉 Pronto a esplorare e creare con noi? Clicca su [Qui] e unisciti oggi stesso!
1.3.4 Relè
Introduzione
In questo progetto impareremo a utilizzare un relè. È uno dei componenti più comuni nei sistemi di controllo automatico. Quando tensione, corrente, temperatura, pressione, ecc., raggiungono, superano o scendono al di sotto del valore predefinito, il relè connetterà o interromperà il circuito per controllare e proteggere l’apparecchiatura.
Componenti Necessari
In questo progetto, abbiamo bisogno dei seguenti componenti.
Schema Elettrico
Procedure Sperimentali
Passo 1: Costruisci il circuito.
Passo 2: Apri il file del codice.
cd ~/davinci-kit-for-raspberry-pi/python-pi5
Passo 3: Esegui.
sudo python3 1.3.4_Relay.py
Quando il codice è in esecuzione, il LED si accende. Inoltre, puoi sentire un ticchettio causato dall’apertura del contatto normalmente chiuso e dalla chiusura del contatto normalmente aperto.
Avvertimento
Se compare l’errore RuntimeError: Cannot determine SOC peripheral base address, consulta Se gpiozero non funziona.
Codice
Nota
Puoi Modificare/Reimpostare/Copiare/Eseguire/Interrompere il codice qui sotto. Prima di farlo, però, vai al percorso del codice sorgente, come davinci-kit-for-raspberry-pi/python-pi5. Dopo aver modificato il codice, potrai eseguirlo direttamente per vedere il risultato.
#!/usr/bin/env python3
from gpiozero import OutputDevice # Importa la classe per il controllo dei pin GPIO
from time import sleep # Importa la funzione sleep per i ritardi
# Inizializza il relè collegato al pin GPIO 17
relay = OutputDevice(17)
try:
# Ciclo per commutare continuamente lo stato del relè ogni secondo
while True:
print('Relay open...') # Indica che il relè è attivo
relay.on() # Accende il relè (assumendo configurazione attiva a bassa)
sleep(1) # Mantiene il relè nello stato acceso per 1 secondo
print('...Relay close') # Indica che il relè è disattivo
relay.off() # Spegne il relè
sleep(1) # Mantiene il relè nello stato spento per 1 secondo
except KeyboardInterrupt:
# Gestisce l'interruzione da tastiera (Ctrl+C) per uscire dal ciclo
relay.off() # Garantisce che il relè sia spento prima di uscire
pass
Spiegazione del Codice
Importa
OutputDevicedagpiozeroper il controllo dei pin GPIO esleepdatimeper aggiungere ritardi.#!/usr/bin/env python3 from gpiozero import OutputDevice # Importa la classe per il controllo dei pin GPIO from time import sleep # Importa la funzione sleep per i ritardi
Inizializza un oggetto
OutputDeviceper il relè collegato al pin GPIO 17.# Inizializza il relè collegato al pin GPIO 17 relay = OutputDevice(17)
All’interno del blocco
try, un ciclowhile Truecommuta continuamente lo stato del relè. Il relè viene acceso e spento con un ritardo di 1 secondo tra ogni stato, accompagnato da messaggi di stampa nella console.try: # Ciclo per commutare continuamente lo stato del relè ogni secondo while True: print('Relay open...') # Indica che il relè è attivo relay.on() # Accende il relè (assumendo configurazione attiva a bassa) sleep(1) # Mantiene il relè nello stato acceso per 1 secondo print('...Relay close') # Indica che il relè è disattivo relay.off() # Spegne il relè sleep(1) # Mantiene il relè nello stato spento per 1 secondo
Rileva un’interruzione da tastiera (come Ctrl+C) per permettere una terminazione sicura dello script. Il relè viene spento prima di uscire dallo script.
except KeyboardInterrupt: # Gestisce l'interruzione da tastiera (Ctrl+C) per uscire dal ciclo relay.off() # Garantisce che il relè sia spento prima di uscire pass