Кодирование X1, X2, X4 для кодеров в Arduino - PullRequest
0 голосов
/ 23 марта 2020

Итак, я кодирую кодировщик в Arduino, и я не уверен, какой тип кодирования я использую в своем коде. Мне также любопытно, как будет выглядеть кодировка X1, X2 и X4 в коде Arduino. Ниже приведен код, который я использовал.

    #include <SoftwareSerial.h>
    #define outputA 5 //channel A
    #define outputB 6 //channel B
    int counter = 0;
    int degree = 0;
    int aState;
    int aLastState;
    encoderPPR = 2048 //real ppr*2

    void setup() {
      pinMode (outputA, INPUT_PULLUP);
      pinMode (outputB, INPUT_PULLUP);

      Serial.begin(9600);
      //Reads the initial state of the outputA
      aLastState = digitalRead(outputA);
    }

    void loop(){
      aState = digitalRead(outputA); //reads the 'current' state of the outputA
      if (aState != aLastState) {                 //if there's a shift (perubahan)
      if (digitalRead(outputB) != aState) {
         counter ++;
      } else {
         counter --;
      }
     if (counter > encoderPPR or counter < -encoderPPR)
      {
        counter = 0;
      }
     }
    derajat = counter * 360 / encoderPPR;
    aLastState = aState;
}

    }

Это код, который я использовал. Используется ли кодировка выше X2 или X4, потому что я сам не уверен. Спасибо.

...