He pasado la última hora intentando que un codificador incremental funcione con un módulo mbed.
Keyes KY-040 Rotary Encoder
enlace
LPC1768 mbed module
os.mbed.com/platforms/mbed-LPC1768
El código que he escrito es el siguiente:
#include "QEI.h"
Serial pc(USBTX, USBRX);
//Use X4 encoding.
//QEI wheel(p29, p30, NC, 624, QEI::X4_ENCODING);
//Use X2 encoding by default.
QEI wheel (p5, p6, NC, 20);
DigitalOut led1(LED1);
DigitalOut led2(LED2);
DigitalOut led3(LED3);
DigitalOut led4(LED4);
int main() {
int x;
led1 = 0;
led2 = 0;
led3 = 0;
led4 = 0;
while(1){
x = wheel.getPulses() % 4;
if (x == 0){
led1 = 1;
led2 = 0;
led3 = 0;
led4 = 0;
} else if (x == 1) {
led1 = 0;
led2 = 1;
led3 = 0;
led4 = 0;
} else if (x == 2) {
led1 = 0;
led2 = 0;
led3 = 1;
led4 = 0;
} else if (x == 3) {
led1 = 0;
led2 = 0;
led3 = 0;
led4 = 1;
}
}
}
He intentado ambas resistencias de subir y bajar en las líneas, pero el mbed no muestra ningún signo de procesamiento de estas. Con toda probabilidad, he cometido un error de cableado.
¿Alguien tiene un esquema que pueda seguir sobre cómo conectarlo correctamente?