Scelta optoisolatore

Buongiorno e buona domenica a tutti. Devo interfacciare un Arduino Pro Mini a 3.3v con il quadro strumenti di una moto che funziona a 12V, in particolare voglio leggere l'accensione di alcune spie e vorrei separare completamene i due livelli di tensione. Avevo pensato ad un partitore di tensione per portare i 12V a 3.3V, ma pensavo che se per qualche strano motivo ci dovesse essere uno sbalzo di tensione potrei danneggiare l'Arduino. Ho visto che molto spesso consigliate degli optoisolatori ma non ne mai visto ne usato uno. In base a cosa devo sceglierlo? Inoltre se volessi leggere un tensione variabile da 0V a 12V su un pin analogico si può sempre usare qualche optoisolatore oppure no?

Ciao Dario, se guardi QUI ... hai una scelta piuttosto vasta di opto-accoppiatori vari ... XD

Considera che essenzialmente hai da una parte un LED e quindi devi vederne le caratteristiche e regolarti di conseguenza, dall'altra ai un foto-transistor che, illuminato dal LED va in conduzione ... insomma ... un oggetto piuttosto semplice.

Chiarito questo capisci bene che ... NO, lo scopo dei normali opto-accoppiatori è quello di separare elettricamente un segnale digitale ON/OFF non di fornire un segnale analogico 0 .. X uguale a quello di ingresso ma otticamente separato ...

Guglielmo

Ciao Guglielmo, grazie per la risposta così veloce! :) Effettivamente sono dispositivi abbastanza semplici che credo vadano benissimo per la mia applicazione. Ma per la tensione variabile cosa posso fare?

Io farei un semplice partitore ... magari considerando la massima un po' più altra di 12V, così stai tranquillo e, comunque, mettendo sull'uscita del partitore un bel diodo zener da 5.1V che ... ti taglia qualsiasi cosa sopra questo valore e ti protegge il pin di ingresso ;)

Metti ... in ingresso 0 .. 13V, partitore con R1 = 15K, R2 = 8.2K ... hai in uscita 0 .. 4.6V ... ci metti pure lo zener ... direi che stai tranquilo ;)

Guglielmo

gpb01: Io farei un semplice partitore ... magari considerando la massima un po' più altra di 12V, così stai tranquillo e, comunque, mettendo sull'uscita del partitore un bel diodo zener da 5.1V che ... ti taglia qualsiasi cosa sopra questo valore e ti protegge il pin di ingresso ;)

Metti ... in ingresso 0 .. 13V, partitore con R1 = 15K, R2 = 8.2K ... hai in uscita 0 .. 4.6V ... ci metti pure lo zener ... direi che stai tranquilo ;)

Guglielmo

Ok ma l'Arduino Pro Mini lavora a 3.3V quindi forse è meglio mettere uno zener da 3.3V? :sweat_smile:

Ah, scusa, non avevo capito che avevi ingressi a 3.3V ... ... allora ... R1=15K, R2=4.7K e hai per 0 .. 13V in ingresso, 0 .. 3.1V in uscita, aggiungi lo zener da 3.3V e stai tranquillo ;)

Guglielmo

gpb01:
Ah, scusa, non avevo capito che avevi ingressi a 3.3V …
… allora … R1=15K, R2=4.7K e hai per 0 … 13V in ingresso, 0 … 3.1V in uscita, aggiungi lo zener da 3.3V e stai tranquillo :wink:

Guglielmo

Scusa Guglielmo ma mi sfugge qualcosa.
Se io lo zener lo collego polarizzato direttamente questo si comporta come un normale diodo mentre se lo collego polarizzato inversamente ho bisogno di una tensione maggiore della tensione di zener fra catodo e anodo in modo da avere l’uscita stabilizzata a 3.3V. Se usassi ad esempio un diodo BZX85C3V3 avrei bisogno di una tensione fra catodo e anodo Vz compresa fra 3.1V e 3.5V e quindi col partitore da te consigliato avrei i 3.3V garantiti al pin Arduino. Se invece lo collegassi polarizzato direttamente credo che non risolverebbe il mio problema perchè a questo punto l’unico effetto che otterrei sarebbe la sola caduta di tensione dovuta alla giunzione e nient’altro. Se il mio ragionamento fosse corretto allora non capisco come potrebbe, lo zener, servirmi per la tensione variabile da 0 a 12V in quanto quando la tensione prelevata dal partitore è inferiore a 3.1V, lo zener si comporterebbe come un circuito aperto… Cos’ha che non va il mio ragionamento? Dove sbaglio? Grazie per la pazienza! :grin:

Sbagli nel mettere lo zener così ... è giusto dove lo hai attaccato sul partitore, ma ... l'altro capo va a GND (in parallelo a R2) ... così, se si superano i 3.3V, va in "effetto valanga" (... entra in conduzione) e praticamente fa da corto verso massa (... tranquillo, la corrente è limitata dalla R1) tagliando il limite superiore a 3.3V ;)

Il pin di Arduino è direttamente collegato al partitore :)

Guglielmo

gpb01: Sbagli nel mettere lo zener così ... è giusto dove lo hai attaccato sul partitore, ma ... l'altro capo va a GND (in parallelo a R2) ... così, se si superano i 3.3V, va in "effetto valanga" (... entra in conduzione) e praticamente fa da corto verso massa (... tranquillo, la corrente è limitata dalla R1) tagliando il limite superiore a 3.3V ;)

Il pin di Arduino è direttamente collegato al partitore :)

Guglielmo

Chiaro al 1000%, così è perfetto! Ancora una volta grazie! :grin: :grin: :grin:

Controlla le tensioni, mi raccomando. Una batt al piombo a piena carica di solito è 13,8V, se non ricordo male. Inoltre se i circuiti delle moto sono come quelli delle macchine, a motore acceso e alternatore in funzione, sull'impianto puoi trovarti anche qualcosa di più: spesso dall'accendisigari ho letto anche 14V2-14V3. Quindi dimensiona tutto per starci abbondante.

@Leo: beh, con lo zener ... al limite perde i valori fuori range (... vengono tutti appiattiti al massimo), ma danni non ne può fare ;)

Guglielmo

Con lo zener no, ma prima si parlava anche di partitori semplici. Con quelli c'è da stare attenti dato che danno una tensione in uscita con un rapporto fisso.

Io lo zener lo metterei da 3,6V altrimenti con uno da 3,3V si potrebbe avere il diodo in conduzione verso massa non appena arriva il segnale, ed il pin a questo punto non leggerebbe l'impulso, o mi sbaglio?

Ciao Leo, avevo pensato al partitore semplice, ma in questo caso sembrava appunto "troppo" semplice.. È vero che le tensioni superano anche i 14V ma in questo caso credo che non avvenga in quanto queste tensioni variabili di cui parlo vanno a controllare gli indicatori analogici a lancette che in teoria si aspettano segnali abbastanza veritieri. Ovviamente prima di montare il tutto verifico accuratamente le tensioni. Hai ragione, forse è più adatto uno zener da 3.6V, in particolare il BZT55C3V6 ha come tensione di zener minima 3.4V il che vuol dire che a 3.3V non è ancora in conduzione e quindi non si crea il corto circuito.

Ragazzi ... studiatevi come funzionano gli Zener ... :grin: :grin: :grin:

Non ti azzardare a metterlo da 3.6 perché ... se tu avessi un Arduino DUE probabilmente bruceresti il pin di ingresso ;)

Lo Zener ... ti REGOLA la tensione (... in realtà tramite la corrente che lascia scorrere), quindi ... se lo scegli da 3.1 non è che a 3.2 non hai più nulla (GND) ... a qualsiasi cosa SOPRA il valore scelto, HAI il valore scelto. Ovviamente ... occorre limitare la corrente che scorre attraverso lo Zener ... non per nulla t'ho messo una 15K come R1 ... ;)

Quindi ... con il 3.1V ... fino a quando dal partitore esce qualche cosa tra 0 e 3.1V non succede nulla, come si supera ... la tensione, grazie all'effetto dello zener, resta FISSA a 3.1V ;)

Guglielmo

P.S. : Sarebbe anche buona cosa metterci in parallelo un condensatore ... con effetto di stabilizzare l'uscita ...

Quindi livella la tensione al suo valore nominale.

Un articoletto veramente molto semplificato che ne spiega il funzionamento ... QUI ;)

Guglielmo