Arduino I2C e Relè sui guida DIN

Buongiorno a tutti,
rieccomi qui con quasi la solita domanda su relè e Arduino (premetto che ho già cercato sia in internet che sul forum leggendo molte altre discussioni).

Cercherò di essere più conciso possibile..

Ho un impianto con dei pulsanti che comandano dei relè che a loro volta comandano delle luci.

  • La parte di controllo ovvero lato pulsanti funziona a 12Vcc
  • I relè sono montati su guida DIN e sono questi "Relè ad impulsi montaggio su guida DIN con contatto DPST-NA, 12V cc, 16 A", il doppio contatto lo utilizzerei per leggere lo stato del relè facendo circolare 12V su appunto il secondo contatto
  • Le luci funzionano con il 220Vac

Quello che mi interessa fare è inserire Arduino tra i pulsanti e i Relè per comandarli e/o monitorarli.

Per la parte "pulsante->arduino" e "relè->arduino" pensavo di seguire questo schema e quindi al momento non vedo problemi.

Per la parte "arduino->relè" ho qualche perplessità in più..

Primo ho la necessità di utilizzare il protocollo I2C per risparmiare pin, secondo mi serve conoscere lo stato del relè senza dover salvare lo stato su Arduino, terzo mi piacerebbe che il tutto sia optoisolato (ma se effettivamente non serve non è un vincolo).

Detto ciò pensavo di utilizzare (diciamo che ho mischiato un po' quello che ho trovato tra le varie discussioni):

  • PCF8574: per il protocollo I2C
  • 74hc540: per invertire il segnale in uscita dal PCF8574
  • ULN2803: per avere la potenza necessaria per pilotare il relè

Collegati più o meno come l'allegato qui sotto.

Ora la questione (per voi banale, per me no :frowning: ) è, quali collegamenti e componenti mancano (resistenze, diodi, condensatori) e che valori dovrebbero avere? Come le collego?

Volendo optoisolare il tutto, dove lo inserisco l'optoisolatore? Tra l'ULN2803 e il 74hc540?

Nelle varie discussioni che ho letto purtroppo non si parlava mai di quei 3 componenti insieme e vorrei evitare di fare un mischione inutile.

Grazie a tutti in anticipo :wink:

se dopo il PCF usi un optocopia probabilmente non ti serve altro.. al limite un transistor/mosfet!

se invece non vuoi optoisolare è sufficiente un BJT/Mosfert a emettritore/source comune (configurazione classica) che oltra a tirae la sufficiente corrente è anche invertente di sua natura.

ULN2803 ha una corrente massima di 500mA ed ognuno dei relè a 12V assorbe 440mA: siamo quasi al limite.

Forse sarebbe meglio optare per un relè a 24V che assorbe solo 230mA.

Martinix:
se dopo il PCF usi un optocopia probabilmente non ti serve altro.. al limite un transistor/mosfet!

se invece non vuoi optoisolare è sufficiente un BJT/Mosfert a emettritore/source comune (configurazione classica) che oltra a tirae la sufficiente corrente è anche invertente di sua natura.

Ok per il fotoaccoppiatore, quindi nel caso dovrei seguire questo schema.

L'ULN2803 avevo pensato di utilizzarlo per ridurre un po' il numero di componenti da montare, però come giustamente mi ha fatto notare cyberhs sarei un po' al limite..

Passare a 24V per il momento è una possibilità che escluderei per altri motivi, lasciandola come ultima opzione.

Cercando ho visto che esistono altri componenti, come ad esempio l'ULN2064B (ne ho preso uno a caso ma ne ho visti almeno altri 7 con sigle differenti, ma che mi sembravano uguali :o ) che arriva fino ad un massimo di 1.75A, però costa molto di più e gestisce la metà degli ingressi.
Sapete consigliarmi qualche alternativa?

si lo shema è quello con le dovute modifiche in baese ai compnenti che ai ed al modo di funzionare!

Non rimane che optare per il classico NPN ad emettitore comune con doppio resistore di base e diodo di protezione oppure un MOSFET N di piccola potenza.

Eliminerei il 74HC540: si può risolvere tutto invertendo la logica nello sketch.

cyberhs:
Non rimane che optare per il classico NPN ad emettitore comune con doppio resistore di base e diodo di protezione oppure un MOSFET N di piccola potenza.

Eliminerei il 74HC540: si può risolvere tutto invertendo la logica nello sketch.

Ok per eliminare il 74HC540 gestendo la logica inversa su sketch.

Per il classico NPN ad emettitore comune con doppio resistore di base e diodo di protezione, un ULN2064B e simili che reggono fino a 1.75A(guardando i vari datasheet non mi è molto chiara la differenza) non può andare bene? Più che altro mi risparmierei un po' di saldature oppure ci sono altri inconvenienti?

Comunque ora guardo un attimo come funzionano i mosfet n che mi hai suggerito.

Il 2064 ha vantaggi e (relativamente ridotti) svantaggi ... vantaggi: semplicita', resistenze e diodi di protezione gia integrati, 4 driver per componente, in piu essendo darlington basta una corrente minima in ingresso per pilotarli ... svantaggi: i piedini non sono simmetrici come nei 2803, per cui potresti avere lo stampato un po piu incasinato da fare.

Quello che mi interessa fare è inserire Arduino tra i pulsanti e i Relè per comandarli e/o monitorarli.

Presumo che tu voglia che l'impianto fuznioni comunque in manuale, quindi più che mettere Arduino nel mezzo direi che ti serva collegarlo in parallelo.
In pratica una specie di pulsante aggiunto per ogni linea rele'

Attualmente come sono collegati i pulsanti, sul positivo o sul negativo ?

Pensavo che avessi scartato il 2064 per una questione di costo.

Scarterei il 2074 perché non possiede i diodi per il pilotaggio di relè.

Il 2068 necessita di riferimento di tensione Vs (i 5V di Arduino).

Il 2066 ha una Rin di 3k, mentre quella del 2064 di 350 ohm.

Per Arduino direi che il migliore è il 2066.

cyberhs:
Pensavo che avessi scartato il 2064 per una questione di costo.

Scarterei il 2074 perché non possiede i diodi per il pilotaggio di relè.

Il 2068 necessita di riferimento di tensione Vs (i 5V di Arduino).

Il 2066 ha una Rin di 3k, mentre quella del 2064 di 350 ohm.

Per Arduino direi che il migliore è il 2066.

Non vorrei essermi espresso male l'utilizzo di un integrato simile mi semplificherebbe le cose, quindi se il costo in più rimane ragionevole non ci sono problemi solo che nella mia ignoranza ne ho "pescato" uno quasi a caso non sapevo se fosse la scelta giusta.

Comunque sia grazie per la spiegazione quindi mi indirizzerò sul 2066 e guardo come devo collegarlo agli altri integrati.

Brunello:
Presumo che tu voglia che l'impianto fuznioni comunque in manuale, quindi più che mettere Arduino nel mezzo direi che ti serva collegarlo in parallelo.
In pratica una specie di pulsante aggiunto per ogni linea rele'

Attualmente come sono collegati i pulsanti, sul positivo o sul negativo ?

Se in mezzo o in parallelo non ho ancora deciso, devo ancora valutare se val la pena modificare il funzionamento dei pulsanti in base a degli scenari oppure no.

Un esempio pratico, durante il funzionamento normale schiacciando il pulsante A mi si accende il lampadario, mentre durante la "notte" sempre schiacciando il pulsante A si accende una luce secondaria a bassa intensità per non dar fastidio, o comunque cose simili.

Al momento i pulsanti non sono ancora collegati a nulla, devo ancora sentire l'elettricista che farà l'impianto, c'è per caso qualche vantaggio averli in un modo piuttosto che in un altro?

Capisco che sia sfizioso cambiare scenario ma se non sbaglio stiamo parlando dell'impianto elettrico di casa e una cosa e' mettere Arduino in parallelo ai pulsanti, un'altra è demandarne la completa gestione.
La possibilita' che si guasti un pulsante è minima ( e se capita rimani al buio in una sola stanza ), quella che si guasti Arduino ( o altra componentistica collegata, ad esempio l'alimentatore ) è molto piu' alta ( e rimani al buio dappertutto ).

Brunello:
Capisco che sia sfizioso cambiare scenario ma se non sbaglio stiamo parlando dell'impianto elettrico di casa e una cosa e' mettere Arduino in parallelo ai pulsanti, un'altra è demandarne la completa gestione.
La possibilita' che si guasti un pulsante è minima ( e se capita rimani al buio in una sola stanza ), quella che si guasti Arduino ( o altra componentistica collegata, ad esempio l'alimentatore ) è molto piu' alta ( e rimani al buio dappertutto ).

Sono consapevole di quello che mi stai dicendo, infatti quello che volevo realizzare era anche un sistema di "sgancio rapido" dell'arduino dove in caso di guasto o aggiornamento di quest'ultimo spostando uno o più connettori i pulsanti tornano collegati direttamente ai relè escludendo Arduino.

Solo una cosa non mi è chiara, l'alimentatore non dovrei averlo in ogni caso? Nel senso che ci sia Arduino o meno, i 12V per i pulsanti non devo comunque tirarli fuori da qualche parte?

Rieccomi qui..
Allora, al momento ho lasciato il 74HC540 e non ho inserito gli optoaccoppiatori perchè mi sono abbastanza incasinato anche così :roll_eyes:

Comunque sia ho provato a guardare un po' in internet come collegare tra loro i vari componenti e quali resistenze o condensatori aggiungere ed ecco qui il mio risultato.

In alto a sinistra sono presenti i collegamenti provenienti da Arduino quindi SDA, SCL, +5V e GND, nella parte destra invece ho inserito la seconda alimentazione regolata a 12V per l'ULN2066 che comanderà i relè.

Sicuramente avrò fatto qualche pasticcio, spero solo di non aver fatto un disastro totale!

Sì, qualche errore c'è... :slight_smile:

Il regolatore a 12V per i relè non solo non è indispensabile, ma è anche insufficiente: la corrente massima che può erogare è 1.5A con aletta di raffreddamento, mentre i relè necessitano di 1.8A.

Inoltre il condensatore elettrolitico in ingresso deve essere calcolato (metodo empirico) con una capacità di 1000μF per ogni ampere di corrente richiesta, mentre quello in uscita 1/10 di quello in ingresso.

Con condensatori di grossa capacità è anche meglio inserire un diodo tra i terminali IN e OUT per proteggere il regolatore quando viene tolta l'alimentazione.

Personalmente preferisco inserire dei resistori di pull up (anziché pull down) sulle linee degli indirizzi del PCF8574.

Ti è sfuggito l'inserimento nello schema dei pin di alimentazione del 74HC540 (usa il pulsante Invoke di EAGLE) e quindi il condensatore C2 deve essere inserito tra Gnd e Vcc, mentre i due pin Out Enable vanno posti a Gnd.

Questo è come lo vedo io

Intanto grazie per la risposta :wink:

Ho rimosso la parte del regolatore demandando il tutto all'alimentatore a monte di tutto che sarà dimensionato in maniera appropriata per reggere carichi di qualche ampere.

Ho messo i resistori in pull up come suggerisci.

Per il 74HC540 ho fatto le modifiche che dicevi, l'unica cosa che non mi è chiara è dove deve finire il condensatore C2 e cosa devo fare con il comando Invoke.
Se lo utilizzo sul 74HC540 mi appare un Vcc GND (quello che si vede in basso all'immagine), come lo collego?

Brunello:
Questo è come lo vedo io

Effettivamente sembra esserci tutto quello che mi serve, hai utilizzato una serie di N-Mosfet, resistenze e diodi al posto dell'ULN2066 (eventualmente posso integrarlo nel tuo circuito sostituendolo con tutto quello tra i fotoaccoppiatori e i relè?) e hai già inserito i fotoaccoppiatori.

L'unica cosa che non mi è chiara è il raddrizzatore in basso a destra, perdona la domanda stupida, ma se ho già un alimentatore che eroga 12V è superflua giusto?

Il comando Invoke di EAGLE serve a far apparire tutte le porte di un IC ed anche le alimentazioni.

Nel tuo caso devi collegare il condensatore C2 tra il pin 20 (Vcc) ed il pin 10 (Gnd).

Il Vcc vale +5V: fai attenzione perché hai usato Vcc anche l'alimentazione delle bobine dei relè a 12V!

L'unica cosa che non mi è chiara è il raddrizzatore in basso a destra, perdona la domanda stupida, ma se ho già un alimentatore che eroga 12V è superflua giusto?

Stiamo parlando dell'impianto elettrico di casa, non di un televisore.
L'impianto deve durare anni ed anni e secondo te ha più possibilita' di guastarsi un alimentatore da 12 V ( presumo switching ) o un semplice trasformatore con ponte a diodi e condensatori di stabilizzazione ?