(Recomiendo conocer primero el funcionamiento de los encoders, pueden ver este link y/o
buscar por otras fuentes)
Los encoders tienen como principio generan señales digitales en respuesta al movimiento,
sea de un disco o cinta perforada.
Éstos se utilizan, en su mayoría de las aplicaciones, para el control de posición y/o velocidad de
un motor. Considerando básicamente el número de pulsos leído y la cantidad de ranuras que
existen en un disco o cinta para controlar una posición específica 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 más adelante y la placa Arduino.
Como se sabe la sensibilidad de los sensores, es posible que en algunos casos no esté claro un
pulso y exista errores pequeños que con el tiempo se van haciendo muy notorios y eso afecta el
objetivo final. Razón suficiente para añadir un circuito extra ó un programa específico. En este
caso expongo el primero, añadiendo un disparador Schmitt (74LS14) previniendo dicho ruido.
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
conexión, puedes considerar cualquier par que te sea más cómodo (Ix y Qx) y los de
alimentación (VCC y GND).
Considerando al optoacoplador:
La configuración de estos sensores puede ser también 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);
}
void loop()
{
actual = debounce(anterior);
delay (100);
Serial.println(contador);
}
anterior = actual;
}
De esta manera acoplando un disco o cinta, como se mencionó anteriormente, ó sólo para hacer
la prueba podrían interrumpir con una cartulina o cartón interponiéndolo en el optoacoplador
para observar el conteo de pulsos generado.
Considere contar también con un módulo para Arduino que compone de este sensor y todo el
circuito adicional acondicionado. Éste tiene salidas digitales y analógicos, los digitales
ayudarán a ejecutar la tarea de contar los pulsos como se presentó en este post. Mientras los
analógicos ayudarán a usar a este sensor como retroalimentación en un lazo cerrado y así
aplicar PID por ejemplo.