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.
problema di debounce con sensore a forcella
Moderatori:
g.schgor,
IsidoroKZ
10 messaggi
• Pagina 1 di 1
0
voti
0
voti
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/
https://hackaday.com/2015/12/09/embed-w ... ns-part-i/
https://hackaday.com/2015/12/10/embed-w ... s-part-ii/
0
voti
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.
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.
-

luxinterior
4.311 3 4 9 - Master EY

- Messaggi: 2690
- Iscritto il: 6 gen 2016, 17:48
0
voti
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.
0
voti
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.
0
voti
xyz ha scritto:https://hackaday.com/2015/12/09/embed-w ... ns-part-i/
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?
0
voti
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.
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.
0
voti
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ò
0
voti
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.
0
voti
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
10 messaggi
• Pagina 1 di 1
Torna a Elettrotecnica generale
Chi c’è in linea
Visitano il forum: Nessuno e 20 ospiti

Elettrotecnica e non solo (admin)
Un gatto tra gli elettroni (IsidoroKZ)
Esperienza e simulazioni (g.schgor)
Moleskine di un idraulico (RenzoDF)
Il Blog di ElectroYou (webmaster)
Idee microcontrollate (TardoFreak)
PICcoli grandi PICMicro (Paolino)
Il blog elettrico di carloc (carloc)
DirtEYblooog (dirtydeeds)
Di tutto... un po' (jordan20)
AK47 (lillo)
Esperienze elettroniche (marco438)
Telecomunicazioni musicali (clavicordo)
Automazione ed Elettronica (gustavo)
Direttive per la sicurezza (ErnestoCappelletti)
EYnfo dall'Alaska (mir)
Apriamo il quadro! (attilio)
H7-25 (asdf)
Passione Elettrica (massimob)
Elettroni a spasso (guidob)
Bloguerra (guerra)



