Wenn ich das so wie in #3 mache, ist der Startwert 255. Diesen muss ich dann auf 0 runter regeln. Danach geht der Wert von 0 bis 23 und von 23 bis 0.
#include <LiquidCrystal.h>
LiquidCrystal lcd(8, 9, 4, 5, 6, 7);
int messungPin1 = LOW;
int messungPin1Alt = LOW;
byte encoderWert = 0xff; // -1 ( eins weniger als 0 ) == 255
int encoderWertA = encoderWert %24; // 255 % 24 =15
void setup() {
pinMode(10, INPUT);
pinMode(11, INPUT);
Serial.begin(9600);
lcd.begin(16, 2);
lcd.setCursor(0, 0);
lcd.print("Encoder");
lcd.setCursor(0, 1);
lcd.print("Test");
delay (2000);
lcd.clear();
}
void loop() {
messungPin1 = digitalRead(10);
if ((messungPin1 == HIGH) && (messungPin1Alt == LOW)) {
if (digitalRead(11) == HIGH) {
if (encoderWert < 23) encoderWert++ ;
} else {
if (encoderWert > 0) encoderWert-- ;
}
Serial.println (encoderWertA);
lcd.begin(16, 2);
lcd.setCursor(0, 0);
lcd.print("Wert");
lcd.setCursor(0, 1);
lcd.print(encoderWert);
}
messungPin1Alt = messungPin1;
}