Il condensatore antirimbalzo, se messo in parallelo a un pulsante che chiude verso massa, normalmente è carico a +V tramite la resistenza di pull-up; premendo il pulsante, che lo cortocircuita direttamente o tramite una resistenza da circa 100 ohm, si scarica quasi istantaneamente a circa 0V e viene rilevato che il pulsante è stato premuto. Se il pulsante fa falso contatto durante la pressione, aprendosi per qualche istante e richiudendosi subito dopo, anche ripetutamente, il condensatore non fa in tempo a ricaricarsi, facendo variare la tensione, ad esempio, tra 0 e 0,3V: in tali condizioni verrà comunque visto come premuto. Solo lasciando il pulsante, la tensione comincerà a salire con una costante di tempo pari a R*C (dove R è la resistenza da 22kOhm o simile) e, raggiunta la tensione di soglia degli ingressi digitali dell'ATMega328P (circa 3V: dovrei andare a controllare sul datasheet), potrà essere letto come aperto.
Datman:
- A proposito del pull-down:
Non è per caso che le resistenze all'interno del microcontrollore sono di pull-up! La chiusura a massa è uno standard per gli apparati, per molteplici ragioni:
- La massa è quasi sempre disponibile ...
- Portare il positivo è pericoloso: ...
- La massa è la stessa anche tra apparati alimentati a tensioni differenti: ...
Se si parla di circuiti / schede locali chiudere al riferimento comune è la cosa più semplice, ma se non sbaglio in ambito PLC per i comandi remoti si fa il ragionamento inverso: un guasto verso massa (che può corrispondere ad una terra estesa) è più probabile, quindi per evitare azionamenti non voluti si comanda dal "positivo". Inoltre la logica ha un'alimentazione indipendente dalla segnalazione remota 12/24V.
Il "caso Arduino" (in quanto semplice board per esperimenti) è un terreno scivoloso, perché pull-up o pull-down che sia, lavorare con segnali remoti a soli 5V senza disaccoppiamenti è comunque fonte di potenziali problemi (e pull-down anche di più se si portano in giro direttamente i 5V della logica).
Nel caso del circuito in questione è tutto locale e le pull-up interne con un condensatore 220nF esterno sono la soluzione più comoda e funzionale.
cinquevolt:
metafora chiarissima, grazie
hmm capisco, ma in genere preferisco il sw opensource a quello closed, ed in particolare autodesk mi sta un po' lì per le sue oscene politiche e i prezzi astronomici...
Ciao.
Come open source ti segnalo kicad.
Ciao
pippo72
Claudio_FF:
Se si parla di circuiti / schede locali chiudere al riferimento comune è la cosa più semplice, ma se non sbaglio in ambito PLC per i comandi remoti si fa il ragionamento inverso: un guasto verso massa (che può corrispondere ad una terra estesa) è più probabile, quindi per evitare azionamenti non voluti si comanda dal "positivo". Inoltre la logica ha un'alimentazione indipendente dalla segnalazione remota 12/24V.
A maggior ragione se l'alimentazione remota è a 12/24 non dovrebbe essere più "comodo" comandare dal negativo, visto che gnd è sempre gnd mentre il + è diverso?!?
Il "caso Arduino" (in quanto semplice board per esperimenti) è un terreno scivoloso, perché pull-up o pull-down che sia, lavorare con segnali remoti a soli 5V senza disaccoppiamenti è comunque fonte di potenziali problemi (e pull-down anche di più se si portano in giro direttamente i 5V della logica).
Nel caso del circuito in questione è tutto locale e le pull-up interne con un condensatore 220nF esterno sono la soluzione più comoda e funzionale.
Disaccoppiamenti intendi fotoaccoppiatori per evitare disturbi? Perchè nel mio caso la "tastiera" sarebbe a circa 1 m dall'arduino, quindi non "localissima", e in una zona che nel muro è piena di cavi 220...
pippo72:
Ciao.
Come open source ti segnalo kicad.
grazie. magari lo provo. ![]()
Rispetto a Eagle e Fritzing che differenze hai riscontrato?
Fritzing... lascia perdere: ottimo per fare le immagini dei collegamenti, niente di più.
Eagle è il più consigliato in questo forum.
Io ho scelto kicad perché lo ho trovato più semplice da apprendere rispetto a Eagle e comunque molto potente per un hobbista. Riesce a generare i file gerber che servono per farti produrre la scheda da un service. Pcbway (service cinese per la produzione di pcb) fornisce un link delle corrette impostazioni da usare.
Queste le mie personali valutazioni.
Ciao
Pippo72
Ok, nuova versione tutta diversa (per ora sempre in Fritzing perchè non ho tempo per questa scheda di imparare da 0 un nuovo soft).
Seguendo gli schemi proposti per il debounce hw ed i consigli sui valori di R e C, ho fatto (spero :D) una scheda adattabile per pullup interno, esterno e pulldown a seconda dei componenti montati e con antirimbalzo hw.
- Cortocircuitando J1 e installando le Rd i pulsanti sono alimentati con il +5V (pista arancione più scuro) e lavorano in pulldown.
- Oppure cortocircuitando J2, i pulsanti sono a gnd e lavorano in pullup interno; aggiungendo le Ru in pullup esterno
Naturalmente o si collega J1 o J2, altrimenti si fa una frittata di Atmel ![]()
Potente gentilmente guadare se è effettivamente così nelle 3 casistiche o se ho fatto qualche emerita ca###ta nei collegamenti? Se poi è tutto ok aggiungo il piano massa. Grazie mille! ![]()
Se anziché J1 e J2 utilizzi solo tre spadini, inserendo il ponticello tra un estremo e il centrale, eviti la possibilità di cortocircuito.
Datman:
Se anziché J1 e J2 utilizzi solo tre spadini, inserendo il ponticello tra un estremo e il centrale, eviti la possibilità di cortocircuito.
vero. Ma per un verso sono sui lati opposti della scheda per cui è scomodo portare + e gnd dallo stesso lato, dall'altra visto che tanto poi le R le saldo, pensavo di mettere direttamente una goccia di stagno su J1 o J2 e fare una configurazione "definitiva", a seconda di com'è il resto dei componenti saldati. Insomma, non prevedo riconfigurazioni "al volo" senza il saldatore, quindi fare un corto saldandoli entrambi è improbabile (dovrei proprio essere ubriaco forte :D)
per il resto ti sembra che debba funzionare come previsto? i valori quadrano? ![]()
Per quello che ho visto, sembra tutto a posto.
cinquevolt:
A maggior ragione se l'alimentazione remota è a 12/24 non dovrebbe essere più "comodo" comandare dal negativo, visto che gnd è sempre gnd mentre il + è diverso?!?
Nel caso di PLC non è detto che i GND siano collegati, e comunque in una lunga tratta possono esserci tensioni differenti (a casa di induzioni o forti correnti) nei vari punti anche se il filo è lo stesso.
Disaccoppiamenti intendi fotoaccoppiatori per evitare disturbi? Perchè nel mio caso la "tastiera" sarebbe a circa 1 m dall'arduino, quindi non "localissima", e in una zona che nel muro è piena di cavi 220...
L'unica possibile criticità che vedo è usare la r-pull interna, che è troppo elevata per collegamenti non vicinissimi e sente troppo i disturbi. Ne va messa una esterna da 1k e ok così.
Per il resto la teoria vuole che un ingresso sia disaccoppiato, a bassa impedenza, ad elevata inerzia.
ora mi viene il dubbio che 12 led (2 pcb affiancati) non si riescano ad accendere tutti insieme, visto che questa "tastiera" è solo di "programmazione", ma poi ci sono anche 12 uscite effettive che alimentano 3 ULN2803...
Un arduino mega regge l'amperaggio di 12 led accesi in continuo più 3 ULN?
