Componenti · 7 min di lettura

Cos'è un modulo relè? Comandare lampade, prese e pompe con Arduino

Cos'è un modulo relè e come funziona? Collegamento ad Arduino, contatti NO, NC e COM, relè attivi a livello basso, JD-VCC e optoisolatore, uso con ESP32 e Pico e regole di sicurezza con la tensione di rete.

Un relè è un interruttore comandato elettricamente che, con un piccolo segnale, accende e spegne un carico molto più grande. Un pin di Arduino fornisce solo 5 V e qualche decina di milliampere: basta per un LED, ma non per una lampada, una ventola, una pompa dell'acqua o un apparecchio collegato alla rete a 230 V. Il modulo relè colma questa differenza: Arduino invia un piccolo segnale e il relè chiude i suoi contatti, così la corrente elevata passa attraverso il carico. È il componente chiave dei progetti di domotica, irrigazione automatica e timer.

Modulo relè 5V a un canale
Modulo relè 5 V a un canale: il blocco blu è il relè, i morsetti a vite accanto servono per il lato del carico.

Come funziona un relè?

Dentro il relè ci sono una bobina (un elettromagnete), un braccio metallico mobile e dei contatti. Quando la corrente passa nella bobina, il campo magnetico attira il braccio e chiude i contatti; il "clic" che senti è proprio questo movimento. Quando la corrente si interrompe, una molla riporta indietro il braccio e i contatti si aprono.

Il punto più importante è che tra il lato della bobina (circuito di comando) e il lato dei contatti (circuito del carico) non c'è alcun collegamento elettrico. Sono uniti solo magneticamente. In questo modo il tuo circuito Arduino a 5 V resta isolato dalla rete elettrica.

Cosa c'è su un modulo relè?

Non puoi collegare un relè nudo direttamente a un pin di Arduino: la bobina assorbe più corrente di quella che il pin può dare e, quando si spegne, genera un picco di tensione che può distruggere il pin. La scheda del modulo include già i componenti che risolvono questi problemi:

  • Transistor di pilotaggio: commuta i 70–80 mA richiesti dalla bobina usando il piccolo segnale del pin.
  • Diodo di ricircolo (flyback): assorbe la tensione inversa che si crea quando la bobina si spegne e protegge transistor e Arduino.
  • Optoisolatore (su alcuni modelli): trasmette il segnale di comando tramite la luce e separa completamente Arduino dal circuito del relè.
  • LED di stato: si accende quando il relè è eccitato; utilissimo per verificare che il codice funzioni.
  • Morsetti a vite: permettono di collegare i fili del carico in modo sicuro senza saldare.

Cosa significano NO, NC e COM?

Sul lato del carico il relè ha tre contatti. Quelli che usi decidono se il tuo apparecchio è acceso o spento quando il relè non è eccitato:

ContattoSignificatoQuando è collegato a COM?
COMComune; qui arriva uno dei fili del caricoSempre collegato a NO oppure a NC
NONormalmente aperto (Normally Open)Solo quando il relè è eccitato
NCNormalmente chiuso (Normally Closed)Quando il relè non è eccitato
La maggior parte dei progetti usa COM e NO: se Arduino è spento, si riavvia o il codice si blocca, anche l'apparecchio resta spento. Scegli NC per un apparecchio che deve funzionare sempre e venire interrotto solo ogni tanto.

Caratteristiche tecniche (modulo 5 V comune)

CaratteristicaValore
Tensione della bobina5 V DC
Corrente della bobinaCirca 70–80 mA (per canale)
Portata dei contatti10 A 250 V AC / 10 A 30 V DC (stampata sul relè)
AttivazioneAttivo basso o attivo alto (dipende dal modulo)
Pin di comandoVCC, GND, IN (IN1, IN2... sui moduli multicanale)
Contatti del caricoCOM, NO, NC

Collegare il modulo relè ad Arduino

Il lato di comando richiede tre fili: VCC del modulo al 5V, GND a GND e IN al pin digitale 7. Sul lato del carico interrompi uno dei fili dell'apparecchio da comandare e colleghi i due capi ai morsetti COM e NO. Il relè prende semplicemente il posto di un normale interruttore a muro.

Arduino (C++)
1const int RELAY_PIN = 7;
2
3void setup() {
4  pinMode(RELAY_PIN, OUTPUT);
5  digitalWrite(RELAY_PIN, HIGH);  // aktif LOW modülde kapalı başla / start OFF on active-LOW modules
6}
7
8void loop() {
9  digitalWrite(RELAY_PIN, LOW);   // röle çeker, cihaz açılır / relay on
10  delay(3000);
11  digitalWrite(RELAY_PIN, HIGH);  // röle bırakır, cihaz kapanır / relay off
12  delay(3000);
13}
Molti moduli relè sono attivi a livello basso (active LOW): il relè si eccita quando il pin IN è LOW e si diseccita con HIGH. Il LED di stato ti dice di che tipo è il tuo. Su una scheda attiva alta, scambia HIGH e LOW nel codice qui sopra. Spegnere prima il relè in setup() evita che l'apparecchio si accenda per un istante all'avvio di Arduino.

Comandare il relè con un pulsante: interruttore on-off

Nei progetti reali di solito comandi il relè con un pulsante, un sensore o un orario. Il codice qui sotto cambia lo stato del relè a ogni pressione, così puoi comandare una lampada a 230 V con un piccolo pulsante. Per il collegamento del pulsante e il rimbalzo, vedi Come collegare un pulsante ad Arduino.

Arduino (C++)
1const int RELAY_PIN = 7;
2const int BUTTON_PIN = 2;      // butonun diğer ucu GND'de / other leg to GND
3
4bool relayOn = false;
5bool lastButton = HIGH;
6
7void setup() {
8  pinMode(RELAY_PIN, OUTPUT);
9  pinMode(BUTTON_PIN, INPUT_PULLUP);
10  digitalWrite(RELAY_PIN, HIGH); // başta kapalı / start OFF (active LOW)
11}
12
13void loop() {
14  bool button = digitalRead(BUTTON_PIN);
15  if (lastButton == HIGH && button == LOW) {   // yeni basış / new press
16    relayOn = !relayOn;
17    digitalWrite(RELAY_PIN, relayOn ? LOW : HIGH);
18    delay(50);                                  // sıçrama önleme / debounce
19  }
20  lastButton = button;
21}

JD-VCC e optoisolatore: isolamento completo

Sui moduli con optoisolatore, accanto ai pin VCC, GND e IN c'è un pin chiamato JD-VCC con un ponticello. Con il ponticello inserito, anche la bobina del relè è alimentata dai 5 V di Arduino. Se togli il ponticello e colleghi un alimentatore 5 V separato a JD-VCC e alla sua massa, la corrente della bobina arriva tutta da quell'alimentatore e il lato Arduino accende solo il LED dell'optoisolatore. Con carichi rumorosi come motori e pompe, questo riduce molto blocchi e riavvii di Arduino.

Relè con ESP32 e Raspberry Pi Pico

I pin di ESP32 e Pico forniscono 3,3 V. La maggior parte dei moduli relè a 5 V si attiva anche con questo segnale, ma su un modulo attivo basso un HIGH a 3,3 V non sempre diseccita del tutto il relè; se il tuo relè resta sempre eccitato, il motivo è questo. La soluzione è prendere un modulo con attivazione a 3,3 V, usare una scheda con optoisolatore e separazione JD-VCC oppure aggiungere un piccolo transistor NPN. Il modulo va comunque alimentato a 5 V. Comandare un relè con il Pico in MicroPython è semplice così:

MicroPython
1from machine import Pin
2import time
3
4relay = Pin(15, Pin.OUT, value=1)   # GP15, aktif LOW: 1 = kapalı / active LOW: 1 = off
5
6while True:
7    relay.value(0)    # röle çeker / relay on
8    time.sleep(3)
9    relay.value(1)    # röle bırakır / relay off
10    time.sleep(3)

Regole di sicurezza con la tensione di rete

La tensione di rete può uccidere. Fai sempre i collegamenti con la spina staccata, non lasciare capi di filo scoperti, metti il circuito in una scatola chiusa e isolante e, se non sei sicuro, esercitati con una striscia LED o una ventola a 12 V invece che con i 230 V. I bambini non devono mai lavorare sul lato rete senza un adulto.
  • Rispetta la corrente massima: non superare il valore stampato sul relè (per esempio 10A 250VAC). Con apparecchi potenti come stufette, condizionatori e bollitori resta ben al di sotto di questo limite.
  • Interrompi la fase: quando comandi una lampada o una presa, fai passare nel relè il filo di fase e non il neutro, così l'apparecchio spento non resta in tensione.
  • Usa cavi adeguati: i cavetti da breadboard non sono fatti per la rete; sul lato del carico usa cavo isolato di sezione adeguata.
  • Isola il retro della scheda: il lato saldature del modulo porta la tensione di rete; non lasciarlo a contatto con superfici metalliche o con la mano nuda.
  • Aggiungi un fusibile: un fusibile adeguato sulla linea del carico evita un incendio in caso di cortocircuito.

Relè, transistor o relè a stato solido?

CaratteristicaRelè meccanicoTransistor / MOSFETRelè a stato solido (SSR)
CommutaAC e DCSolo DCSoprattutto AC
VelocitàLenta (millisecondi)Molto veloce, permette il PWMVeloce
RumoreFa clicSilenziosoSilenzioso
DurataI contatti si consumano col tempoMolto lungaMolto lunga
Ideale perLampade, prese, pompeVelocità dei motori, strisce LEDCarichi AC commutati spesso

In breve: se devi accendere e spegnere un apparecchio ogni tanto, il relè meccanico è la soluzione più economica e semplice. Per regolare la velocità di un motore o la luminosità di una striscia LED scegli un transistor o un MOSFET, e per carichi AC commutati molte volte al secondo un relè a stato solido. Per scegliere il transistor giusto, dai un'occhiata allo strumento Transistor.

Idee di progetti con il relè

  • Irrigazione intelligente: avvia la pompa quando il sensore di umidità del terreno segnala che è asciutto.
  • Luce che si accende col movimento: accendi una lampada quando un sensore PIR rileva qualcuno e spegnila dopo un po'.
  • Ventola comandata dall'umidità: avvia l'aspiratore del bagno quando l'umidità sale; per misurarla vedi Sensore di temperatura e umidità DHT11.
  • Presa con telecomando: comanda una presa con un ricevitore IR e il telecomando della TV.
  • Timer: accendi e spegni la luce dell'acquario ogni giorno alla stessa ora.
  • Controllo dal telefono: gestisci una lampada da una pagina web sfruttando il Wi-Fi dell'ESP32.

Errori comuni e come risolverli

  • Il relè funziona al contrario: il modulo è attivo basso; scambia HIGH e LOW nel codice.
  • Il relè continua a scattare: l'alimentazione potrebbe non bastare; usa un alimentatore esterno da 5 V, soprattutto con più relè.
  • Arduino si riavvia quando parte il motore: disturbi e calo di tensione; alimenta la bobina a parte con JD-VCC e metti un condensatore in parallelo al motore.
  • Il LED si accende ma il carico non funziona: i fili del carico potrebbero essere su NC o una vite del morsetto potrebbe essere allentata.
  • Con l'ESP32 il relè non si diseccita mai: l'HIGH a 3,3 V non riesce a spegnere un modulo attivo basso; usa un modulo compatibile con 3,3 V o un transistor.
  • Collegare un relè nudo direttamente a un pin: la corrente della bobina e la tensione inversa distruggono il pin; usa sempre un modulo, oppure un transistor con un diodo.

Quando abbini un relè a un sensore inizi a creare automazioni davvero utili. Per capire a cosa serve ogni sensore, dai un'occhiata alla Guida ai sensori per Arduino; nell'app BlueGrays trovi progetti con relè per lampade, irrigazione e illuminazione, passo passo con gli schemi.

Domande frequenti

Perché il mio modulo relè continua a scattare?

La causa più comune è un'alimentazione insufficiente: quando il relè si eccita la tensione cala, Arduino si riavvia e il relè si diseccita. Se usi più relè o alimenti Arduino via USB, usa un alimentatore esterno da 5 V. Controlla anche che il codice non contenga un ciclo che accende e spegne continuamente il relè.

Cosa significa relè attivo basso?

È un modulo relè che si eccita quando il pin IN è LOW (0 V) e si diseccita con HIGH. La maggior parte dei moduli economici funziona così. Nel codice scrivi digitalWrite(pin, LOW) per accenderlo e HIGH per spegnerlo; impostarlo prima su HIGH in setup() perché parta spento è una buona abitudine.

Si può comandare un motore in corrente continua con un relè?

Per accenderlo e spegnerlo sì, ma non potrai regolarne la velocità né invertire facilmente il senso di rotazione. Per la velocità si usa un MOSFET o un driver motore PWM, per il senso di rotazione un ponte H come l'L298N.

A cosa serve il ponticello JD-VCC?

Sui moduli con optoisolatore separa l'alimentazione della bobina del relè (JD-VCC) da quella di comando (VCC). Se togli il ponticello e dai a JD-VCC i suoi 5 V, Arduino è completamente isolato dal circuito del relè e i disturbi di carichi come i motori non lo raggiungono.

Meglio un relè a 5 V o a 12 V?

La tensione della bobina deve corrispondere a quella con cui alimenti il modulo. Per i progetti Arduino il modulo con bobina a 5 V è il più pratico, perché bastano i 5 V di Arduino o un alimentatore USB. Un relè con bobina a 12 V richiede 12 V; non ha nulla a che vedere con la tensione sul lato del carico.

Quanti relè può comandare un Arduino?

Ogni relè richiede un pin digitale e un Uno ha fino a 20 pin utilizzabili. Il vero limite è la corrente: ogni bobina assorbe circa 70–80 mA, quindi con più di 2 relè alimenta il modulo con un alimentatore esterno da 5 V invece che da Arduino. Per più canali esistono anche moduli a 8 e 16 canali.

Vedi tutti i progetti
Lampadina 220V con pulsante (Push)
#19Avanzato
Premium

Lampadina 220V con pulsante (Push)

Progetto che controlla una lampadina a 220 V con un pulsante utilizzando un modulo relè. Insegna le basi della commutazione ad alta tensione con i relè.

4.4(30)
38
Lampadina bruciante 220V con pulsante (On-Off)
#20Avanzato
Premium

Lampadina bruciante 220V con pulsante (On-Off)

Un progetto che accende e spegne una lampadina a 220 V (toggle) a ogni pressione di un pulsante con il modulo relè. Insegna la logica di commutazione permanente con relè e variabile di stato.

4.5(33)
44
Lampadina a incandescenza 220V con telecomando
#21Avanzato
Premium

Lampadina a incandescenza 220V con telecomando

Progetto che accende e spegne una lampadina a 220 V tramite relè con i tasti di accensione e disattivazione del telecomando IR. Combina il controllo a infrarossi con la commutazione ad alta tensione.

4.4(22)
30
Stazione di irrigazione intelligente
#83Avanzato
Premium

Stazione di irrigazione intelligente

Sistema autonomo di irrigazione delle piante che funziona 24 ore su 24, 7 giorni su 7, senza affaticare Arduino con due batterie 18650 e regolatore LM2596. Gestisce automaticamente il motore dell'acqu

5.0(42)
57
Sistema di irrigazione intelligente per piante ESP 32
#139Avanzato
Premium

Sistema di irrigazione intelligente per piante ESP 32

In questo progetto è stato sviluppato un sistema di irrigazione automatica delle piante utilizzando un ESP32 e un sensore di umidità del terreno. Il sensore misura costantemente il livello di umidità del terreno. Quando l'umidità scende al di sotto del livello prestabilito, l'ESP32 attiva il relè, avviando la pompa dell'acqua e innaffiando la pianta. Quando il terreno è sufficientemente umido, la pompa si arresta automaticamente. Grazie a questo progetto, le piante possono essere innaffiate rego

4.7(10)
14
Illuminazione Intelligente ESP32 (PIR + LDR + Relè + OLED)
#141Avanzato
Premium

Illuminazione Intelligente ESP32 (PIR + LDR + Relè + OLED)

Trasforma il tuo corridoio, bagno o dispensa in illuminazione intelligente con ESP32! Utilizzando un sensore di movimento PIR, un sensore di luce LDR e un modulo relè, costruiamo lo scenario classico "la luce si accende quando viene rilevato movimento al buio" — se l'ambiente è già luminoso, il movimento NON attiva la luce, risparmiando energia durante il giorno. La luce rimane accesa per 30 secondi; se il movimento continua, il timer si azzera e la luce rimane accesa più a lungo. Il display OLE

4.3(6)
11
Illuminazione automatica con sensore di movimento PIR ESP32
#121Intermedio
Premium

Illuminazione automatica con sensore di movimento PIR ESP32

In questo progetto, utilizzeremo il sensore di movimento PIR HC-SR501 per rilevare la presenza di una persona che entra nella stanza e accendere automaticamente il LED. Quando viene rilevato un movimento, il LED rimarrà acceso per un determinato periodo di tempo e gestiremo il tempo tramite la funzione `millis()` e un contatore, senza ricorrere alla funzione `delay()`. In questo modo otterremo un sistema di illuminazione con sensore di movimento che non blocca l'ESP32, consentendogli di svolgere

4.4(24)
38
Campanello e luce con sensore di movimento
#25Intermedio
Premium

Campanello e luce con sensore di movimento

Progetto che accende il LED e riproduce la melodia del campanello con cicalino quando il sensore PIR rileva un movimento. Combina il rilevamento del movimento con la notifica sonora e luminosa.

4.7(54)
70

Impara come funziona un relè, cosa significano i contatti NO, NC e COM, come collegare il modulo ad Arduino, accenderlo e spegnerlo con un pulsante e lavorare in sicurezza con la tensione di rete.

Cos'è un modulo relè? Comandare lampade, prese e pompe con Arduino | BlueGrays