Saluti a tutti,
nell'ambito di un progetto che sto portando avanti :
https://forum.arduino.cc/index.php?topic=672044.0
avevo scritto uno sketch per utilizzare con arduino Leonardo un controllo tipo joystick, un encoder rotativo e alcuni pulsanti.
inizialmente tutto funzionava ma, ad un certo punto, mi sono visto costretto a cambiare scheda per questioni di spazio e sono quindi passato dalla Leonardo ad una Micro.
una volta installato la nuova scheda, vi ho caricato lo sketch e mi sono accorto che l'encoder rotativo non funzionava più correttamente e che la rotellina del mouse che comandava, muoveva sempre nella medesima direzione. Ho quindi provato a riportare il tutto sulla scheda Leonardo, ma anche qui l'encoder funzionava solo più in un senso. Nella mia enorme inesperienza ho quindi pensato di avere in qualche modo danneggiato l'encoder e ne ho acquistati altri che sono arrivati oggi.
Con mia sorpresa ho provato a collegarne uno ma il risultato non cambia.
Adesso non sò piu che pesci pigliare, cosa puè determinare questo problema ?
Ricordo di essere partito per scrivere la parte di codice che comandava l'encoder da uno sketch trovato in rete che mostrava la rotazione dell'encoder stampando un valore sul serial monitor
int valore = 0;
int letturaPrecedente = HIGH;
void setup() {
pinMode (3,INPUT_PULLUP);
pinMode (4,INPUT_PULLUP);
Serial.begin (9600);
}
void loop() {
int n = digitalRead(3);
if ((letturaPrecedente == HIGH) && (n == LOW)) {
if (digitalRead(4) == HIGH) {
valore--;
} else {
valore++;
}
Serial.println(valore);
}
letturaPrecedente = n;
}
Anche in questo caso, ricordo bene che tutto funzionava e, sul monitor seriale, vedevo il valore crescere e decrescere a seconda della rotazione oraria o antioraria dell'encoder.
Ora invece vedo solo aumentare il valore indipendentemente dal senso di rotazione dell'encoder. Cosa puo' essere successo ?
Grazie dell'attenzione.
Lorenzo