Rotary Encoder non risponde come dovrebbe. Valori sballati !!

Grazie per le risposte! :slight_smile:
Si, con lo sketch di prova funziona bene, e naturalmente i risultati li scrive solo sul monitor seriale.

Etemenanki:
Mi viene un dubbio quando dici che ruotando molto lentamente funziona ... non e' che le funzioni di lettura del DHT e di pilotaggio del display richiedono troppo tempo, rispetto alla differenza di tempo fra i due impulsi dell'encoder, per cui se giri troppo velocemente se li perde ?

In quel caso sarebbe meglio usare almeno un'interrupt (uno solo per un'encoder ruotato a mano e' piu che sufficente) attivato sul "rising" (o falling, dipende da come l'encoder e' cablato elettricamente) di uno dei due pin ... all'interno della ISR controlli lo stato dell'altro pin, se e' alto stai girando in un senso, se e' basso stai girando nell'altro, sempre ...

Questo mi sembra plausibile ... ma ripeto dio davvero davvero sono a zero! Ad esempio, se giro uno scatto ogni 5 secondi succede questo: Il display parte dal valore zero. Ruoto e passa moooolto velocemente da 1 e torna a zero.

Se invece ruoto lentamente, accompagnando tra uno scatto e l'altro allora legge bene, anche se sono continuo e costante nel ruotare.

Purtroppo io non so davvero cosa sia e come si inserisca un interrupt!. Diciamo che per il grezzo lavoro al quale sarebbe destinato (dovrebbe ad un determinato valore di umidità far scattare un relè) non sarebbe un grosso problema ruotare lentamente .... ma vorrei anche capire come mai!

Sapete, quando uno si intestardisce! :smiley:

Grazie!!!!