Discriminare ingresso analogico

Buongiorno a tutti!

Vi descrivo il mio problema: ho un sensore infrarosso che leggo in analogico attraverso il pin0 di Arduino...Vorrei discriminare le letture "spurie" come quelle che vengono attuate per i pulsanti (in buona sostanza vorrei escludere le letture ingannevoli per arduino tenendo solamente quelle che superano la soglia dei 100ms)
Insomma una specie di debounce analogico, il problema è però che essendo analogico mi risulta difficile da manovrare il segnale.

Sono a corto di idee, voi ne avete qualcuna?

Grazie. :slight_smile:

fardox:
Buongiorno a tutti!
Vi descrivo il mio problema: ho un sensore infrarosso che leggo in analogico attraverso il pin0 di Arduino...Vorrei discriminare le letture "spurie" come quelle che vengono attuate per i pulsanti

Un sensore ir non ha letture spurie dovute ai rimbalzi, è una caratteristica tipica dei contatti meccanici e non dei componenti elettronici.
Magari se ci dici di quale sensore stiamo parlando e perché ti stai ponendo un problema che non c'è riusciamo a dirti come procedere.

fardox:
Buongiorno a tutti!

Vi descrivo il mio problema: ho un sensore infrarosso che leggo in analogico attraverso il pin0 di Arduino...
Grazie. :slight_smile:

Pin A0, immagino.. Il pin 0 è digitale.

Il sensore è un tcrt5000

...forse mi sono espresso male io, non è il sensore che legge "male" ma voglio essere io ad evitare fisicamente di leggere degli oggetti che passano troppo velocemente davanti al sensore, ovvero:

Se l'oggetto passa troppo velocemente e non permane per almeno 100ms la lettura appena fatta è da scartare, al contrario se permane per più di 100ms la lettura è da memorizzare.

chiedo scusa per essermi espresso male :stuck_out_tongue:

fardox:
Se l'oggetto passa troppo velocemente e non permane per almeno 100ms la lettura appena fatta è da scartare, al contrario se permane per più di 100ms la lettura è da memorizzare.

Questo è un problema che risolvi lato software.
Al passaggio dell'oggetto fai partire un timer e controlli se il segnale dal sensore dura più di 100 m. In caso affermativo,consideri il passaggio come "buono", altrimenti lo ignori.

Non capisco perché devi fare una lettura analogica.
Ciao Uwe

Parlando di soluzioni in codice @Leo potresti indicarmi un esempio?
Grazie.

astrobeed:
Magari se ci dici di quale sensore stiamo parlando e perché ti stai ponendo un problema che non c'è riusciamo a dirti come procedere.

fardox:
l sensore è un tcrt5000
...forse mi sono espresso male io, non è il sensore che legge "male" ma voglio essere io ad evitare fisicamente di leggere degli oggetti che passano troppo velocemente davanti al sensore, ovvero:

Se l'oggetto passa troppo velocemente e non permane per almeno 100ms la lettura appena fatta è da scartare, al contrario se permane per più di 100ms la lettura è da memorizzare.

chiedo scusa per essermi espresso male :stuck_out_tongue:

Scusa non mi ricordavo che lo avevi già scritto.
D'altronde, quando sei a seguire 100 discussioni differenti, poi qualcosa te la dimentichi...

ma non c'è bisogno di URLARE.

Uhmm ma quello in sé non è un sensore di movimento, semplicemente un led ir ed un fototransistor. L'uscita che ottieni dal transistor è proporzionale alla quantità di luce emessa dal led che gli torna indietro rimbalzando su di un oggetto..
Poi dipende che fai nel tuo codice!

A me serve solamente determinare se l'oggetto posto davanti al sensore è da li da più di 100ms ed incrementare un contatore. :smiley:

fardox:
A me serve solamente determinare se l'oggetto posto davanti al sensore è da li da più di 100ms ed incrementare un contatore. :smiley:

  1. leggo il sensore
  2. se il sensore non "vede" niente, torno al punto 1)
  3. se il sensore "vede" qualcosa, inizio a contare
  4. se il sensore non "vede" più nulla e sono passati meno di 100 ms, torno al punto 1)
  5. se giungo qui, sono passati di 100 ms ed il sensore continua a "vedere" qualcosa, per cui eseguo l'operazione X
  6. torno ad 1)

E allora per capire se effettivamente c'è qualcosa davanti (retta) e non vuoi sapere a che distanza, devi prendere un range di valori di riferimento che indicano la condizione di normalità. Ora nel tuo caso è una questione un po' più delicata visto che parliamo di luce, il sensore come e dove sarà posizionato?

Il range di valori è ormai ben noto, si tratta di valori oscillanti tra 600 e 800.
Per cui il problema dei valori da tenere in considerazione non si pone. :slight_smile:

E allora ti ha risposto leo XD

Suggerimento :stuck_out_tongue: