Está en la página 1de 6

CONTADOR DE PULSOS DE ENCODER CON ARDUINO

(Recomiendo conocer primero el funcionamiento de los encoders, pueden ver este link y/o
buscar por otras fuentes)

Los encoders tienen como principio generan seales digitales en respuesta al movimiento,
sea de un disco o cinta perforada.

stos se utilizan, en su mayora de las aplicaciones, para el control de posicin y/o velocidad de
un motor. Considerando bsicamente el nmero de pulsos ledo y la cantidad de ranuras que
existen en un disco o cinta para controlar una posicin especfica o una velocidad.

Sin embargo, este post se centrar en realizar el conteo de pulsos que genera un encoder. Para
ello se necesitar el sensor optoacoplador y el disco o cinta ranurada, resistencias que se
especifican en el circuito ms adelante y la placa Arduino.

Recomendacin: Si se desea fabricar uno disco recomiendo utilizar programas


(como OPTICAL ENCODER CODEWHEEL GENERATOR) que puedan disear stos e
imprimirlos en cartulinas, tres o cuatro y pegarlas; pegar una hoja de cartulina impresa en un
cartn. Pero no utilizar plstico a no ser que se pegue una cartulina impresa a cada lado.

Bueno, el sensor optoacoplador generar pulsos de acuerdo a cuantas franjas blancas o


transparentes detect. Estos pulsos sern contados por Arduino.

Como se sabe la sensibilidad de los sensores, es posible que en algunos casos no est claro un
pulso y exista errores pequeos que con el tiempo se van haciendo muy notorios y eso afecta el
objetivo final. Razn suficiente para aadir un circuito extra un programa especfico. En este
caso expongo el primero, aadiendo un disparador Schmitt (74LS14) previniendo dicho ruido.

Efecto del uso del schmitt trigger


(B) en vez de un comparador (A)

Como se conoce los pulsos tienen nicamente dos respuestas ALTO(1) y BAJO(0), que da
lugar a conectar a una entrada digital del Arduino, como se observa en la imagen.
Toma en cuenta el esquema del CI 74LS14. Para este caso nicamente se utiliza 4 pines de
conexin, puedes considerar cualquier par que te sea ms cmodo (Ix y Qx) y los de
alimentacin (VCC y GND).
Considerando al optoacoplador:

La configuracin de estos sensores puede ser tambin de la siguiente manera (considerando que
su estructura interna es la misma).
El programa es de la siguiente manera:
boolean anterior = 0;
boolean actual = 0;
int contador = 0;

void setup()
{
Serial.begin(9600);
pinMode(2,INPUT);
}

boolean debounce(boolean dato_anterior)


{

boolean dato_actual = digitalRead(2);


if (dato_anterior != dato_actual)
{
delay(10);
dato_actual = digitalRead(2);
}
return dato_actual;
}

void loop()
{

actual = debounce(anterior);

if ( anterior == 0 && actual == 1)


{
contador++;

delay (100);
Serial.println(contador);
}

anterior = actual;
}

De esta manera acoplando un disco o cinta, como se mencion anteriormente, slo para hacer
la prueba podran interrumpir con una cartulina o cartn interponindolo en el optoacoplador
para observar el conteo de pulsos generado.
Considere contar tambin con un mdulo para Arduino que compone de este sensor y todo el
circuito adicional acondicionado. ste tiene salidas digitales y analgicos, los digitales
ayudarn a ejecutar la tarea de contar los pulsos como se present en este post. Mientras los
analgicos ayudarn a usar a este sensor como retroalimentacin en un lazo cerrado y as
aplicar PID por ejemplo.

También podría gustarte