L’encodeur rotatif fonctionne comme une roue codeuse. J’ai vu ce petit module dans une vidéos que je retrouve hélas pas mais j’en voulais un absolument! 🙂

Ce dont vous aurez besoin

 Branchements

rotatif

  • CLK -> pin 3 de l’Arduino
  • DT -> pin 4 de l’Arduino
  • + -> 5V de l’Arduino
  • GND -> GND de l’Arduino

Code

int pinA = 3;  // Connected to CLK on KY-040
int pinB = 4;  // Connected to DT on KY-040
int encoderPosCount = 0; 
int pinALast;  
int aVal;
boolean bCW;

void setup() { 
  pinMode (pinA,INPUT);
  pinMode (pinB,INPUT);
  pinALast = digitalRead(pinA);   
  Serial.begin (9600);
} 

void loop() { 
  aVal = digitalRead(pinA);
  if (aVal != pinALast){ // Means the knob is rotating
    // if the knob is rotating, we need to determine direction
    // We do that by reading pin B.
    if (digitalRead(pinB) != aVal) {  // Means pin A Changed first - We're Rotating Clockwise
      encoderPosCount ++;
      bCW = true;
    } else {// Otherwise B changed first and we're moving CCW
      bCW = false;
      encoderPosCount--;
    }
    Serial.print ("Rotated: ");
    if (bCW){
      Serial.println ("clockwise");
    }else{
      Serial.println("counterclockwise");
    }
    Serial.print("Encoder Position: ");
    Serial.println(encoderPosCount);
    
  } 
  pinALast = aVal;
} 

 

C’est court, bien trop court par rapport aux articles habituels alors je vous liste trois très bonnes sources ci-dessous.

Source | Source | Source

 

 

Pin It on Pinterest

Share This