En este proyecto vamos a conectar un ENCODER ROTATIVO con ARDUINO. ARDUINO UNO es una placa de desarrollo basada en controlador ATMEGA diseñada para ingenieros electrónicos y aficionados. En ARDUINO tenemos 20 pines de E / S, por lo que podemos programar 20 pines de UNO para usarlos como entrada o salida.
UN CODIFICADOR ROTATIVO se utiliza para conocer la posición de movimiento y el movimiento angular de un motor o eje. Por lo general, es un dispositivo de tres terminales, con pines de alimentación y tierra, hay un total de 5 terminales. A continuación se muestra un módulo CODIFICADOR ROTATIVO.
Los pines de un codificador rotatorio son:
- Suelo
- Positivo conectado a + 5V
- Señal de salida A pin
- Pin de señal de salida B
- Pin de reloj o pin común
El ENCODER proporciona pulsos que representan el cambio en la posición del eje para que los sistemas los comprendan. Considere que se enciende un ENCODER ROTATIVO y se mueve el eje.
Como se muestra en la tabla anterior, considere que el eje se mueve en sentido horario. Con esto habrá Falling Edge en la terminal A y luego en la terminal B.
Considere que el eje se mueve en sentido antihorario. Con esto habrá Falling Edge en la terminal B y luego en la terminal A.
Este borde se producirá una vez para 360/20 = 18 grados (esto es para un codificador con 20 posiciones, esto cambia de un tipo a otro, cuanto mayor es el recuento, mayor es la precisión).
Con las dos condiciones anteriores, podemos obtener la dirección y el grado de rotación. Por lo tanto, obtenemos los parámetros necesarios para obtener la posición de un eje.
Componentes requeridos
Hardware: placa Arduino uno, pines de conexión, resistencia de 220 Ω, LED (ocho piezas), resistencia de 1 K Ω, resistencia de 220 Ω (2 piezas), condensador de 100 nF (2 piezas), placa de pruebas.
Software: Arduino todas las noches
Diagrama de circuito y explicación de trabajo
Los condensadores aquí son para neutralizar el efecto de rebote de contacto en ENCODER. Sin esos condensadores, habrá algunos problemas graves en la lectura de posición.
Cuando se mueve el eje, habrá una diferencia de tiempo entre la salida de dos pines de salida. El Arduino UNO reconocerá esta diferencia de tiempo para la rotación en sentido horario o antihorario.
Si la rotación es en el sentido de las agujas del reloj, el recuento binario se incrementa en uno, y este recuento se muestra en el puerto LED como se muestra en la figura.
Si la rotación es en sentido antihorario, la cuenta binaria se reduce en uno y la cuenta binaria se muestra en el byte LED.
El funcionamiento de Arduino con codificador rotatorio se explica paso a paso en el código C que se muestra a continuación.