Sensore + calibrazione

Buonasera :stuck_out_tongue:

Ho un problema : un sensore ottico che restituisce in uscita un segnale analogico in base alla distanza rilevata.
In Arduino eseguo la taratura nel setup con un cartoncino posto a 3 cm di distanza adesso voglio che nel loop vi sia il riconoscimento del movimento sull'asse orizzontale (in poche parole ad uno spostamento orizzontale del cartoncino, ma non so come fare, con un if non ci riesco, pensavo di fare in questo modo : if(lettura > le-ttura + media)/2)... Ma non ne sono sicuro...

Il sensore rileva lo spostamento lungo l'asse Z, non vedo come riesca a rilevare lo spostamento sull'asse X (o Y).

Ok, ma il colore del cartoncino è diverso, passa dal nero al bianco, quindi ho una variazione dei valori analogici in uscita.

Il problema che devo risolvere è il seguente: se una volta calibrato il cartoncino poi si sposta allontanandosi e non spostandosi verso il lato bianco, rifaccio la calibrazione tenendo conto dei nuovi valori di riferimento.

...e poi, come faccio a discriminare il passaggio dal bianco al nero?
io ho pensato di fare così: (pseudo-codice) se il valore letto periodicamente è variato di un certo tot (una soglia che devo capire ancora come e su che base calcolarla...HELP???...) allora faccio 10 letture con due delay diversi per essere totalmente certo di essere nello stato bianco.

Gioblu tempo fa ha fatto dei test per il rilevamento dei colori e degli oggetti usando dei led . Potresti prendere spunto da questi progetti:

Soprattutto il led RGB come rilevatore di colore, forse potrebbe fare al caso tuo.