.. note::
Ciao, benvenuto nella Community di SunFounder Raspberry Pi, Arduino e ESP32 Enthusiasts su Facebook! Approfondisci Raspberry Pi, Arduino ed ESP32 con altri appassionati.
**Perché unirti a noi?**
- **Supporto Esperto**: Risolvi problemi post-vendita e sfide tecniche con l'aiuto della nostra community e del nostro team.
- **Impara e Condividi**: Scambia suggerimenti 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 e Giveaway Festivi**: Partecipa a omaggi e promozioni in occasione delle festività.
👉 Pronto a esplorare e creare con noi? Clicca [|link_sf_facebook|] e unisciti oggi stesso!
1.3.4 Relè
===============
Introduzione
--------------
In questa lezione, impareremo a usare un relè, uno dei componenti più
comuni nei sistemi di controllo automatico. Quando la tensione, la corrente,
la temperatura o la pressione raggiungono, superano o scendono sotto un valore
prestabilito, il relè può connettere o interrompere il circuito, permettendo
di controllare e proteggere l'apparecchiatura.
Componenti
--------------
.. image:: img/list_1.3.4.png
Principio
---------
**Diodo**
Il diodo è un componente elettronico a due terminali con un flusso di corrente
unidirezionale. Offre bassa resistenza nella direzione del flusso di corrente
e alta resistenza nella direzione opposta. I diodi vengono principalmente
utilizzati per prevenire danni ai componenti, in particolare causati dalla forza
elettromotrice in circuiti polarizzati.
.. image:: img/image344.png
I terminali di un diodo sono polarizzati, con l’estremità positiva chiamata
anodo e quella negativa chiamata catodo. Il catodo è solitamente argentato o
dotato di una banda colorata. Il controllo della direzione del flusso di
corrente è una delle caratteristiche principali dei diodi: la corrente fluisce
dall’anodo al catodo. Il comportamento di un diodo è simile a una valvola di
non ritorno. Una delle caratteristiche più importanti è la tensione di corrente
non lineare. Se la tensione maggiore è collegata all’anodo, la corrente fluisce
dall’anodo al catodo in "polarizzazione diretta"; se invece è collegata al
catodo, il diodo non conduce e si ha una "polarizzazione inversa".
**Relè**
Come sappiamo, il relè è un dispositivo che fornisce connessione tra due o più
punti o dispositivi in risposta a un segnale di ingresso. In altre parole, il
relè offre isolamento tra il controller e il dispositivo che può funzionare sia
in corrente alternata (AC) sia in corrente continua (DC). Riceve segnali da un
microcontrollore che funziona in DC e quindi necessita di un relè per creare
una connessione. Il relè è estremamente utile quando è necessario controllare
grandi quantità di corrente o tensione con un piccolo segnale elettrico.
Ogni relè è composto da 5 parti:
**Elettromagnete** - Consiste in un nucleo di ferro avvolto da una bobina.
Quando passa corrente, diventa magnetico, quindi è chiamato elettromagnete.
**Armatura** - La striscia magnetica mobile è nota come armatura. Quando
la corrente scorre, la bobina si energizza creando un campo magnetico che
attiva o disattiva i punti "normalmente aperti" (NO) o "normalmente chiusi"
(NC). L'armatura può essere azionata sia con corrente continua (DC) sia
alternata (AC).
**Molla** - Quando non scorre corrente attraverso la bobina dell'elettromagnete,
la molla tira l'armatura lontano, impedendo la chiusura del circuito.
Set di **contatti elettrici** - Ci sono due punti di contatto:
- Normalmente aperto - collegato quando il relè è attivato, disconnesso quando è inattivo.
- Normalmente chiuso - scollegato quando il relè è attivato, collegato quando è inattivo.
**Cornice stampata** - I relè sono rivestiti in plastica per protezione.
**Funzionamento del Relè**
Il principio di funzionamento di un relè è semplice. Quando il relè viene
alimentato, la corrente inizia a scorrere attraverso la bobina di controllo;
di conseguenza, l’elettromagnete si energizza. L'armatura viene così attratta
verso la bobina, portando il contatto mobile a unirsi ai contatti "normalmente
aperti". In questo modo, il circuito con il carico viene energizzato. Per
interrompere il circuito, si verifica il caso opposto: il contatto mobile
viene spostato verso i contatti "normalmente chiusi" sotto la forza della molla.
In questo modo, l'attivazione e la disattivazione del relè controllano lo stato
di un circuito di carico.
.. image:: img/image142.jpeg
Schema Elettrico
---------------------
.. image:: img/image345.png
Procedure Sperimentali
--------------------------
**Passo 1:** Costruisci il circuito.
.. image:: img/image144.png
:width: 800
Per Utenti del Linguaggio C
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
**Passo 2**: Apri il file del codice.
.. raw:: html
.. code-block::
cd ~/davinci-kit-for-raspberry-pi/c/1.3.4
**Passo 3:** Compila il codice.
.. raw:: html
.. code-block::
gcc 1.3.4_Relay.c -lwiringPi
**Passo 4:** Esegui il file eseguibile.
.. raw:: html
.. code-block::
sudo ./a.out
Dopo l'esecuzione del codice, il LED si accenderà. Inoltre, potrai
sentire un ticchettio causato dall'apertura del contatto normalmente chiuso e
dalla chiusura del contatto normalmente aperto.
.. note::
Se, dopo l'esecuzione, il programma non funziona o appare il messaggio di errore: \"wiringPi.h: No such file or directory\", fai riferimento a :ref:`faq_c_nowork`.
**Codice**
.. code-block:: c
#include
#include
#define RelayPin 0
int main(void){
if(wiringPiSetup() == -1){ //se l'inizializzazione di wiring fallisce, stampa un messaggio sullo schermo
printf("setup wiringPi failed !");
return 1;
}
pinMode(RelayPin, OUTPUT); //imposta GPIO17(GPIO0) come output
while(1){
// Tic
printf("Relay Open......\n");
delay(100);
digitalWrite(RelayPin, LOW);
delay(1000);
// Tac
printf("......Relay Close\n");
delay(100);
digitalWrite(RelayPin, HIGH);
delay(1000);
}
return 0;
}
**Spiegazione del Codice**
.. code-block:: c
digitalWrite(RelayPin, LOW);
Imposta la porta I/O a livello basso (0V), quindi il transistor non è
alimentato e la bobina del relè è disattivata. Non si genera forza
elettromagnetica, per cui il relè si apre e il LED rimane spento.
.. code-block:: c
digitalWrite(RelayPin, HIGH);
Imposta la porta I/O a livello alto (5V) per alimentare il transistor.
La bobina del relè riceve corrente, genera una forza elettromagnetica e
il relè si chiude, accendendo il LED.
Per Utenti del Linguaggio Python
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
**Passo 2:** Apri il file del codice.
.. raw:: html
.. code-block::
cd ~/davinci-kit-for-raspberry-pi/python
**Passo 3:** Esegui il codice.
.. raw:: html
.. code-block::
sudo python3 1.3.4_Relay.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.
**Codice**
.. note::
Puoi **Modificare/Reimpostare/Copiare/Eseguire/Interrompere** il codice seguente. Prima di farlo, però, devi accedere al percorso del codice sorgente come ``davinci-kit-for-raspberry-pi/python``.
.. raw:: html
.. code-block:: python
import RPi.GPIO as GPIO
import time
# Imposta GPIO17 come pin di controllo
relayPin = 17
# Funzione di setup per configurazioni iniziali
def setup():
# Imposta la numerazione GPIO in modalità BCM
GPIO.setmode(GPIO.BCM)
# Configura relayPin come output,
# con livello iniziale Alto (3.3V)
GPIO.setup(relayPin, GPIO.OUT, initial=GPIO.HIGH)
# Funzione principale per il processo di controllo
def main():
while True:
print ('Relay open...')
# Tick
GPIO.output(relayPin, GPIO.LOW)
time.sleep(1)
print ('...Relay close')
# Tock
GPIO.output(relayPin, GPIO.HIGH)
time.sleep(1)
# Funzione di pulizia per liberare le risorse al termine
def destroy():
# Spegne il LED
GPIO.output(relayPin, GPIO.HIGH)
# Rilascia le risorse
GPIO.cleanup()
# Se il codice viene eseguito direttamente:
if __name__ == '__main__':
setup()
try:
main()
# Quando viene premuto 'Ctrl+C', il programma
# eseguirà la funzione destroy()
except KeyboardInterrupt:
destroy()
**Spiegazione del Codice**
.. code-block:: python
GPIO.output(relayPin, GPIO.LOW)
Imposta il pin del transistor a livello basso per aprire il relè, lasciando il LED spento.
.. code-block:: python
time.sleep(1)
Attende per 1 secondo.
.. code-block:: python
GPIO.output(relayPin, GPIO.HIGH)
Imposta il pin del transistor a livello alto per attivare il relè e
accendere il LED.
Immagine del Fenomeno
--------------------------
.. image:: img/image145.jpeg