Arduino I2C e Relè sui guida DIN

cyberhs:
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!

Quindi per il condensatore C2 va bene qualcosa di questo tipo?

Si per le alimentazioni so che sono due distinte ho dimenticato di indicarlo, comunque ora ho tolto Vcc mettendo +5V e +12V così è più chiaro.

Brunello:
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 ?

Ok chiaro, quindi per i 12V prevederò un trasformatore con ponte a diodi come hai indicato per alimentare le schede per la gestione dei relè.
Solo una cosa gli eventuali disturbi sulla linea per questo genere di applicazione sono trascurabili?
Se al posto degli N-Mosfet utilizzo degli ULN2066 il discorso cambia? Visto che mi semplificherebbero la vita in fase di montaggio della scheda vedi qualche controindicazione per quanto riguarda la durata?

Se al posto degli N-Mosfet utilizzo degli ULN2066 il discorso cambia? Visto che mi semplificherebbero la vita in fase di montaggio della scheda vedi qualche controindicazione per quanto riguarda la durata?

ULN2066 o ULN2064?
*il discorso cambia? * Si e no. Se dovessi pilotare dei relè da CS userei un Driver Darlington del genere. ma visto che sono dei relè su barra DIN, con una discreta corrente e a una distanza sconosciuta io opterei per dei Mosfet singoli.
Prima di tutto perchè non è vero che con un IC si semplifica il montaggio, poi perchè anche se il circuito viene leggermente più ingombrante, dovrai comunque montarci una morsettiera adeguata ( ora non ricordo la normativa, ma non penso che l'elettricista usi cavi con sezioni minori di 0.75/1 mmq )
E poi, la parte più problematica è sempre quella di potenza, come già dicevo, una cosa è rimanere al buio in una stanza, un'altra e' abbuiarne 4 in un colpo solo ( se ci sono problemi non salta un solo Mosfet, ma un IC che comanda 4 relè ).

Per quanto riguarda eventuali disturbi, il collegamento tra la logica e la parte elettrica è tutto fotoaccoppiato, ed un Led se non ci scorre corrente non si accende. Semmai eventuali disturbi potrebbero essere causati dal posizionamento della parte logica (Arduino), che se posta troppo vicino ai vari relè, teleruttori etc potrebbe ricevere detti disturbi per "vicinanza". Quindi o schermare il tutto ( mettendo a terra la schermatura ) o allontanarla dal quadro elettrico.

Userei un ULN2066 e non saldato direttamente sulla scheda, in questo modo la sostituzione sarebbe più veloce.

Per la distanza dai relè non saprei, tu consigli di mettere i relè di potenza e arduino in due scatole diverse?

Comunque l'unico inconveniente sarebbe quello di avere 4 stanze al buio al posto di 1 giusto? In quanto a ipotetica durata nel tempo le cose non cambiano? (tra mosfet e ULN2066 intendo).

Ho provato a modificare lo schema che avevo postato inizialmente cercando di fonderlo con quello che hai postato tu con gli optoisolatori, ho dimenticato qualcosa? :sweat_smile:

ho dimenticato qualcosa?

Si, le resistenze di PullDown ( da 10k ) sugl ingressi dell'ULN
poi il dip switch sul PCF8574 deve avere i comuni al GND, visto che hai usato delle resistenze di PullUp

Il GND non deve essere lo stesso, per il 12V (ULN e fotoaccoppiatore) e il 5V (PCF e Arduino ) altrimenti che li avresti messi a fare i fotoaccoppiatori

Brunello:
Si, le resistenze di PullDown ( da 10k ) sugl ingressi dell'ULN
poi il dip switch sul PCF8574 deve avere i comuni al GND, visto che hai usato delle resistenze di PullUp

Il GND non deve essere lo stesso, per il 12V (ULN e fotoaccoppiatore) e il 5V (PCF e Arduino ) altrimenti che li avresti messi a fare i fotoaccoppiatori

Ok grazie, domani aggiungo le resistenze di pulldown e sposto i comuni del dip switch su GND e riposto le modifiche.

Il GND infatti non è lo stesso ne avevo messi due distinti appunto per quel motivo, per caso devo indicarlo in un modo in particolare sullo schema elettrico? Perdonami, ma è la prima volta che provo a disegnarne uno.

Ultima cosa, sul PCF e sul fotoaccoppiatore ho messo rispettivamente 1 e 2 condensatori, sull'ULN non servono?
Più in generale, come faccio a stabilire quando usarli e con quali valori?

Ecco fatto... Ho apportato le varie modifiche suggerite, per quanto riguarda la distinzione dei vari GND non sapendo come altro fare ho indicato tra parentesi a quale alimentazione mi riferisco, ho dimenticato altro?

Così per curiosità, se volessi seguire il consiglio iniziale di cyberhs utilizzando i relè a 24V e l'uln2803 questo schema andrebbe bene o manca qualcosa sul lato relè?

shake84:
... devo indicarlo in un modo in particolare sullo schema elettrico? ...

Uno dei (pochi, ma purtroppo presenti) problemi che da Eagle e' che se chiami in un modo una rete (insieme di contatti), e dai lo stesso nome ad una diversa rete di connessioni, te li considera automaticamente tutti la stessa rete ...

Se vuoi tenerli elettricamente separati sullo stampato, devi dargli nomi diversi nello schema ... puoi anche limitarti ad aggiungere un numero o una lettere (esempio, GND per la logica e GND2 per i rele'), in questo modo sia nello schema che nello stampato verranno considerati due distinte reti ...

Stessa cosa per le alimentazioni, VCC per la logica e +12V per i rele', ci sono gia anche i simboli corrispondenti ...

Etemenanki:
Uno dei (pochi, ma purtroppo presenti) problemi che da Eagle e' che se chiami in un modo una rete (insieme di contatti), e dai lo stesso nome ad una diversa rete di connessioni, te li considera automaticamente tutti la stessa rete ...

Se vuoi tenerli elettricamente separati sullo stampato, devi dargli nomi diversi nello schema ... puoi anche limitarti ad aggiungere un numero o una lettere (esempio, GND per la logica e GND2 per i rele'), in questo modo sia nello schema che nello stampato verranno considerati due distinte reti ...

Stessa cosa per le alimentazioni, VCC per la logica e +12V per i rele', ci sono gia anche i simboli corrispondenti ...

Purtroppo anche rinominando GND in un altro modo una volta passato alla creazione della board me le univa lo stesso le due parti, mi sa che sbaglio qualcosa :confused:.

Comunque al momento ho rimosso dal circuito la dichiarazione dell'alimentazione inserendo solo delle label e in questo modo la generazione della board pare non abbia dato problemi.

Allego qui sia lo schema elettrico e la board ottenuta, a seguito del suggerimento iniziale di Cyberhs e a quanto detto da Brunello su utilizzare un alimentatore apposito per i relè e non uno di switching, ho iniziato seriamente a pensare di passare ai 24V.

Fatemi sapere se vedete errori o dimenticanze.

board_rele24v.png

Non comprendo la necessità di usare i fotoaccoppiatori per pilotare delle uscite con l'ULN2803: secondo me si possono evitare.

Sono le entrate che necessitano di fotoaccoppiatori.

cyberhs:
Non comprendo la necessità di usare i fotoaccoppiatori per pilotare delle uscite con l'ULN2803: secondo me si possono evitare.

Sono le entrate che necessitano di fotoaccoppiatori.

Probabilmente non sono necessari come hai indicato, tuttavia da quello che ho capito in questi ultimi mesi di ricerche (correggimi pure se sbaglio) offrono una protezione in più dividendo in maniera netta i due circuiti quello da 5V per Arduino e quello da 24V per i relè.

Ps.
Per quanto riguarda i collegamenti con l'ULN2803 ho un dobbio, su alcune schede dove viene usato ho visto la presenza di un paio di condensatori (es. questa), tuttavia nei vari schemi elettrici che ho trovato non vengono menzionati e quindi nel mio schema non li ho riportati, servono? Se si dove andrebbero collegati?

Nulla vieta di farlo, ovviamente, ma continua a sembrarmi una inutile accortezza: l'ULN2803 già è un separatore di per sé.

Inoltre il il PCF8574 eroga una corrente complessiva continua massima di +/- 100mA , mentre se tutti e 8 i relè sono attivi il carico è 120mA (15mA x 8): dovresti dimunire la corrente di accensione dei LED a 10mA aumentando il valore dei resistori da 330 ohm.

Il condensatore ceramico da 100n serve ad impedire autoscillazioni per un eventuale PWM, inutile per il caso in esame.

Il condensatore elettrolitico (penso un 47μ), invece, serve ad avere "localmente" una riserva di energia, ma nel tuo caso dovrebbe essere di capacità almeno 10 volte superiore.

cyberhs:
Nulla vieta di farlo, ovviamente, ma continua a sembrarmi una inutile accortezza: l'ULN2803 già è un separatore di per sé.

Inoltre il il PCF8574 eroga una corrente complessiva continua massima di +/- 100mA , mentre se tutti e 8 i relè sono attivi il carico è 120mA (15mA x 8): dovresti dimunire la corrente di accensione dei LED a 10mA aumentando il valore dei resistori da 330 ohm.

Il condensatore ceramico da 100n serve ad impedire autoscillazioni per un eventuale PWM, inutile per il caso in esame.

Il condensatore elettrolitico (penso un 47μ), invece, serve ad avere "localmente" una riserva di energia, ma nel tuo caso dovrebbe essere di capacità almeno 10 volte superiore.

Ok, domani mattina provo a fare una nuova versione senza usare i fotoaccopiatori in uscita.

Per il carico in uscita dal PCF8574 grazie per l'osservazione :wink: , attivare tutti e 8 i relè contemporaneamente credo sia un eventualità rara, essendo relè ad impulso vorrebbe dire farli cambiare di stato tutti e 8 nella stessa frazione di secondo, in ogni caso prevenire è meglio che curare quindi ora sostituisco i valori delle resistenze in modo da avere una scheda più flessibile.

Per quanto riguarda i condensatori stai parlando di quelli presenti nel mio schema (per intenderci quelli collegati ai due fotoaccoppiatori), oppure a quelli da collegare ipoteticamente all'ULN2803 che dicevo di aver visto in alcune applicazioni?
Se è quest'ultimo caso dove lo collego il condensatore elettrolitico da 470uF? Tra il + e GND dell'ULN2803?

In attesa delle conferme sui condensatori ho fatto una prova seguendo quanto mi hai suggerito rimuovendo i fotoaccoppiatori e ho aggiungendo un condensatore da 470uF (spero nel punto giusto) allego qui sotto lo schema.

Ps.
Per quanto riguarda le resistenze utilizzate nel caso di fotoaccoppiatori ho provato a rifare i calcoli, ma considerando una caduta di tensione da 1.3v (tipica) a 1.5 (massima) per il CNY74-4H e utilizzando una resistenza da 330ohm ho una corrente di circa 11mA ottenendo un picco massimo di 88mA.
In ogni caso se volessi stare più sicuro potrei tagliare la testa al toro utilizzando una da 390ohm :wink:

Hai ragione: se il LED dei fotoaccoppiatori si accende a 1.8V con un resistore da 330 ohm la corrente è circa 10mA, quindi la corrente massima compressiva sarebbe di circa 80mA.

Comunque, se non usi i fotoaccoppiatori, non occorre inserire i resistori di pull down: internamente all'ULN2083 ad ogni ingresso c'è già un rete di resistori (una serie di 2.7k + 7.2k + 3k = 12.9k) verso ground.

I 24V devono essere collegati al pin CD (10) come pure il polo positivo del condensatore, il cui polo negativo deve essere invece collegato a ground.

ok, facciamo un passo indietro....
senza fotoaccoppiatori
non puoi pilotare l' ULN2803 direttamente dal PCF8574, perche' per attivare il Relè ti serve un livello HIGH sull'ingresso del ULN2803 e il PCF e' fatto per lavorare come Sink , perche' la corrente come Source è al massimo 300µA. Poca per comandare l'ULN2803
Quindi devi interporre un Buffer e si torna quindi all'uso del 74HC540 ( inverter ) o 74HC541 ( non inverter )

Brunello:
ok, facciamo un passo indietro....
senza fotoaccoppiatori
non puoi pilotare l' ULN2803 direttamente dal PCF8574, perche' per attivare il Relè ti serve un livello HIGH sull'ingresso del ULN2803 e il PCF e' fatto per lavorare come Sink , perche' la corrente come Source è al massimo 300µA. Poca per comandare l'ULN2803
Quindi devi interporre un Buffer e si torna quindi all'uso del 74HC540 ( inverter ) o 74HC541 ( non inverter )

Ok, ho rimesso il 74HC540 e rifatto i collegamenti (spero corretti), ora manca qualcos'altro?

non puoi pilotare l' ULN2803 direttamente dal PCF8574, perche' per attivare il Relè ti serve un livello HIGH sull'ingresso del ULN2803 e il PCF e' fatto per lavorare come Sink , perche' la corrente come Source è al massimo 300µA.

Con l'impedenza di ingresso di 12.9k del ULN2803 la corrente sarebbe 387μA.

Mi sa che hai ragione: meglio non rischiare.

Qui c'è un bell'articolo sul funzionamento del PCF8574:

cyberhs:
Qui c'è un bell'articolo sul funzionamento del PCF8574:

LaurTec - PCF8574: I2C I/O Expander, libreria ed utilizzo

Ciao ho riletto con attenzione la guida che hai sengalato, però mi rimane un grosso dubbio sui condensatori.

Premetto che ho già cercato in internet guide varie sull'argomento condensatori, ma purtroppo non ho trovato quello che serve a me (o più probabilmente non capisco come applicarlo al mio caso.

Allora in poche parole ho vari integrati in questo caso PCF8574 e 74HC540, dai vari schemi che ho trovato entrambi hanno vcc/vdd collegati alla sorgente di alimentazione (com'è giusto che sia) e in più su questo collegamento è presente un condensatore da 0.1uF che porta a massa per impedire autoscillazioni per un eventuale PWM.

I miei dubbi sono:
1-Come mai proprio 0.1uf e non un altro valore?

2-Basta un solo condensatore per tutti gli integrati? Nel caso ne servisse 1 per ogni integrato visto che la sorgente di alimentazione è la medesima e i condensatori sarebbero in parallelo (vedi sezione cerchiata di azzurro nell'allegato) posso mettere un solo condensatore con un valore più alto?

E' prassi usare un condensatore da 100n ceramico o poliestere per ogni IC di commutazione logica.

Deve essere collegato con un terminale il più vicino possibile al positivo dell'alimentazione dello IC e con l'altro a massa.