rotatif

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

Détails concernant l’achat

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