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.

Cómo conectar un codificador incremental a Arduino

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ó.

Codificador y Arduino

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.

Perilla de nivel de sonido

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.

Codificador desmontado

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.

Diseño de codificador

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.

Principio de funcionamiento

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.

Circuito codificador

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

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 dispositivo y el principio de funcionamiento del codificador.

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.

Sensor de ángulo

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!

Puntos de fijación mecánica

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:

El diagrama de conexión del sensor de posición a Arduino

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

Diagrama de cableado del codificador

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.

Programa ejemplo

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 bgv.electricianexp.com:

  • Métodos para leer y administrar puertos de E / S Arduino
  • Motor y servocontrol con Arduino
  • Características de dispositivos de conexión a Arduino
  • Conectando y programando Arduino para principiantes
  • Sensores más populares para Arduino

  •