Categorías: Circuitos microcontroladores
Cantidad de vistas: 16,299
Comentarios sobre el artículo: 0
Cómo conectar un codificador incremental a Arduino
A menudo, en dispositivos con microcontroladores, debe organizar la administración de los elementos del menú o implementar algunos ajustes. Hay muchas formas: use botones, resistencias variables o codificadores. El codificador incremental le permite controlar algo mediante la rotación sin fin del mango. En este artículo, veremos cómo hacer que el codificador incremental y Arduino funcionen.

Características del codificador incremental
El codificador incremental, como cualquier otro tipo de codificador, es un dispositivo con un mango giratorio. A distancia, se parece a un potenciómetro. La principal diferencia con el potenciómetro es que el mango del codificador gira 360 grados. No tiene provisiones extremas.
Los codificadores vienen en muchos tipos. Incremental difiere en que con su ayuda es imposible saber la posición del mango, pero solo el hecho de la rotación en alguna dirección, hacia la izquierda o hacia la derecha. Por el número de pulsos de señal, ya puede calcular en qué ángulo giró.

De esa manera puedes pasar microcontrolador comando, administrar el menú, el nivel de volumen, por ejemplo, etc. En la vida cotidiana, puede verlos en radios de automóviles y otros equipos. Se utiliza como órgano de ajuste de nivel multifuncional, ecualizador y navegación de menús.

Principio de funcionamiento
Dentro del codificador incremental hay un disco con etiquetas y controles deslizantes que entran en contacto con ellos. Su estructura es similar a un potenciómetro.

En la figura anterior, verá un disco con marcas, que son necesarias para interrumpir la conexión eléctrica con el contacto móvil, como resultado obtiene datos sobre la dirección de rotación. El diseño del producto no es tan importante, comprendamos el principio de funcionamiento.

El codificador tiene tres salidas de información, una común, las otras dos generalmente se llaman "A" y "B", en la figura de arriba se ve el pin del codificador con un botón: puede recibir una señal cuando hace clic en su eje.
¿Qué señal recibiremos? Dependiendo de la dirección de rotación, la unidad lógica aparecerá primero en el pin A o B, por lo que obtenemos una señal de cambio de fase, y este cambio nos permite determinar qué dirección. La señal se obtiene en forma de forma rectangular, y el microcontrolador se controla después de procesar los datos de la dirección de rotación y el número de pulsos.

La figura muestra el símbolo del disco con los contactos, en el centro hay un gráfico de las señales de salida, y a la derecha está la tabla de estado. Este dispositivo a menudo se dibuja como dos teclas, lo cual es lógico, porque de hecho obtenemos una señal "adelante" o "atrás", "arriba" o "abajo", y el número de acciones.

Aquí hay un ejemplo de un pinout real del codificador:

Interesante
Un codificador defectuoso puede reemplazarse por dos botones sin bloqueo, y viceversa: control casero en el que dos de estos botones pueden finalizarse configurando el codificador.
En el siguiente video, verá la alternancia de la señal en los terminales: durante la rotación suave, los LED se iluminan en la secuencia reflejada en el gráfico anterior.
No menos ilustrado claramente en la siguiente animación (haga clic en la imagen):
El codificador puede ser tanto óptico (la señal es generada por emisores por fotodetectores, ver la figura a continuación) como magnético (funciona en el efecto Hall). En este caso, no tiene contactos y tiene una vida útil más larga.

Como ya se mencionó, la dirección de rotación se puede determinar por cuál de las señales de salida ha cambiado previamente, ¡pero así es como se ve en la práctica!

La precisión del control depende de la resolución del codificador: la cantidad de pulsos por revolución. El número de pulsos puede ser de unidades a miles de piezas. Como el codificador puede actuar como un sensor de posición, cuantos más pulsos, más precisa será la determinación.Este parámetro se conoce como PPR - pulso por revolución.
Pero hay un pequeño matiz, a saber, una designación similar LPR es el número de etiquetas en el disco.
Y la cantidad de pulsos procesados. Cada etiqueta en el disco da 1 pulso rectangular en cada una de las dos salidas. El impulso tiene dos frentes: el trasero y el delantero. Como hay dos salidas, de cada una de ellas obtenemos un total de 4 impulsos cuyos valores puede procesar.
PPR = LPRx4
Conectar a Arduino
Descubrimos lo que necesita saber sobre el codificador incremental, ahora veamos cómo conectarlo al Arduino. Considere el diagrama de conexión:

Un módulo codificador es la placa en la que se encuentran el codificador incremental y las resistencias pull-up. Puedes usar cualquier alfiler.

Si no tiene un módulo, sino un codificador separado, solo necesita agregar estas resistencias, el circuito no será diferente en principio. Para verificar la dirección de rotación y su operatividad en conjunción con Arduino Podemos leer la información del puerto serie.

Analicemos el código con más detalle, en orden. En void setup (), anunciamos que usaríamos la comunicación a través del puerto serie y luego estableceríamos los pines 2 y 8 en el modo de entrada. Seleccione usted mismo los números de pin según su esquema de conexión. La constante INPUT_PULLUP establece el modo de entrada, el arduino tiene dos opciones:
-
ENTRADA - entrada sin resistencias pull-up;
-
INPUT_PULLUP: conexión a la entrada de resistencias pull-up. Ya hay resistencias dentro del microcontrolador a través del cual la entrada está conectada al power plus (pullup).
Si usa resistencias para ajustar la potencia plus como se muestra en los diagramas anteriores o usa el módulo codificador, use el comando INPUT, y si por alguna razón no puede o no quiere usar resistencias externas, INPUT_PULLUP.
La lógica del programa principal es la siguiente: si tenemos uno en la entrada "2", envía el puerto H al monitor, si no, L. Por lo tanto, cuando gira en un sentido en el monitor del puerto serie, obtiene algo como esto: LL HL HH LH LL. Y viceversa: LL LH HH HL LL.
Si leyó cuidadosamente las líneas, probablemente notó que en un caso el primer carácter adquirió un valor, y en el otro caso, el segundo carácter cambió primero.
Conclusión
Los codificadores incrementales han encontrado una amplia aplicación práctica en amplificadores para sistemas acústicos: se usaron como control de volumen, en radios de automóviles, para ajustar los parámetros de sonido y navegar por los menús, en los ratones de la computadora se desplazan páginas diariamente (se instala una rueda en su eje) . Y también en herramientas de medición, máquinas CNC, robots, selsyn no solo como controles, sino también midiendo valores y determinando la posición.
Ver también en electro-es.tomathouse.com
: