Encodeur Rotatif

 

L'encodeur rotatif KY-040 est un dispositif d'entrée rotatif qui permet de fournir une information de position d'un bouton en communiquant les sens de rotation un nombre de positions rencontrées durant la rotation du bouton vers la gauche ou vers la droite.

C’est un excellent appareil pour le contrôle pas à pas et servomoteur. Vous pouvez également l’utiliser pour contrôler
des appareils comme les potentiomètres numériques.

 

Configuration

LCK : Sortie A de l'encodeur
DT : Sortie B de l'encodeur
SW : Bouton poussoir (option non implémentée)
+ : Alimentation 5V
GND : Masse

 Pinout Rotary Encoder

 

Cablage_KY040.jpg

Code

Cet exemple n'utilise pas de bibliothèque spécifique.

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);
    /* Read Pin A
    Whatever state it's in will reflect the last position
    */
    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;
}

 

 

 

 

© Golf-Curve. All Rights Reserved.

Free Joomla templates by L.THEME