Contador de pulsos de encoder con arduino

Contador de pulsos de encoder con arduino

Contador de pulsos de encoder con arduino

Codificador rotativo de alta resolución arduino

Un codificador rotativo es un tipo de sensor de posición que se utiliza para determinar la posición angular de un eje giratorio. Genera una señal eléctrica, ya sea analógica o digital, en función del movimiento de rotación.
Hay muchos tipos diferentes de codificadores rotativos que se clasifican según la señal de salida o la tecnología de detección. El codificador rotativo particular que usaremos en este tutorial es un codificador rotativo incremental y es el sensor de posición más simple para medir la rotación.
Echemos un vistazo al codificador y veamos su principio de funcionamiento. Así es como se generan los pulsos de onda cuadrada: El codificador tiene un disco con zonas de contacto uniformemente espaciadas que se conectan al pin común C y a otros dos pines de contacto separados A y B, como se ilustra a continuación.
Cualquiera de las dos salidas puede utilizarse para determinar la posición girada si nos limitamos a contar los pulsos de la señal. Sin embargo, si queremos determinar también el sentido de giro, tenemos que considerar ambas señales al mismo tiempo.

Interrupción del codificador rotativo arduino

Estoy trabajando en un proyecto que utiliza un codificador de eje rotatorio de 3 pines. Este codificador monitoriza la posición de un actuador lineal (actuador de la serie OS fabricado por Firgelli Automations), y se supone que devuelve unos 50 pulsos por pulgada.
¿Qué quiere decir que no puede encontrar un pulso? Hay un montón de niveles diferentes de apagado que puede ser desde completamente despistado a un pequeño error de programación. Tienes que ayudarnos a saber lo que necesitas. Publica tu código. Describe tu salida. Describe cómo debería ser diferente. Ese tipo de cosas.
«La serie OS está equipada con un disco codificador óptico de 10 agujeros que con el engranaje al eje de salida del actuador enviará 50 pulsos/pulgada de carrera para la unidad de 35lbf y 100 pulsos/pulgada de carrera para las unidades de 200lbf y 400lbf. ( +/- 5 pulsos)».
Usted sabe en qué dirección está conduciendo el motor, así que contando los pulsos y sumando o restando en función de la dirección, puede hacer un seguimiento aproximado de la posición. Recuerda que debes seguir contando los pulsos después de apagar el motor, ya que habrá algún rebasamiento.

Codificador incremental arduino

Ahora que nuestro hardware de codificador rotativo o de cuadratura está en funcionamiento es el momento de decirle a nuestro arduino qué hacer con las señales. Queremos que cuente los pulsos del codificador simple. También queremos que el codificador de cuadratura cuente hacia arriba y hacia abajo en función del sentido de giro.
Estas son las dos formas básicas de leer la entrada digital de un microcontrolador. Con el polling lees la entrada todo el tiempo dentro de un bucle. Cuando la entrada cambia al valor deseado (por ejemplo, de LOW a HIGH) entonces haces lo que quieres, por ejemplo, aumentar la variable que cuenta los pulsos. El principal problema del sondeo es que es difícil hacer otras cosas mientras se realiza el sondeo porque no se quiere perder ninguno de los pulsos. El controlador hace el único trabajo de leer la entrada y aumentar la variable.
Cuando se usan las interrupciones el controlador hace cualquier otro trabajo (por ejemplo, dar salida a los datos, calcular cualquier cosa o lo que sea). Cuando llega un pulso del codificador el controlador detiene su trabajo, salta a la rutina de interrupción y luego vuelve al trabajo anterior. De esta manera, el controlador se ocupa de la señal del codificador sólo cuando llega un nuevo pulso. El resto del tiempo puede hacer otras cosas. Y su código será mucho más fácil. Por lo tanto, trabajar con interrupciones es lo que queremos.

Codificador rotativo arduino

En este tutorial, aprenderemos a calcular el número de pulsos por cada revolución de 360 grados para un motor de corriente continua con un codificador incorporado. El motor con el que trabajaremos se parece a la siguiente imagen, sin embargo puedes utilizar cualquier motor que se parezca:
Cuando conocemos la velocidad angular de las ruedas de un robot y el radio de las mismas, podemos calcular la rapidez con la que se mueve el robot (es decir, la velocidad), así como la distancia que ha recorrido un robot en una unidad de tiempo determinada. Esta información es importante para ayudarnos a determinar dónde se encuentra un robot en un entorno determinado.
Cuando un motor con codificador incorporado gira, genera pulsos, que son señales eléctricas alternas de alta y baja tensión. Cada vez que la señal pasa de baja a alta (es decir, aumenta), lo contamos como un solo impulso.

Acerca del autor

admin

Ver todos los artículos