L’encodeur rotatif fonctionne comme une roue codeuse et ressemble fortement à un potentiomètre.
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 encodeur rotatif Arduino
- CLK -> pin 3 de l’Arduino
- DT -> pin 4 de l’Arduino
- + -> 5V de l’Arduino
- GND -> GND de l’Arduino
Code Arduino encodeur rotatif
int pinA = 3; // CLK
int pinB = 4; // DT
int encoderPosCount = 0; // position de départ
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 ("Rotation: ");
if (bCW){
Serial.println ("horaire");
}else{
Serial.println("Anti horaire");
}
Serial.print("Position: ");
Serial.println(encoderPosCount);
}
pinALast = aVal;
}
Dans ce cas de figure si vous tournez votre encodeur rotatif dans le sens des aiguilles d’une montre vous verrez s’afficher: « Rotation: Horaire ». Ainsi que sa rotation. Inversément dans le sens inverse vous verrez s’afficher « Rotation: Anti horaire ».
C’est court, bien trop court par rapport aux articles habituels alors je vous liste trois très bonnes sources ci-dessous.
0 commentaires