Contenido
1 – Descripción.
Este encoder detecta la rotación tanto en un sentido como en otro dando como resultado una señal digital. Dependiendo del sentido al que hagas girar el encoder crecerá el valor de la señal digital o decrecerá.
Este encoder en concreto es de 10 k, trabaja con una tensión de 5 voltios VDC, dispone de 4 pines, Tierra, positivo, el CLK que recoge los valores cuando mueves el eje del encoder en un sentido, el pin DT que recoge los valores cuando mueves el encoder en dirección opuesta al CLK, y el pin SW que envia una señal HIGH cuando es presionado el eje.
2 – Datos técnicos.
Tensión de trabajo 5 VDC
Resistencia del encoder 10 k
Pin SW – entrada digital, da un valor HIGH cuando es activado.
Pin CLK – envía valores digitales cuando mueves el encoder en sentido las agujas de un reloj.
Pin DT – envía valores digitales cuando mueves el encoder en sentido contrario a las agujas de un reloj.
3 – Programación.
int pinCLK = 14; int pinDT = 12; int pinEje = 13; int encoderPosCount = 0; int pinCLKLast; int aVal; boolean bCW; void setup() { pinMode (pinCLK,INPUT); pinMode (pinDT,INPUT); pinCLKLast = digitalRead(pinCLK); Serial.begin (115200); } void loop() { aVal = digitalRead(pinCLK); if (aVal != pinCLKLast){ if (digitalRead(pinDT) != aVal) { encoderPosCount ++; bCW = true; } else { bCW = false; encoderPosCount--; } Serial.print ("Rotated: "); if (bCW){ Serial.println ("clockwise"); }else{ Serial.println("counterclockwise"); } Serial.print("Encoder Position: "); Serial.println(encoderPosCount); } pinALast = aVal; }
Deja una respuesta Cancelar la respuesta