Загрузка данных


#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;
}