// Pin definitie
const int clkPin = 6;
const int dtPin = 7;
// Variabele om de encoderwaarde op te slaan
int encoderValue = 0;
// Variabelen om de vorige status van de CLK en DT op te slaan
int lastClk = LOW;
int lastDt = LOW;
void setup() {
// Stel de pinmodi in met interne pull-up weerstanden
pinMode(clkPin, INPUT_PULLUP);
pinMode(dtPin, INPUT_PULLUP);
// Start de seriële communicatie
Serial.begin(9600);
// Lees de initiële status van de CLK en DT
lastClk = digitalRead(clkPin);
lastDt = digitalRead(dtPin);
}
void loop() {
// Lees de huidige status van de CLK en DT
int currentClk = digitalRead(clkPin);
int currentDt = digitalRead(dtPin);
// Controleer of de CLK veranderd is
if (currentClk != lastClk) {
// Bepaal de richting door de status van de DT te controleren
if (currentDt != currentClk) {
encoderValue++;
} else {
encoderValue--;
}
// Print de bijgewerkte encoderwaarde
Serial.print("Encoder Value: ");
Serial.println(encoderValue);
}
// Werk de laatste CLK status bij
lastClk = currentClk;
// Voeg een kleine vertraging toe om debounce te helpen
delay(1);
}