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.3.3 Relè
Introduzione
In questo progetto, impareremo a usare un relè. È uno dei componenti più utilizzati nei sistemi di controllo automatico. Quando la tensione, la corrente, la temperatura, la pressione, ecc., raggiungono, superano o sono inferiori al valore prestabilito, il relè collegherà o interromperà il circuito, per controllare e proteggere l’attrezzatura.
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
Procedure Sperimentali
Passo 1: Costruisci il circuito.
Passo 2: Apri il file del codice.
cd ~/raphael-kit/python-pi5
Passo 3: Esegui.
sudo python3 1.3.3_Relay_zero.py
Durante l’esecuzione del codice, il LED si accenderà. Inoltre, sentirai un ticchettio causato dall’apertura del contatto normalmente chiuso e dalla chiusura del contatto normalmente aperto.
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 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, partendo dallo stato 'off'
relay = OutputDevice(17, initial_value=False)
try:
# Ciclo continuo per attivare e disattivare lo stato del relè ogni secondo
while True:
print('Relay open...') # Informa che il relè è stato attivato
relay.on() # Accende il relè (supponendo una configurazione a logica inversa)
sleep(1) # Mantiene il relè nello stato acceso per 1 secondo
print('...Relay close') # Informa che il relè è stato disattivato
relay.off() # Spegne il relè
sleep(1) # Mantiene il relè nello stato spento per 1 secondo
except KeyboardInterrupt:
# Gestisce un'interruzione da tastiera (Ctrl+C) per uscire dal ciclo
relay.off() # Assicura che il relè sia spento prima di uscire
pass
Spiegazione del Codice
Importa
OutputDevicedagpiozeroper controllare i 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. Il parametroinitial_value=Falseimposta inizialmente il relè nello statooff(supponendo una configurazione a logica inversa).# Inizializza il relè collegato al pin GPIO 17, partendo dallo stato 'off' relay = OutputDevice(17, initial_value=False)
All’interno del blocco
try, un ciclowhile Truealterna continuamente lo stato del relè. Il relè viene acceso e spento con un intervallo di 1 secondo tra ciascuno stato, accompagnato da dichiarazioni di stampa sulla console.try: # Ciclo continuo per attivare e disattivare lo stato del relè ogni secondo while True: print('Relay open...') # Informa che il relè è stato attivato relay.on() # Accende il relè (supponendo una configurazione a logica inversa) sleep(1) # Mantiene il relè nello stato acceso per 1 secondo print('...Relay close') # Informa che il relè è stato disattivato relay.off() # Spegne il relè sleep(1) # Mantiene il relè nello stato spento per 1 secondo
Gestisce un’interruzione da tastiera (come Ctrl+C) per consentire la chiusura sicura dello script. Il relè viene spento prima di uscire dallo script.
except KeyboardInterrupt: # Gestisce un'interruzione da tastiera (Ctrl+C) per uscire dal ciclo relay.off() # Assicura che il relè sia spento prima di uscire pass