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).
Realizzazione
Il circuito è così semplice che l’ho realizzato su una basetta millefori:
Infine una fotografia del circuito connesso ad Arduino:
Ciao vorrei sapere come faccio a collegare un sensore pir con questo circuito. Il sensore ha tre pin vcc gnd e di segnale
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?
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
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.
quando si chiude il pulsante si abbassa o alza il volume (a seconda del pulsante che si schiaccia), allora cosa mi consigli di fare?
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.
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.
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.
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?
Volevo separare il motore da arduino, per stare tranquillo, mi chiedevo se questo tuo optoisolatore fosse adatto allo scopo.
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
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.
ciao luca.
Il circuito puo’ soppotare i 220v AC in ingresso?
si, regolando opportunamente la resistenza
Ciao Luca, l’optoisolatore e il fotoaccoppiatore sono lo stesso componente? Ovvero le due parole sono sinonimi? Grazie.
Ciao Flavio. Sì, uso i due termini in maniera analoga…
Ciao! Se volessi regolare una pompa da 12 V con questo dispositivo connesso ai 5 V di arduino, riuscirei?
ciao, per la tua esigenza basta un rele comandato da arduino