¿Es posible usar 2 codificadores giratorios a la vez?

0

Estoy trabajando en este proyecto: enlace Básicamente, estoy instalando un iPad mini en el tablero de mi nuevo auto, pero tengo un problema: El iPad no ofrece control de volumen cuando está en modo Dock y la unidad principal se ocultará detrás de la tableta. Estaba pensando en soldar un segundo codificador rotatorio idéntico como "parásito" en el original para el control de volumen, por lo que instalé ese segundo en algún lugar en el tablero. El codificador rotatorio que usa mi unidad de cabeza no es óptico, es el "clicky" (la misma sensación de la rueda de desplazamiento en algunos ratones de computadora, perdón por mi ignorancia)

¿Funcionará? Si no, ¿cómo puedo hacer eso?

    
pregunta public-pervert

4 respuestas

0

En general, esto puede no ser posible fácilmente. La conexión de encoder mecánico habitual aparece como dos interruptores con una conexión común. Normalmente, la conexión común está conectada a GND y las otras dos conexiones van a resistencias pullup y a entradas en un micro.

El problema es que se garantiza que muchos codificadores no tienen ambos interruptores "apagados" cuando están en reposo en la posición de detención. He especificado algunos que no tienen un estado garantizado en una de las salidas en la posición de retención (podría estar abierto o podría estar cerrado). Eso permite tolerancias más flexibles en la fabricación y será más común en los codificadores con muchos impulsos por revolución.

Sugiero que podría ser más fácil y más sencillo cablear un pequeño interruptor de palanca DPDT para alternar entre los dos codificadores. DPDT es suficiente: puede conectar en paralelo los interruptores momentáneos (si están presentes) y las conexiones a tierra del codificador se pueden conectar entre sí.

    
respondido por el Spehro Pefhany
1

Depende de cómo esté configurado el primero. Si conecta la salida a tierra y usa una resistencia pullup para mantener la salida normalmente alta (o viceversa), entonces es posible poner un dispositivo similar en paralelo.

La parte difícil es encontrar un dispositivo que use la misma codificación de salida. Algunos son pulsos por detención, otros son dos pulsos por detención. Asegúrese de que el nuevo dispositivo coincida exactamente con la codificación del dispositivo original.

    
respondido por el Ignacio Vazquez-Abrams
1

Lo que quieres puede funcionar, pero tendrás que hacer algunos cortes & cableado de parche.

El problema es que su codificador rotatorio existente tiene 4 estados posibles: 00, 01, 10, 11

Cuando un "1" significa que el codificador tiene un contacto de interruptor ABIERTO y un "0" significa que el contacto de interruptor está cerrado. Tenga en cuenta que estoy usando la terminología de LO activa porque la mayoría de los codificadores están conectados con los interruptores a tierra y resistencias pull-up que proporcionan el "1".

Si tuviera que cablear simplemente los codificadores en paralelo, tiene un 25% de posibilidades de que el codificador de la unidad principal se encuentre en la posición "11" y permita que su codificador externo funcione correctamente.

Veo dos maneras fáciles de solucionar esto, pero ambas implican cortar las huellas del codificador existente.

1) Use un mini conector estéreo de 3.5 mm en la unidad principal y conecte el codificador existente a los contactos normalmente cerrados en el conector. La punta de Jack & Las conexiones en anillo van al circuito donde el codificador existente solía conectarse.

Luego, simplemente conecte su codificador externo a un enchufe de 3.5 mm y conéctelo a la unidad principal cuando sea necesario. Cuando se tira del conector para el codificador externo, las conexiones normales del codificador interno al circuito y todo funciona correctamente.

2) Use un microcontrolador pequeño como uno de los de la familia PIC 12F. Este controlador tiene un total de 1 entrada solo y 5 líneas de E / S disponibles. La entrada y una de las líneas de E / S van al codificador externo, 2 líneas más de E / S van al codificador interno, las últimas 2 líneas de E / S van al circuito.

Escriba un código tal que cualquier movimiento en cualquiera de los codificadores pase esas señales al circuito e ignore las señales del otro codificador.

Simplemente rotando un codificador o el otro hace que el microcontrolador cambie a ese codificador. Tendrá que decidir qué hacer si ambos codificadores se activan al mismo tiempo; personalmente, simplemente ignoraría el codificador externo en esa situación.

    
respondido por el Dwayne Reid
1

Al principio pensé que podría sumar las salidas binarias de dos dígitos de los dos codificadores para combinarlos, utilizando 2 bits de un sumador como el sumador de 4 bits 74LS83 . Pero las salidas del codificador en cuadratura en realidad están en código gris, por lo que no funcionará. Necesitarás una tabla de verdad como esta en su lugar:

    | 00 01 11 10
----+------------
 00 | 00 01 11 10
 01 | 01 11 10 00
 11 | 11 10 00 01
 10 | 10 00 01 11

La tabla se puede desplazar sin afectar el rendimiento de los codificadores.

En lugar de crear una tabla de verdad personalizada, puede ser más fácil convertir ambas salidas de codificador de código gris a binario habitual al XOR al segundo dígito con el primero:

  -->
00 | 00
01 | 01
11 | 10
10 | 11

Luego usa la adición binaria:

    | 00 01 10 11
----+------------
 00 | 00 01 10 11
 01 | 01 10 11 00
 10 | 10 11 00 01
 11 | 11 00 01 10

Y para la salida, vuelva a convertir el código gris usando el mismo método XORing:

  -->
00 | 00
01 | 01
10 | 11
11 | 10

Si no hace esto en un microprocesador, esto toma 3 compuertas XOR de una compuerta XOR cuádruple, como MC14070B . Puede ser útil leer las señales del codificador rotatorio posiblemente ruidosas a través de puertas individuales para que haya un acuerdo sobre su valor lógico. Para hacer esto y filtrar aún más el ruido, puede agregar un disparador Schmitt cuádruple o inversor, como el quad NAND Schmitt CD4093B . Es posible que necesite resistencias pullup / down según la forma en que se construya el codificador rotatorio.

El ruido puede ser un problema en este enfoque, ya que sumar la salida de dos codificadores giratorios duplica el ruido numérico máximo de pico a pico de 1 bit a 2 bits. Esto puede confundir el dispositivo que está siendo controlado. Puede ser mejor y más fácil usar un microprocesador para seleccionar la salida de uno de los codificadores rotatorios cuando sus dos líneas de señal de código gris han cambiado de estado desde que lo deseleccionaron, lo que indica que se giró más de lo que se podría esperar de un pico de ruido .

    
respondido por el Olli Niemitalo

Lea otras preguntas en las etiquetas