Según sus medidas de actualización y resistencia, es un codificador rotatorio de 4 bits con contactos de limpieza.
Encodersrotativosde3bitscodificadosenbinarioyengris.Imagende Wikipedia .
La imagen muestra dos patrones diferentes de codificador rotatorio de 3 bits. (El suyo es de 4 bits ya que tiene cuatro contactos). El patrón de la izquierda es un patrón binario regular. Los contactos están representados por los círculos amarillos. El blanco es sin contacto. El negro es contacto.
Puede ver que a medida que giramos el disco del codificador en sentido contrario a las agujas del reloj obtendremos un patrón binario:
0 0 0
0 0 1
0 1 0
0 1 1
1 0 0
1 0 1
1 1 0
1 1 1
Todo esto estaría bien hasta que te alinees en el límite donde dos bits cambian simultáneamente, por ejemplo. 001 a 010. Ahora, si los contactos no están exactamente alineados (y nunca lo estarán) lo que lea puede ir a 001, 000, 010 o 001, 011, 010 a medida que los contactos cambien. Esto presentaría lecturas espurias de posición al software que intenta realizar un seguimiento de la posición. ¡Tenga en cuenta que pasar de 111 a 000 es lo peor!
El código gris resuelve esto permitiendo que solo se cambie un bit a la vez. En este caso nuestra secuencia sería:
0 0 0
0 0 1
0 1 1
0 1 0
1 1 0
1 1 1
1 0 1
1 0 0
Aquí podemos ver que el código cambia en un bit en cada transición. Tenga en cuenta que el software ahora debe poder decodificar el código gris, generalmente por tabla de búsqueda.
Pruebe su codificador como se muestra a continuación y registre sus resultados.
simular este circuito : esquema creado usando CircuitLab
Ponga los resultados en su pregunta original. Puede ayudar a alguien más.
Para una aplicación Arduino, conectaría lo común a GND y conectaría los interruptores a las entradas Arduino. Establezca el PinMode de Arduino () en INPUT_PULLUP, que conectará una resistencia de 20 a 50 k internamente a cada pin configurado de esta forma.