Encoder rotativo

Encoder rotativo

Introducción:

El encóder rotativo es un dispositivo electromecánico incremental que convierte la posición angular en un código digital. La salida de los codificadores incrementales proporciona información sobre el movimiento del eje, que normalmente se procesa un procesador externo para determinar la velocidad, la distancia y posición.

Requisitos:

Tener instalado el IDE de arduino

Saber como descargar un repositorio de GitHub

Lista de materiales

Desarrollo

El encoder es un transductor rotativo, que mediante una señal eléctrica sirve para indicar la posición angular de un eje, velocidad y aceleración del rotor de un motor.

Existen diferentes tipos de encoders, en esta ocasión utilizaremos un encoder rotativo de tipo cuadratura:

Módulo sensor encoder rotatorio KY-040

Este tipo de encoder es uno de tipo incremental, se utilizan dos sensores ópticos posicionados con un desplazamiento de 1⁄4 de ranura el uno del otro, generando dos señales de pulsos digitales desfasada en 90º o en cuadratura de ahi su nombre. A estas señales de salida, se les llama comúnmente A y B.

En un encoder en cuadratura existe un desfase entre ambos sensores de forma que la señal que producen está desplazada 90º eléctricos. Gráficamente, la señal de ambos canales respecto al ángulo girado sería la siguiente.

Código:

En este tutorial crearemos una libreria para reutilizar el codigo que escribamos en nuevos proyectos, para ello creo un archivo .h y se crea una clase llamada Encoder_rotativo

La clase Encoder_rotativo tiene como datos los pines de conexión del sensor y dos variables enteras que nos serviran para conocer el estado del pin actual y el estado anterior y así comparar los cambios de estados.

La clase tambien cuenta con funciones propias del sensor, como la inicializacion y la lectura del pulsador y la lectura de los datos .

La clase cuenta con dos constructores, uno requiere tres parametros, el pin dt, el pin clk y el pin del boton.

La manera en la que se detecta el cambio de estado es simplemente leyendo una entrada digital pero si se requiere una mayor precisión es necesario utilizar interrupciones para detectar los eventos necesarios.

Ejemplo:

(Video)

En este ejemplo vamos a mostrar variables como Tiempo,Voltaje y Corriente en una pantalla lcd y vamos a cambiar los valores utilizando un encoder.

Descargas

Código

Diagrama de conexión:

 

Articulo anterior Puente H doble L298N
Siguiente articulo Fuente de voltaje ajustable DC-DC de 1.25~36 VCD 5 A 75 W XL4015

Deja un comentario

Los comentarios deben ser aprobados antes de aparecer

* Campo requerido