Ingressi optoisolati per Arduino

luca 14/10/2013 12

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:

12 Comments »

  1. Andrea 11/04/2015 at 21:03 - Reply

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

    • luca 12/04/2015 at 09:21 - Reply

      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?

  2. antonio 02/09/2015 at 18:56 - Reply

    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

    • luca 02/09/2015 at 22:23 - Reply

      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.

      • antonio 03/09/2015 at 15:17 - Reply

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

  3. Nicola 06/10/2015 at 19:20 - Reply

    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.

    • luca 07/10/2015 at 07:38 - Reply

      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.

  4. Pier 23/03/2016 at 08:18 - Reply

    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.

    • luca 24/03/2016 at 09:16 - Reply

      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?

  5. Pier 28/03/2016 at 10:26 - Reply

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

  6. Ernesto 14/04/2016 at 11:51 - Reply

    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

    • luca 19/04/2016 at 14:04 - Reply

      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.

Leave A Response »

Questo sito usa i cookie per poterti offrire una migliore esperienza di navigazione maggiori informazioni

Questo sito utilizza i cookie per fonire la migliore esperienza di navigazione possibile. Continuando a utilizzare questo sito senza modificare le impostazioni dei cookie o clicchi su "Accetta" permetti al loro utilizzo.

Chiudi