Ingressi optoisolati per Arduino

by luca
18 comments

Questo piccolo tutorial vi spiegherà come realizzare un circuito per optoisolare i PIN di input di Arduino…

Optoisolatori

Un optoisolatore è un componente elettronico che permette di trasferire un segnale tra due circuiti, mantenendo un isolamento galvanico, ovvero senza passaggio di corrente tra il primo e il secondo circuito.

L’optoisolatore è normalmente composto da un LED e da una fotoresistenza/fototransistor: il segnale in ingresso “accende” il LED e l’elemento fotosensibile rileva tale accensione, trasferendo l’informazione:

Utilizzando Arduino, talvolta è necessario “leggere” segnali di ingresso con tensioni maggiori di quella supportata dai PIN oppure si vuole – per questioni di sicurezza – non collegare direttamente tensioni elevate, quali la corrente di rete, al microcontrollore.

In questo esempio ho deciso di utilizzare un optoisolatore molto diffuso, il 6N137 (qui il datasheet).

Schema

L’utilizzo dell’optoisolatore 6N137 è molto semplice:

Il segnale di ingresso viene inviato ai PIN del LED interno (2-3), tramite la resistenza R1 che limita la corrente. Il datasheet riporta come massima corrente di ingresso consigliata 15mA: una resistenza di 1Kohm impone tale corrente se la tensione di ingresso è 15V.

Al PIN di uscita (6) è collegata una resistenza di pull-up; infine l’integrato è alimentato tramite i PIN 5 (massa) e 8 (VCC).

Su Internet troverete degli schemi che aggiungono una resistenza di pull-up anche al PIN 7, in realtà il datasheet riporta (nota 3) che è già presente una resistenza di pull-up all’interno dell’integrato.

Realizzazione

Il circuito è così semplice che l’ho realizzato su una basetta millefori:

Infine una fotografia del circuito connesso ad Arduino:

Related Posts

18 comments

Andrea 11 aprile 2015 - 21:03

Ciao vorrei sapere come faccio a collegare un sensore pir con questo circuito. Il sensore ha tre pin vcc gnd e di segnale

Reply
luca 12 aprile 2015 - 09:21

Ciao Andrea, in linea generale colleghi massa e segnale ai due ingressi dell’optoisolatore (il segnale in X1-1) mentre l’alimentazione al sensore è diretta. Come mai pensi ad un optoisolamento x il sensore?

Reply
antonio 2 settembre 2015 - 18:56

ciao mi hanno consigliato di usare questo optoisolatore per comandare il volume di un amplificatore con arduino. Quest’amplificatore ha 2 pulsanti per alzare o abbassare il volume (quindi penso che ce qualche potenziometro digitale) se collego 4 fili sui 2 pulsanti (2 per ogni pulsante) e a loro volta li collego a 2 optoisolatori come questo pensi che vada bene? attualmente ho collegato 2 relè ai 2 pulsanti e funziona bene solo che da fastidio quel rumore che emette il relè ogni volta che alzo o abbasso il volume col telecomando

Reply
luca 2 settembre 2015 - 22:23

ciao Antonio, se ho capito bene vuoi comandare la chiusura dei due pulsanti con arduino… dipende molto da quello che “succede” quando chiudi il pulsante, non è così semplice come sostituire il pulsante con un relay.

Reply
antonio 3 settembre 2015 - 15:17

quando si chiude il pulsante si abbassa o alza il volume (a seconda del pulsante che si schiaccia), allora cosa mi consigli di fare?

Reply
Nicola 6 ottobre 2015 - 19:20

Ciao Luca, io avrei una domanda da farti. Praticamente io ho la necessità di collegare una gettoniera ad arduino. Dalla gettoniera ho 3 cavi. di cui due di alimentazione a 12v e uno che invia gli impulsi in base alla moneta inserita. Mi hanno detto di collegare ad arduino, oltre al cavo degli impulsi, anche quello della massa perchè facendo ciò riescono a comunicare (arduino e gettoniera). Il punto è che le due masse hanno due voltaggi diversi, uno a 5v (arduino) e uno a 12 volt (gettoniera). Per questo motivo mi hanno consigliato un optoisolatore ma io non ho la più pallida idea di quale acquistare e di come collegarlo. Mi potresti aiutare per favore? grazie mille in anticipo e scusa per il tema.

Reply
luca 7 ottobre 2015 - 07:38

Ciao Nicola, usa lo schema di questo articolo, collegando ad X1-1 il segnale della gettoniera e ad X1-2 la massa. Collega poi OUT ad Arduino: su questo PIN avrai il segnale (gli impulsi) “scalati” a 5V e quindi non rischierai di bruciare il PIN di Arduino a cui lo colleghi.

Reply
Pier 23 marzo 2016 - 08:18

Ciao, complimenti per l’articolo.
Ho una domanda, forse un po’ banale, questo circuito può essere utilizzato (o adattato) per isolare un motore stepper da arduino? Il fatto è che i motori stepper hanno 4 fili e non capisco come fare i colegamenti. Grazie.

Reply
luca 24 marzo 2016 - 09:16

Ciao Pier, normalmente tra lo stepper e arduino c’è un driver o un ponte ad H che di fatto realizza un certo isolamento… che tipo di collegamento vuoi optoisolare?

Reply
Pier 28 marzo 2016 - 10:26

Volevo separare il motore da arduino, per stare tranquillo, mi chiedevo se questo tuo optoisolatore fosse adatto allo scopo.

Reply
Ernesto 14 aprile 2016 - 11:51

Ciao Luca,

io avrei un’esigenza un pò diversa ma probabilmente la soluzione è simile a quanto tu hai realizzato.
Dovrei portare all’ingresso I/O di Arduino una tensione che mi esce da un pin di un Micro avente una variazione di tensione da 15mV a 70mV. In pratica devo far leggere questa tensione ad Arduino e per evitare problemi al micro prevederne acne un opto-isolamento. Da tensione disponibile sul PIN del micro e dell’ordine come dicevo di poche decine di mV e quindi Arduino non la può leggere ed interpretare. Esiste un optoisolatore che ha al suo interno un operazionale in grado di accettare tensioni in ingresso dell’ordine dei mV ? magari con regolazione della soglia tramite trimmer ?

Grazie per l’eventuale consiglio.

Ernesto

Reply
luca 19 aprile 2016 - 14:04

Ciao Ernesto… una tensione così bassa va gestita con un operazionale per portarla nel range 0-5V che un ADC di Arduino può leggere… non ti serve un optoisolatore.

Reply
ROBERTO MARINELLO 20 settembre 2018 - 15:57

ciao luca.
Il circuito puo’ soppotare i 220v AC in ingresso?

Reply
luca 22 settembre 2018 - 05:36

si, regolando opportunamente la resistenza

Reply
Flavio Toniutti 24 dicembre 2018 - 00:04

Ciao Luca, l’optoisolatore e il fotoaccoppiatore sono lo stesso componente? Ovvero le due parole sono sinonimi? Grazie.

Reply
luca 28 dicembre 2018 - 14:23

Ciao Flavio. Sì, uso i due termini in maniera analoga…

Reply
Matteo 11 luglio 2019 - 18:47

Ciao! Se volessi regolare una pompa da 12 V con questo dispositivo connesso ai 5 V di arduino, riuscirei?

Reply
luca 17 luglio 2019 - 10:00

ciao, per la tua esigenza basta un rele comandato da arduino

Reply

Leave a Comment

10 + uno =