Antirimbalzo...help!

Salve a tutti:)

E' da un po che cerco in rete un programma di esempio per l' anti-rimbalzo di pulsante normale (per cui non uno switch).

Ho visto quello proposto da casa arduino con la funzione millis()... il mio problema è che si può applicare ad un solo ingresso ... io ne avrei diversi (per esempio 3) . ho fatto diverse prove ma niente..

grazie a tutti

MD

Se devi farlo su parecchi pulsati … fallo hardware, che, oltre ad essere più affidabile, non occupa risorse software.

Alcuni esempi in allegato …

Guglielmo

debouncing_hw.pdf (22.8 KB)

Premetto che non l'ho mai usata, ma forse questa libreria fa al caso tuo. Tra gli esempi ce n'è uno con 2 pulsanti, facilmente estensibile.

Grazie mille a tutti per le risposte :)

Proverò tutte e due le soluzioni... Spero basti il filtro RC a cui avevo gia pensato, ma grazie mille lo stesso Guglielmo :)

Proverò la libreria se il circuito RC non bastasse :)

MD

non so se ho capito, anti-rimbalzo intendi le oscillazioni della tensione alla pressione del pulsante? se e' cosi... io tempo fa avevo usato un filtro software ecco un esempio piu' o meno

if(pin_read == 1){
                contatore++;
                if(contatore>=20) //esempio
                {
                  status_pin=true; //oppure status_pin=1;
                }else{
                        status_pin=false; 
                        }
                }else{
                       if(contatore>0)
                       {
                         contatore--;
                       }
                }

pero' come dice giustamente Guglielmo sprechi risorse... e se vuoi migliorare l'RC gli puoi aggiungere un trigger in serie (es 74hc14)

Credo che gli ingressi digitali siano gia "triggerati" sugli Atmel (nel senso che ci dovrebbe gia essere una discreta isteresi fra le transizioni low-high e high-low ... ;)

Per il resto, debouncing hardware per primo, specie se con molti ingressi, e se poi proprio non si risolve, si puo aggiungere quello software (o magari cambiare pulsante con uno migliore ;))