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.

../_images/1.3.3_relay_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

LED

ACQUISTA

Transistor

ACQUISTA

Relè

ACQUISTA

Diodo

ACQUISTA

Schema Elettrico

../_images/1.3.3_relay_schematic.png

Procedure Sperimentali

Passo 1: Costruisci il circuito.

../_images/1.3.3_relay_circuit.png

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

  1. Importa OutputDevice da gpiozero per controllare i pin GPIO e sleep da time per 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
    
  2. Inizializza un oggetto OutputDevice per il relè collegato al pin GPIO 17. Il parametro initial_value=False imposta inizialmente il relè nello stato off (supponendo una configurazione a logica inversa).

    # Inizializza il relè collegato al pin GPIO 17, partendo dallo stato 'off'
    relay = OutputDevice(17, initial_value=False)
    
  3. All’interno del blocco try, un ciclo while True alterna 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
    
  4. 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