En el POST de hoy, introduzco la utilización de un codificador rotativo, que aunque son muy parecidos a un potenciómetro por fuera, en realidad son muy distintos. El potenciómetro nos da un valor analógico que tenemos que leer, pero el codificador nos envía información “digital” que vamos leyendo según giramos el mando del codificador. El modelo que vamos a utilizar nosotros es el PEC11-4215F-S0024, que nos envía 24 “pulsos” en una vuelta completa, pero ya montado sobre una pequeña tarjeta de circuito impreso con sus respetivas conexiones internas y sus resistencias PULL-DOWN incorporadas.
Módulo codificador rotativo
Diagrama de estado de los pines CLK y DT del codificador rotativo
Si evaluamos el valor de los pines CLK y DT del codificador rotativo, cuando hay un cambio de estado, de “1” a “0” (Flanco de bajada) o de “0” a “1” (flanco de subida), en el pin CLK, podemos observar en el diagrama anterior que si estamos girando en sentido horario, el valor de CLK y DT son siempre contrarios, en cambio sí giramos en sentido antihorario los valores de CLK y DT siempre coinciden, con lo que basaremos la programación del código que grabaremos en nuestro Arduino en este fenómeno para que pueda saber en qué sentido estamos girando.Además de conocer el sentido de giro del mando del codificador rotativo, que Arduino nos señalizará mediante el encendido de dos LEDS, es decir, el LED azul solo se encenderá cuando giramos en sentido horario y el rojo cuando lo hacemos al contrario, también visualizaremos a través de un display de 7 segmentos de un solo digito, la posición en la que se encuentra el mando, aunque en una escala del 0 al 9 exclusivamente (se incrementa una posición cuando giramos en sentido horario y cuando giramos en sentido contrario disminuye). Por último añadir que los codificadores rotativos son ampliamente utilizados por ejemplo para el control del volumen en equipos de sonido.Para su correcto montaje y funcionamiento, cada uno de los segmentos que componen el display de 7 segmentos se denominan a, b, c, d, e, f y g, denominándose además dp al punto decimal, tal y como se muestra en la siguiente imagen.
Relación entre terminales y segmentos
Lista de Materiales:
· Arduino UNO Rev.3.· Cable USB tipo A-B.· Módulo codificador rotatorio (PEC11-4215F-S0024).· Display de 7 segmentos de cátodo común (LMS5161AS).· 3 Resistencia de 220Ω.· 2 LEDS de 3 mm (Rojo y Azul).· Protoboard.· Cables de conexión.
Programa: