Pagina 1 di 1

problema di debounce con sensore a forcella

MessaggioInviato: 16 giu 2017, 21:43
da luchinho
Ciao a tutti, questa è la mia prima domanda su questo forum, spero potiate aiutarmi per un problema che non riesco a risolvere.

Ho un sensore a forcella modello FC-33 per arduino per rilevare una velocità, a livello software sono a posto ma il vero problema è hardware o meglio è il debounce che si crea a basse velocità, nonostante abbia cambiato sensore "sempre a forcella ma diverso modello" si riperquote e nonostante abbia provato un filtro passa basso con 44 nF e 10 ohm non si risolve.

Ho sbagliato valori? se si cosa dovrei mettere?
Che altri modi ci sono per evitare questo fenonmeno ci sono dei sensori che eliminano già qusto fenomeno?

Grazie. Luca.

Re: problema di debounce con sensore a forcella

MessaggioInviato: 16 giu 2017, 21:49
da xyz
Di solito si interviene via hardware o via software o tutte e due, ti consiglio di leggere questi link:

https://hackaday.com/2015/12/09/embed-w ... ns-part-i/
https://hackaday.com/2015/12/10/embed-w ... s-part-ii/

Re: problema di debounce con sensore a forcella

MessaggioInviato: 17 giu 2017, 10:57
da luxinterior
Per il software io faccio così:
leggo a tempo (il periodo di tempo dipende dal tuo segnale)
memorizzo le ultime tre letture
poi applico questa formula (Nell'ipotesi che tasto premuto l'ingresso sia letto a 1)

[In(t-1) and In(t)] or [In(t-1) and In(t-2)] or [In(t) and (In(t-2)] = stato attuale dei tasti

In pratica se almeno due delle ultime tre letture il tasto è letto a 1 allora lo considero premuto

Per l'hw il fronte dell' RC non è ripido ti toglie i disturbi in alta frequenza non credo possa aiutati con i rimbalzi.
Ovviamente se metti un filtro pesante hw hai anche il rovescio della medaglia che quando il segnale si muove tu lo vedi salire in ritardo.

Per me va bene l'RC per attenuare i disturbi oltre una certa frequenza, per il resto risolvi con il sw. Io ho sempre utilizzato il sistema che ti ho descritto sopra per dei tasti utilzzo circa 20ms di periodo tra due letture.

Re: problema di debounce con sensore a forcella

MessaggioInviato: 17 giu 2017, 11:21
da xyz
Io leggo un numero dispari di volte l'input con un piccolo ritardo tra una lettura e l'altra, conto quante volte leggo 0 o 1, chi totalizza il numero maggiore vince.

Re: problema di debounce con sensore a forcella

MessaggioInviato: 17 giu 2017, 11:52
da EcoTan
luchinho ha scritto:debounce che si crea a basse velocità, nonostante abbia cambiato sensore "sempre a forcella ma diverso modello"

Ci sono vibrazioni? Giochi? Fermate? Sporcizia? I settori del disco hanno bordi confusi? Penso che il rimedio sia nel software ma vada comunque adattato alla causa del problema.

Re: problema di debounce con sensore a forcella

MessaggioInviato: 18 giu 2017, 20:35
da luchinho

questo link mi ha fatto capire la parte hardware, anche se quella software essendo che uso arduino perciò c++, quel linguaggio non lo so bene

EcoTan ha scritto:Ci sono vibrazioni? Giochi? Fermate? Sporcizia? I settori del disco hanno bordi confusi? Penso che il rimedio sia nel software ma vada comunque adattato alla causa del problema.


si ci sono delle vibrazoni oltre al fatto che ci sono anche cambiamenti contnui di luce, questo potrebbe far variare i valori?

Re: problema di debounce con sensore a forcella

MessaggioInviato: 18 giu 2017, 22:17
da EcoTan
Sia alcuni tipi di luce artificiale sia quella solare specialmente attraverso vetri con effetto serra, agiscono sui sensori infrarossi, però essendo un tipo a forcella non dovrebbe essere difficile schermarlo.
Alcune MCU dispongono di un filtro hardware, comunque si può fare anche a software e si tratta di aspettare un certo numero di letture consecutive concordanti prima di convalidare il livello alto o basso. Questo in generale, di Arduino non so.

Re: problema di debounce con sensore a forcella

MessaggioInviato: 20 giu 2017, 21:23
da luchinho
EcoTan ha scritto: però essendo un tipo a forcella non dovrebbe essere difficile schermarlo.


nonostante ci siano delle vibrazioni?

EcoTan ha scritto: a software e si tratta di aspettare un certo numero di letture consecutive concordanti prima di convalidare il livello alto o basso. Questo in generale, di Arduino non so.


grazie ci proverò

Re: problema di debounce con sensore a forcella

MessaggioInviato: 21 giu 2017, 13:44
da EcoTan
luchinho ha scritto:nonostante ci siano delle vibrazioni?

Dicevo che il sensore a forcella non è difficile schermarlo fisicamente dagli infrarossi presenti nell'ambiente, poi se ci sono vibrazioni tali da alterare il segnale all'uscita del sensore, quelle andrebbero eliminate dal software,
Non è che si possono fare miracoli, se il segnale è incerto rimane tale. Se poi sono vere e proprie inversioni del senso di rotazione, allora ci vuole un secondo sensore in quadratura e una MCU o un firmware capaci di interpretare il senso di rotazione e conteggiare i passi.

Re: problema di debounce con sensore a forcella

MessaggioInviato: 22 giu 2017, 21:29
da luchinho
EcoTan ha scritto:Dicevo che il sensore a forcella non è difficile schermarlo fisicamente dagli infrarossi presenti nell'ambiente, poi se ci sono vibrazioni tali da alterare il segnale all'uscita del sensore, quelle andrebbero eliminate dal software,
Non è che si possono fare miracoli, se il segnale è incerto rimane tale.


chiaro ho capito, bisogna modificare il software

Grazie EcoTan