Pulldown non funziona...

Ciao a tutti, ho realizzato un circuito con arduino micro, collegato 2 uscite ad un uln2803A e due ingressi a due pulsanti con resistenze di pulldown da 1Khom. Nonostante le pulldown le due uscite del ULN si ativano quando accendo una luce in casa o attacco e stacco una spina sotto carico. Oggi dopo aver bruciato un arduino trafficando per risolvere il problema mi sono accorto che non avevo collegato il pin COM dell'ULN al 12vcc... Potrebbe essere per questo motivo che le uscite prendevan stato logico 1 con i disturbi?

Allego schema fidocad

edit by mod: allega i file al post, non inserirli dentro ad esso come dati.

Il COM del ULN2803 é il comune del diodo di protezione del transistore di uscita. Se usi carichi induttivi come relé, valvole elettromagnetiche o motori deve essere collegarlo a +12V. Manda una immagine dello schema e non il macro di FIDOCAD perché non riesco a farlo vedere in modo completo. Ciao Uwe

Ecco l’immagine

Volevo correggere il primo post...specificando che il circuito l'ho realizzato assieme a mio figlio Gilbert, che a 13 anni sa fare quello che io ho imparato a fare a circa 35 anni... :)

lucatd4: Ciao a tutti, ho realizzato un circuito con arduino micro, collegato 2 uscite ad un uln2803A e due ingressi a due pulsanti con resistenze di pulldown da 1Khom. Nonostante le pulldown le due uscite del ULN si ativano quando accendo una luce in casa o attacco e stacco una spina sotto carico. Oggi dopo aver bruciato un arduino trafficando per risolvere il problema mi sono accorto che non avevo collegato il pin COM dell'ULN al 12vcc... Potrebbe essere per questo motivo che le uscite prendevan stato logico 1 con i disturbi?

Scusami se non ho letto bene il tuo post. Le R di pull-up o pull-down devono avere un valore più alto, 10K o 20K. 1K è troppo basso. Poi se non colleghi il pin 10 dell'ULN a VCC non attivi i diodi in antiparallelo interni al driver, che sono indispensabili quando devi pilotare carichi induttivi come dei relé. Quando un relé apre, la bobina produce una corrente inversa che percorre la linea inversamente. Quei diodi servono proprio ad evitare che essa faccia dei danni. Se non colleghi il pin 10, devi mettere dei diodi esterni. Poi controlla anche quanta corrente assorbono quei relé, c'è un limite di 500 mA per pin dell'ULN e se non ricordo male 1,5A per tutto il chip.

Ciao, ok per i diodi... Per il valore delle resistenze, all'inizio avevo messo 10khom poi leggendo su vari forum alcuni dicono che il valore adatto è 1 khom. Consideriamo anche che la linea dei 5 v che poi arriva all'ingresso dell'arduino corre assieme in un tubo assieme ad un alimentazione 220v 50 Hz..

Le R di pull-up e pull-down non devono avere valori troppo elevati, altrimenti possono disturbare i segnali di pilotaggio. Non è che con le R da 1K ti stai confondendo con quelle in serie messe per limitare la corrente?

leo72:
Se non colleghi il pin 10, devi mettere dei diodi esterni.

Scusa ma il pin 10 non è un uscita?

lucatd4:

leo72: Se non colleghi il pin 10, devi mettere dei diodi esterni.

Scusa ma il pin 10 non è un uscita?

Il pin 10 dell'ULN2803 (o il 9 dell'ULN2003) e' il comune dei diodi interni ... se usi rele', elettrovalvole, o carichi induttivi, lo colleghi al positivo del carico (NON al positivo di Arduino), cosi puoi fare a meno di mettere i diodi esterni (quelli che di solito si mettono in parallelo alla bobina), se invece piloti led, lampadine, o carichi resistivi, puoi fare a meno di collegarlo.

ok, capito per i diodi. Rimane sempre il problema del disturbo su ingresso, ho provato con resistenze da 1K, 10K, 22K e 55K ma niente da fare.... se attacco e stacco la spina del saldatore acceso o del caricabat del pc si attiva un uscita...

Fai una prova ... fra +12V e VIN, un diodo (catodo verso Arduino) ... fra VIN e massa condensatore da 220uF (o 330, o 470) 25V, con in parallelo altro condensatore da 100nF ... fra i pin di ingresso (D3, D4, quelli che usi), condensatori da 100nF verso massa, e le resistenze da 10K ...

Poi, in serie ai led ci metti delle resistenze da 1K, ed i catodi li colleghi a massa (non al +5V come sono nel tuo schema :P)

Niente..... Sempre un uscita high.... non riesco a capire il perche...

Il problem puó anche derivare che non hai messo delle resistenze sui LED. Metti qualcosa tra 470 e 1kOhm.
Puoi mettere come PULLUP o PULLDOWN anche resistenza da 1kOhm; Il problema é che consumi tanta corrente quando il pulsante é premuto.
Ciao Uwe

Niente neanche con le resistenze ai led.... se le resistenze di pulldown le metto al positivo, e all'ingresso mando un gnd cambia qualcosa? posso farlo o agli ingressi digitali devo per forza mandare un 5v?

No, puoi anche collegare ground. Nel tuo caso la resistenza diventa di pull-up, quindi leggi la pressione con lo stato basso. Ergo, devi invertire la logica del codice.

Quindi in teoria dovrebbe essere meno disturbato da interferenze dovute ad accensione di carichi sulla linea di alimentazione?
Posto lo schema

Dove sono le resistenze sui LED? Ciao Uwe

opps, dimenticate nello schema ma inserite nel circuito! da 680 r

Eccole