ArduinoElettronica digitaleRaspberryPI

Gestione carichi AC con Arduino o RaspberryPI

Guida alla gestione dell'accoppiamento microcontrollore - relay per la gestione di vari carichi

La seguente guida vuole permettere a tutti di dimensionare e gestire un piccolo circuito di comando che permetta di far interagire tra loro un microcontrollore e un carico ad elevati assorbimenti (DC o AC) mediante un relay. Tale necessità è causata della bassa corrente erogata da un microcontrollore (ad esempio, nel caso dell’ATMEGA328PU, la massima corrente erogabile dai pin output è di 40mA) chiaramente insufficiente per gestire un relé.

La soluzione è abbastanza ovvia a livello teorico/pratico: il microcontrollore dovrà pilotare un transistor (tipicamente BJT o mosfet) che a sua volta piloterà un relè o un’altro circuito di gestione relè. Dato che un relay non può esser pilotato ad alte frequenze (essendo un componente meccanico necessita di un certo tempo di apertura e un certo tempo di chiusura del contatto) possiamo sfruttare un transistor BJT .

Esaminiamo un caso pratico: si vuole gestire un lampeggio di una lampadina 60W alimentata a 230Vac. Il lampeggio dovrà essere gestito da intervalli di 3 secondi e l’intero sistema deve essere gestito da un microcontrollore.

Esempio progettazione:
  1. Scegliere tutte le specifiche del circuito e selezionare un relé che permetta la gestione del carico (ovvero 230V 60W). Tale scelta è molto importante poiché il valore resistivo della bobina è il punto di partenza per un corretto dimensionamento. Tipicamente i valori sono compresi tra 200Ω e 500Ω per i relay da pcb 10A 230Vac. In seguito tale valore lo chiameremo Rrelay e nel nostro caso vale 200Ω.

alimentazione circuito comando Vcc = 9V

resistenza interna bobina relè Rrelay = 200Ω

2. Scegliere un transistor idoneo per sistemi switching nella fascia di tensione che si vuole adottare (se le tensioni di alimentazioni sono inferiori a 24 V e la frequenza di commutazione non è elevatissima la scelta ricade sui BJT come ad esempio il 2N2222. Nel nostro esempio l’alimentazione sarà si 9Vdc e il transistor utilizzato sarà un BC547.

NB. La scelta specifica del transistor è dettata dalla corrente che lo attraversa (Ic) tipicamente calcolabile approssimativamente con il calcolo Vcc/Rrelay (nel nostro caso 9/200 = 45mA). Per un’analisi migliore è necessario considerare il parametro Vce(sat).

3. Per procedere con il dimensionamento della base è necessario conoscere la corrente Ic che scorre nel collettore. Nel nostro caso Ic = 45mA. è possibile calcolare la corrente di base sfruttando il parametro di guadagno statico hfe tramite la relazione:

\(Ib = \frac{Ic}{hfe_minimo} = \frac{0,045}{110} = 0,000409 A = 0,409 mA\)

 

Ib_sat = Ib * 3 =  1,227 mA

Sapendo che l’output del microcontrollore è 5Vdc e che Vbe_sat ha valore 0,7V (vedere datasheet) è facilmente calcolabile la resistenza di base Rb:

\(Rb = \frac{Vbb – Vbesat}{Ibsat} = \frac{5 – 0,7}{0,001227} = 3,5k\Omega \)

 

Nel caso si voglia utilizzare la scheda RaspberryPI basterà considerare una Vbb di 3,3V anziché 5V.

Infine, l’ultimo componente da dimensionare è Rpulldown che deve essere maggiore di Rb. Tipicamente si sceglie in modo arbitrario con valori compresi tra 10k e 100k. Nel nostro caso sceglieremo 100k poiché disponibili.

A questo punto il circuito è dimensionato correttamente e funzionante, ma vi è un’ultima precisazione da fare: il diodo (detto anche diodo di ricircolo) è necessario per smorzare le sovratensioni induttive generate dall’improvvisa mancanza di alimentazione della bobina del relay.

Giunti a questo punto basterà gestire il lampeggio lato software tramite Arduino o RaspberryPI

MST-Admin

Appassionato di elettronica, elettrotecnica generale e programmazione. Fondatore del progetto MST-tutorial, desideroso di condividere con voi l'entusiasmo per l'innovazione tecnologica e la sperimentazione di novità tecniche in questi campi.

Articoli Correlati

Pulsante per tornare all'inizio