Apr 242012
 

Bentrovati su queste pagine. Oggi andiamo a vedere come possiamo utilizzare Arduino per controllare un relè esterno. Ma partiamo dalle basi. Cos’è un relè e perchè dovremmo collegarne uno ad Arduino.
Un relè può essere considerato come un interrutore, solamente che invece che essere attivato e disattivato dalla nostra mano, viene attivato e disattivato attraverso il passaggio di una corrente. Un relè può essere perciò utilizzato in tutti quei casi in cui un ipotetico interrutore debba essere attivato da un dispositivo elettronico. Facciamo un semplice esempio. Se volessimo creare un circuito che accende una luce al calar delle tenebre, il relè sarebbe il giusto “interruttore” che il nostro circuito potrebbe usare per accendere o spegnere la luce. Lo stesso vale per la resistenza della lavastoviglie, la sirena dell’antifurto, l’apertura del cancello di casa, etc. Il primo “istinto” potrebbe essere quello di collegare direttamente il relè ad una uscita di Arduino: non fatelo! Il perchè è presto detto: guardate l’immagine qui vicina: è un relè preso a caso fra quelli che avevo qui in casa. Per prima cosa notiamo che questo tipo di relè funziona a 12v (coil 12V) mentre le uscite di Arduino sono a 5V. Attenzione però, esistono numerosissimi tipi di relè (relay in inglese) che funzionano a diverse tensioni sia inferiori che superiori ai 12V. Il relè al suo interno ha una bobina che al passaggio della corrente genera un campo magnetico che a sua volta attiva l’interruttore interno. Ma quanto assorbe questa bobina? Se avete i dati del produttore siete già a posto ma se non li avete basta usare un multimetro e misurare gli Ohm della bobina: nel mio caso siamo a 360 Ohm (Nota: Nella foto il valore è 340 ma non è lo stesso rel&egrave su cui avevo fatto tutti i calcoli dell’articolo). Essendo V=R*I e quindi I=V/R, otteniamo che 12V/360 ohm mi danno 33mA che sono abbastanza vicini al massimo carico di 40mA erogati dalle uscite di Arduino. Ma quando si progettano circuiti di questo tipo, si cerca di usare un cosidetto “fattore di protezione 2” sulle uscite degli integrati per cui dovremmo porci l’intento di non prelevare più di 20mA dalle uscite di Arduino, ossia la metà del massimo erogabile. Ma allora come facciamo? La soluzione è relativamente semplice: usiamo un transistor. Non scappate, aspettate ancora un attimo, non è così difficile. Nella foto qui vicino vedete un set di transistors pronti all’uso. Anche se non li conoscete, potete tranquillamente comprare a pochi euro uno di questi kit in cui ne trovate 100, fra i tipi più comuni; poi come scegliere quello giusto lo vediamo fra poco. Ma ora che sappiamo che l’acquisto non è particolarmente problematico, come lo colleghiamo e come funziona? Non entreremo nei dettagli, se volte qualche notizia più approfondita potete scaricarvi il testo che trovane nella sezione elettronica, ma per la sola applicazione di cui parliamo oggi non c’è ne bisogno. Per adesso ci basta sapere che il transistor può essere utilizzato come amplificatore, ossia possiamo trasformare un segnale debole come quello in uscita da Arduino, in uno abbastanza forte da attivare un relè. Non parliamo di miracoli che sconfinano al di fuori delle leggi della fisica: la maggior potenza deve provvenire da una seconda linea di alimentazione, in questo caso a 12V. Qui vicino potete vedere la rappresentazione dello schema elettrico. Come vedete il transistor (Q1) consta di 3 pin che prendono il nome di base, emettitore e collettore. La disposizione dei tre pin non è uguale in tutti i transistors per cui per riconoscerla con certezza dobbiamo guardare lo schema fornito dal produttore. Comunque sia in tutti i casi alla base dobbiamo collegare l’uscita di Arduino con il segnale “debole”, mentre la corrente che attiverà il relè scorrerà dal collettore all’emettitore. Quindi riassumiamo. Ci serve un transistor che alla base dovrà funzionare a 5V con un massimo di 20mA e che in queste condizioni permetterà di far passare fra collettore ed emettitore una corrente 12V / 33mA. Un’altra cosa fondamentale è il diodo posto in serie con il relè. Questo è fondamentale per proteggere il transistor. Quando infatti chiudiamo il circuito, la bobina del relè crea un campo magnetico che permette di far scattare l’interruttore interno. Quando però riapriamo il circuito il transistor sarà interdetto al passaggio di corrente MA la bobina continuerà a far passar corrente a causa dell’induzione data dal campo magnetico per cui si viene a creare un picco che può bruciare facilmente il transistor. Il diodo serve proprio a garantire che la corrente possa essere scaricata senza danni. Ora come scegliamo il transistor? Giriamo la confezione e troviamo tutti i dati tecnici di cui abbiamo bisogno. Ciò non significa che siamo obbligati a prendere la stessa confezione che tra le altre ho comperato a caso. L’importante è sapere quali dati guardare dopodichè se non avete i dati di alcuni transistors che magari avete in qualche angolo a casa, è sufficiente farsi un giretto su google per trovare i dati di cui abbiamo bisogno.  Andremo a prenderne uno di tipo NPN e non PNP (cambiano le polarità). Se prendiamo il BC547B, uno dei più numerosi nella confezione, vediamo che al collettore supporta un massimo di 45V (Vce), del tutto sufficienti a sopportare i 12V necessari al relè. Il picco di corrente massimo al collettore è di 200mA (Ic max=0.2A) contro i soli 33mA necessari per alimentare il relè. Ora dobbiamo dimensionare correttamente la resistenza posta fra l’uscita di Arduino e la base del transistor. Se a corrente del relè è di 33mA e l’hFE del transistor è 200 otteniamo un valore minimo di corrente alla base di 33/200=0.165mA che però per tutta una serie di motivi legati alla natura stessa dei transistors deve essere moltiplicato di almeno 2 o 3 volte arrivando a 0.33-0.495mA (~0.5mA). Quindi la corrente alla base del transistor dovrà essere di un minimo di 0.5mA ed un massimo di 20mA (la metà di quanto erogabile da Arduino).  Sapendo questo dato possiamo agevolmente calcolare il valore della resistenza. Sappiamo che il voltaggio di Arduino è di 5V che però deve essere ridotto di 0.7V assorbiti dal transistor. Abbiamo quindi 4.3V con valori di resistenza compresi fra 4.3/0.5 e 4.3/20 che, dopo semplice conversione di unità, ci da un valore di resistenza minimo di 215 ohm e massimo di 8600. Non ci resta che preparare il circuito e creare un piccolo software per il test. Chiaramente un valore di resistenza fra i più alti farà usare ad Arduino una corrente minore, il che è da preferirsi. Io ho usato nell’esperimento un valore intermedio di 4.7K (4700 ohm). Come esempio possiamo usare semplicemente l’esempio visto precedentemente che fà lampeggiare il led interno, è sufficiente usare l’uscita 13 perchè oltre a lampeggiare il led ci sia anche l’apertura e chiusura del relè. Fate molta attenzione che lo schemino del circuito ha collettore ed emettitori invertiti rispetto la realtà del progetto, ma come vi dicevo la posizione non è standardizzata e dovete di volta in volta fare affidamento ai dati del produttore. Vi lascio una foto del progetto che potete vedere anche a piena risoluzine cliccandoci sopra e con un video dove si sente il “click” del relè. Si noterà anche l’alimentatore 12V esterno. Ad un certo punto ho mostrato il cocodrillo verde, solamente per far capire che è stato usato unicamente per fissare il filo al relè ma l’altro capo non è collegato da nessuna parte. C’è una leggera desincronizzazione dell’audio rispetto al video, inoltre noterete che quando “tocco” il coccodrillo verde, il contatto con il relè viene disturbato ed il suo tichettio diventa irregolare, questo perchè i contatti con il cocodrillo sono molto labili per cui possono essere usati per una dimostrazione rapida come questa ma non certo per un circuito definitivo.

 

  No Responses to “Arduino: colleghiamo un relè 12V”