filtrare ingresso digitale

Salve ragazzi,
ho collegato un pulsante (tramite resistenza di pull down) ad un ingresso digitale di arduino, purtroppo a causa di disturbi esterni, mi succede che l'ingresso venga attivato indesideratamente.
Ho visto in rete alcuni circuiti anti rimbalzo....volevo capire pero' lo schema preciso e, secondo voi, quali fossero i valori di resistenza e capacità da adottare, considerando che ho bisogno che la pressione del pulsante venga rilevata nel minore tempo possibile e che viene ripremuto solo dopo alcuni secondi...
grazie a tutti

Nel primo allegato alcuni tipici schemi fatti solo con R/C, nel secondo, il migliore, fatto però usando IC esterno ...

Guglielmo

debouncing_hw.pdf (22.8 KB)

Debouncer SetReset.pdf (14.8 KB)

Grazie guglielmo, allora quello che fa al caso è lo schema 3 del primo file, secondo te posso adottare gli stessi valori di C ed R?

Secondo me si, io l'ho fatto e non ho problemi.
Ciao

domix1684:
Grazie guglielmo, allora quello che fa al caso è lo schema 3 del primo file, secondo te posso adottare gli stessi valori di C ed R?

Inizia con quelli e procedi a modificarli solo se il filtraggio è insufficiente.

Guglielmo

Grazie ragazzi, ma ci sono dei valori oltre i quali comprometto la reattivita di lettura dell impulso del pulsante?

Cos'è per te una sufficiente reattività? Cinque centesimi di secondo (che è un normale tempo di debounch) è troppo lento?

I filtri indicati da gpb01 sono ancora più veloci (secondo me troppo ma vabbè, se empiricamente funzionano ne prendo atto), il condensatore potrebbe salire anche a 220nF che secondo me non noti ritardi. Tra l'altro il ritardo è più sul rilascio che sull'attacco, per cui il riconoscimento della pressione avviene in pochissimi millisecondi, mentre quello sul rilascio potrebbe ritardare quei pochi centesimi si secondo.

Grazie Claudio,
avere una sufficiente reattività (necessaria per la mia applicazione) significa un ritardo ammissibile di 1 cent di secondo il contatto ed il rilevamento. in rilascio non mi importa posso aspettare anche 2 secondi prima di dare l'altro impulso di salita.

Detto ciò secondo voi potrei mettere questi valori?

R filtro 1kohm
R pull down 1k
C 1micro F

Salve ragazzi,
ho provato il circuito suggerito da guglielmo (antirimbalzo con resistenza pull down) ma il filtraggio è insufficiente, ovvero arduino legge stati alti anche quando non premo il pulsante.
Come posso cominciare a modificare i valori??
grazie

Come posso cominciare a modificare i valori??

Si, puoi aumentare il condensatore e diminuire la resistenza da 22K
Esempio 100nF ( 0.1µF ) e 10K
Ma il problema , se si tratta di un pulsante, secondo me arriva da un'altra parte

Brunello:
Si, puoi aumentare il condensatore e diminuire la resistenza da 22K
Esempio 100nF ( 0.1µF ) e 10K
Ma il problema , se si tratta di un pulsante, secondo me arriva da un'altra parte

Grazie brunello, ma sono sicuro che il problema siano i disturbi dovuti ad un alternatore, ho problemi solo quando l'auto è accesa.

Altra domanda: che ruolo gioca in questo caso la costante di tempo RC rispetto alla velocità di rilevamento della pressione del tasto?
grazie a tutti

1 ms circa.

sono sicuro che il problema siano i disturbi dovuti ad un alternatore, ho problemi solo quando l'auto è accesa.

Appunto, cosa ti fa credere che il disturbo entri proprio dal pulsante ?

perche oltre ad avere impulsi quando non premo il pulsante, si verificano (raramente) piu rilevamenti di impulsi quando premo e rilascio il pulsante.
Probabilmente si manifestano sia problemi dovuti a disturbi esterni, sia problemi di rimbalzo del pulsante.
Con questo circuito, essendo comunque un filtro pensavo di risolverli entrambi.

domix1684:
... l'auto è accesa.
...

Automobile = una marea di disturbi di tutti i tipi sul 12V = problemi a volonta'. a meno che tutto quanto non sia fatto come si deve (e per tutto quanto intendo anche riempire di filtri tutte le alimentazioni)

Sarebbe sempre bene, se si usa arduino o una qualsiasi MCU in auto, progettarci intorno per prima cosa un'adeguata sezione di alimentazione (come minimo, diodo in serie al positivo, piu un paio di condensatori, 100n + 220u, piu un bel filtro induttivo, piu un'altro paio di condensatori, ed ovviamente prevedere un qualche tipo di contenitore metallico per schermare il tutto) ... se poi ci sono fili che se ne vanno in giro per l'auto e devono portare segnali o comandi alla MCU, sempre usare filtri RC come minimo, e se i segnali vengono dall'impianto anche zener a protezione degli ingressi ... e non sottovalutate i fili che portano fuori comandi dalla MCU verso l'auto, anche li sarebbero sempre da usare come minimo uscite open-collector ...

Poi gli antirimbalzo servono sempre, ma anche il resto ...

grazie etenemaki,
diciamo che il mio progetto è uno strumento che non si interfaccia con nessun componente dell'auto. Dall'auto prendo "solo" l'alimentazione trasformata a 5V con una classica interfaccia presa accendisigari --> usb.

Quindi se ho ben capito, inserendo un adeguato circuito di filtraggio a monte dell'alimentazione potrei risolvere, anche se non uso particolare filtraggio ad hoc per l'ingresso in questione?

Vedere uno schema di ciò che hai fatto sarebbe utile...

Ciao Datman, ho usato il circuito postato da gpb01 (a prima pagina) inizialmente ho usato i valori come da schema ma continuavo ad avere disturbi, adesso ho variato i valori ed ho risolto:

C= 100nF
R= 100K

Grazie a tutti.