Detectar la dirección de rotación de un interruptor giratorio

0

Hace poco publicó esto: enlace

Pero quiero ser más preciso sobre lo que estoy tratando de hacer. Tengo un interruptor giratorio de 1 polo y 8 posiciones con rotación continua, y necesito una interfaz (¿un micro?) Para enviar el pulso A por cada clic en el sentido de las agujas del reloj, el pulso B por cada clic en el sentido contrario a las agujas del reloj. No puedo usar un codificador rotatorio ya que tienen un par de activación bajo, y necesito una fuerte sensación de "clic". ¿Alguna forma de lograr esto?

    
pregunta Mssc

1 respuesta

1

Dos posibles soluciones tanto utilizando micros. Actualmente, puede obtener un PIC o ARM por menos de $ 2, por lo que es una buena forma de proceder.

a) Solución analógica.

Conecte un anillo de resistencias en serie alrededor del interruptor giratorio.

Detecta el voltaje usando el ADC incorporado o el tiempo para cargar una pequeña capitalización más allá del nivel de activación de schmidt de una de las entradas.

Compare el valor 'ADC' con las previas para determinar la dirección

b) Solución digital

Cablee 8 líneas a 8 entradas (incluso en un TSSOP de 20 pines tiene suficiente IO)

Conecte el limpiaparabrisas a tierra.

Retire los cables de cada uno de los 8 polos a Vcc (preferiblemente use flexiones internas)

Establezca un IRQ en cambio de bajo a alto para cualquiera de los pines de entrada, rebote

Puedes invertir el sentido de este cableado.

Recientemente he implementado un diseño en el que se utiliza un ARM MCU como un I2C a un puerto paralelo. La solución fue más simple, más barata por pin y más flexible que cualquier lógica discreta que pudiera encontrar, incluidos los registros de desplazamiento de 74 series.

Tal como lo plantean los comentaristas a continuación, el interruptor puede codificarse con estados suficientes para diferenciar el sentido de rotación.

En el caso de un interruptor con paradas finales, o con una cantidad de estados exactamente divisibles por tres, solo se requieren 3 estados. Estos estados están conectados cíclicamente alrededor del interruptor de rotación.

En el caso de un interruptor con capacidad de rotación continua, se requiere un estado adicional para evitar tener dos estados iguales adyacentes o dos estados iguales separados por un estado diferente.

El requisito básico es que sea cual sea la posición y la dirección en la que se alcance un nuevo estado que sea diferente del estado anterior y diferente del estado para la dirección alternativa.

La codificación de la entrada aumenta la complejidad e introduce más posibilidades de error.

    
respondido por el ChrisR

Lea otras preguntas en las etiquetas