#define ENC_DT 6
#define ENC_CLK 7
int lastCLK;
unsigned long lastMoveTime = 0;
void setup() {
pinMode(ENC_CLK, INPUT_PULLUP);
pinMode(ENC_DT, INPUT_PULLUP);
Serial.begin(9600);
lastCLK = digitalRead(ENC_CLK);
}
void loop() {
int currentCLK = digitalRead(ENC_CLK);
if (currentCLK != lastCLK) {
delayMicroseconds(150);
if (digitalRead(ENC_CLK) == LOW) {
if (digitalRead(ENC_DT) != currentCLK) {
Serial.println("RIGHT");
} else {
Serial.println("LEFT");
}
lastMoveTime = millis();
}
}
// если руль не крутят — центрируем
if (millis() - lastMoveTime > 120) {
Serial.println("STOP");
lastMoveTime = millis() + 999999;
}
lastCLK = currentCLK;
}