Questo è il mio nuovo problema pratico, e un'occasione per affrontare lo Zener
Dopo aver comandato agevolmente una carico 230V con Arduino UNO, tramite relè a impulsi a 2 canali, ed aver letto lo stato al secondo canale (utilizzando il circuito su breadboard, quindi 5V al pin), ora devo modificare l'approccio al secondo canale, perchè con esso si dovrà comandare un "carico" a 12Vcc, forniti da un trasformatore da barra DIN.
Devo quindi adeguarmi e leggere lo stato del secondo canale in parallelo (?) con il carico previsto (che sarà una unità di segnalazione). Non potendo andare direttamente al pin di Arduino, dovrò introdurre un diodo Zener che porti da 12 a 5V, e limitare la corrente.
Per il diodo avrei individuato p.es. 1N4733A https://www.sparkfun.com/products/10301
Per la/le resistenza/e verso il pin: come dimensionarle e dove piazzarle?
Sono arrivato a leggere questa bellissima discussione (quasi tutti i big presenti! :)) Riduzione di tensione - Generale - Arduino Forum
e ne sono uscito malconcio in quanto non sono stato in grado di applicarla al mio caso.
Tra le altre cose, leggo da più fonti (3Ds vari) che i pin sono dotati di diodi di protezione e che l'importante è limitare la corrente. Credo comunque che i 12V non sia proprio il caso di farglieli arrivare, giusto?
Con uno zener ed una resistenza ci puoi stabilizzare la tensione, ma solo per correnti molto basse, specie se la differenza fra tensione di ingresso e di uscita e' elevata ... perche' tutta l'energia extra la devono dissipare lo zener e la resistenza.
Puoi pero' usare lo zener come riferimento di tensione per pilotarci un transistor di una certa potenza, che in quel caso si occupa di dissipare l'energia extra, dandoti un'uscita da cui puoi prelevare piu corrente ... lo schema e' quello piu classico possibile di regolatore di tensione, ci sono centinaia di schemi, te ne posto uno a caso:
Con questa configurazione, la tensione di uscita e' quella dello zener meno la caduta del transistor (circa 0,6V, quindi per avere ad esempio 5V, dovrsti usare uno zener da 5,6V), e la corrente e' data da quella che puo sopportare il transistor (che deve essere ben dissipato), mentre la resistenza va calcolata in base alla corrente richiesta ed all'amplificazione (Hfe) del transistor, abbondando un po.
Se invece la corrente che ti serve e' elevata, bisogna andare sui regolatori switching, oppure usare un preregolatore in ingresso, perche' i lineari dissipano troppa potenza in calore, in quei casi.
Scusa Leo, hai ragione, mi era sfuggita la cosa (sono un po "cotto" stasera :P)
In quel caso si, puo semplicemente usare una resistenza da 10K o simili, ed un diodo zener da 5V fra ingresso e massa (se le masse sono in comune), perche' la corrente richiesta sarebbe molto bassa (consiglio anche un condensatore da 100nF in parallelo allo zener, cosi riduce sia i disturbi che i rimbalzi eventuali.
Se invece non ha le masse in comune o se preferisce tenerle separate, un'opto ed un paio di resistenze sono la soluzione migliore.
gbp01: solo se sei assolutamente sicuro che la tensione non andra' mai sopra quella prevista, altrimenti non e' sicuro.
gbp01: solo se sei assolutamente sicuro che la tensione non andra' mai sopra quella prevista, altrimenti non e' sicuro.
Quoto
... va bé, va bé ... e oltre al partitore ci sbattiamo anche lo zenner (che già ha) così siamo sicuri che non distrugge la porta
Guglielmo
questo è il sunto!
Confermo che non ho necessità di correnti, anzi basta esclusivamente il minimo sufficiente per un HIGH/LOW al pin di Arduino.
La tensione a 12V dovrebbe (!) essere sempre quella, venendo da un trasformatore, per alimentare varie cose a 12Vcc. Il motivo per cui avevo inizialmente escluso il "semplice" partitore con le 2 resistenze era per una maggiore sicurezza nel tagliare eventuali sovratensioni oltre i 12 che, ripeto, non dovrebbero esserci. A meno che per qualche motivo non arrivi qualche picco (certamente non dai relè, che hanno bobina alimentata separatamente a 12Vac).
Quindi riassumendo, le opzioni sono:
versione lux (@Etemenanki, interessantissimo, anche se in effetti oltre le necessità contingenti)
versione classica con Zener 5.1V e resistenza 10k
variante con condensatore 100nF, che fa anche da debouncing (giusto?)
fotoaccoppiatore
partitore di tensione con 2 resistenze
transistor a collettore comune
Direi che la #3 (Zener-resistenza-condensatore) mi sembra affrontabile ed efficace per lo scopo (rilevare uno stato logico di un contatto, con antirimbalzo). Per la #4 non ho ancora in mano fotoaccoppiatori (wishlist aggiornata! ;)). La #6 da studiare!!
Ultima cosa: lo Zener devo ancora prenderlo, quello segnalato al primo post (1N4733A) è corretto?
Piuttosto, dici che devi rilevare un contatto, non un'uscita in tensione, giusto ? ... in quel caso dovresti aggiungere una resistenza, ad esempio da 100K, fra l'ingresso e la massa, in parallelo a condensatore e zener ... questo per evitare che quando apri il contatto, l'ingresso rimanga "volante" e ti legga disturbi o cariche statiche casuali.
Non vorrei usare termini sbagliati, vista la pochezza delle mie conoscenze, per cui riscrivo con altre parole.
Devo sostanzialmente sapere se il secondo canale di un relè ad impulsi è aperto o chiuso. L'ho già fatto con la circuiteria su breadboard 5V, mentre adesso quel secondo canale sarà utilizzato da una lampada 12Vcc.
Io, ugualmente, voglio leggere lo stato aperto/chiuso, sapendo che tra "12 e 5V devo far qualcosa" . Ecco perchè ho parlato di contatto, ma quel secondo canale, comunque, accende una lampadina di un pulsante di segnalazione. alimentata da un trasformatore da centralino.
Cioè, non lo chiamo più "contatto pulito", in quanto sarà condiviso con un carico resistivo, per quanto piccolo.
Capito ... comunque, mettila lo stesso la resistenza da 100K verso massa, male non gli fa
In ogni caso, la tensione che ti trovi sul pin dipende da come colleghi quel secondo contatto ... ad esempio, se il comune della lampadina e' a massa, ed usi il secondo contatto per portarci il +12V, prendendo il segnale in parallelo alla lampadina, avrai il + sull'ingresso quando il contatto e' chiuso ... se invece hai la lampadina collegata al +12 e chiudi l'altro capo a massa con il contatto, ovviamente avrai il + quando e' spenta (la corrente che fluisce attraverso il filamento quando il contatto e' aperto non te la fa accendere, ma e' sufficente a tenere in stato alto il pin di ingresso), che diventa zero quando chiudi il contatto e la accendi.
Etemenanki:
Capito ... comunque, mettila lo stesso la resistenza da 100K verso massa, male non gli fa
In ogni caso, la tensione che ti trovi sul pin dipende da come colleghi quel secondo contatto ... ad esempio, se il comune della lampadina e' a massa, ed usi il secondo contatto per portarci il +12V, prendendo il segnale in parallelo alla lampadina, avrai il + sull'ingresso quando il contatto e' chiuso ... se invece hai la lampadina collegata al +12 e chiudi l'altro capo a massa con il contatto, ovviamente avrai il + quando e' spenta (la corrente che fluisce attraverso il filamento quando il contatto e' aperto non te la fa accendere, ma e' sufficente a tenere in stato alto il pin di ingresso), che diventa zero quando chiudi il contatto e la accendi.
Ottimo, grazie. Così risolvo anche i dubbi sulla corrente, che con 100K non dovrebbe esser più un problema.
Rileggendo i tuoi precedenti interventi, questa soluzione mi pare sia legata alla condizione:
Se invece non ha le masse in comune o se preferisce tenerle separate, un'opto ed un paio di resistenze sono la soluzione migliore
cioè masse in comune, giusto?
Volendo - come preferirei - tenerle separate, è il caso di passare all'opto e abbandonare l'idea dello Zener?
Il 4N35 e' il piu comune opto in circolazione, e va benissimo.
In quella discussione, ricorda solo che se usi l'ultimo schema, quello con il transistor a massa, hai uscita a zero quando c'e' tensione in ingresso e viceversa ... inoltre 820 ohm all'ingresso e' bassa per 24V (ma va bene per i tuoi 12V)
dimmi esattamente come e' connessa la lampada ed oggi ti faccio un circuito un po piu preciso per il tuo utilizzo.
Etemenanki:
Il 4N35 e' il piu comune opto in circolazione, e va benissimo.
In quella discussione, ricorda solo che se usi l'ultimo schema, quello con il transistor a massa, hai uscita a zero quando c'e' tensione in ingresso e viceversa ... inoltre 820 ohm all'ingresso e' bassa per 24V (ma va bene per i tuoi 12V)
dimmi esattamente come e' connessa la lampada ed oggi ti faccio un circuito un po piu preciso per il tuo utilizzo.
Grazie per la disponibilità, gentilissimo (e gentilissimi).
Ad oggi non è deciso come sarà connessa la lampada, diciamo che non me ne sono preoccupato subito in quanto lo spirito sarà di adattarmi, senza interferire con le mie ambizioni elettroniche :).
Vista l'occasione, provo a sentire quanto prima come pensiamo di metterlE (saranno infatti 3-4 pulsanti di circuiti diversi, ognuno con lampada di segnalazione 12Vcc), ovvero qual è la convenzione in questi casi.
@Etemenanki: ho un aggiornamento proprio ora, ho appena sentito e rispetto alla mia idea iniziale (lampade 12Vcc) è uscita questa cosa: avendo già un trasformatore guida DIN da 12V alternata, abbiamo pensato di usare questo anche per le lampade, oltre a pilotare la bobina dei relè, così ci evitiamo un trasformatore in più.
In pratica ora alla questione si aggiunge il fatto che i 5Vcc di Arduino si interfacciano con 12Vac.
Dopo un iniziale sconforto :~, ho provato a cercare e mi sembra di aver visto che esistono fotorelè tipo TLP176A Toshiba (un esempio, ma non ho idea se sia applicabile qui).
Se non c'è una soluzione sufficientemente accessibile alle mie possibilità, mi resta il piano B: acquistare un secondo trasformatore, ma in continua, e tornare alle opzioni di questo 3D.
Non e' indispensabile, basta modificare il circuito in modo semplicissimo ... cosi, ad esempio ... il ponte di diodi lo puoi prendere il piu piccolo ed economico possibile, o farlo con 4 diodi, anche degli 1N4148 da pochi centesimi, perche' deve alimentare solo il led dell'opto, quindi la corrente e' minima ... connesso in questo modo, hai "1" sull'ingresso se la lampada e' accesa.