Evitar lecturas falsas del codificador rotatorio óptico

1

Tengo un codificador de eje óptico que tiene una resolución bastante grande: 2500 pulsos por rotación. El problema es que los falsos pulsos se registran a partir de las vibraciones del entorno. Si lo sacudo con la mano o le doy una palmada con la otra mano, recibo varios impulsos, luego varios hacia atrás y luego hacia adelante otra vez, parece una sinusoide en descomposición. / p>

Una forma de lidiar con eso es contar cierta cantidad de pulsos que están en la misma dirección antes de registrar "ok, la rotación ha comenzado".

¿Alguien sabe algunos trucos inteligentes para lidiar con este tipo de problema en el código del microcontrolador?

    
pregunta miceuz

2 respuestas

5
  

[...] cuente alguna cantidad de pulsos que estén en la misma dirección antes de registrar "ok, la rotación ha comenzado"

La O.P propone un tipo de histéresis. Si hay un movimiento lento pero real, su entrada real será lenta y suave, pero se percibirá como una serie de pasos.

Lo primero que se me viene a la mente es el paso bajo que filtra su señal en el software. El promedio de los vagones (promedio móvil), por ejemplo, es agradable y simple.

Lo segundo que viene a la mente es aislar el codificador de vibraciones no deseadas.

P.S.

Hay varias filosofías.

Filosofía # 1. Intente resolver problemas ópticos con la óptica, problemas mecánicos con la mecánica, problemas analógicos con analógicos, problemas digitales con digitales, problemas de software con software. En ese orden o precedencia (aproximadamente).

Filosofía # 2. Intente resolver todos los problemas con el software, ya que los cambios de software son más rápidos que los cambios de hardware. Si no se puede evitar con el software, pruebe la solución digital. Luego intente analógico ... Observe que la orden se invierte w.r.t. Filosofía # 1.

    
respondido por el Nick Alexeev
6

Usted tiene un codificador óptico de muy alta resolución y está detectando movimientos reales tal como está previsto. ¿Cuál es el problema?

¿Por qué tienes un codificador de tan alta resolución si no quieres medir movimientos tan pequeños? Estas dos cosas parecen una contradicción. Si no quiere poder medir movimientos tan pequeños, tengo tres sugerencias:

  • Mejore su configuración mecánica para que las pequeñas vibraciones no se transmitan tanto al codificador. ¿Está utilizando rodamientos adecuados en todas partes?
  • En el software, tome la posición calculada del codificador y gírela hacia la derecha por 2 o 3. (I.E. divídalo por 4 u 8). Básicamente, esto simulará un codificador de resolución mucho menor, que no sufrirá tanto estos problemas.
  • Envíame el codificador, y te enviaré una resolución mucho más baja, gratis !
respondido por el Rocketmagnet

Lea otras preguntas en las etiquetas