Tengo un codificador de eje óptico que tiene una resolución bastante grande: 2500 pulsos por rotación. El problema es que los pulsos falsos se registran a partir de las vibraciones ambientales: si lo sacudo en la mano o golpeo una mano que lo sostiene con la otra mano, recibo varios pulsos hacia adelante, luego varios hacia atrás, luego hacia adelante nuevamente, parece una sinusoide en descomposición.
Una forma de lidiar con eso es contar una cierta cantidad de pulsos que están en la misma dirección antes de registrar "bien, la rotación ha comenzado".
¿Alguien sabe algunos trucos ingeniosos para lidiar con este tipo de problema en el código del microcontrolador?
[...] cuenta una cierta cantidad de pulsos que están en la misma dirección antes de registrar "bien, la rotación ha comenzado"
El OP propone una especie 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 viene a la mente es el filtrado de paso bajo de su señal en el software. El promedio Boxcar (promedio móvil), por ejemplo, es agradable y simple.
Lo segundo que viene a la mente es aislar el codificador de vibraciones no deseadas.
PD
Hay varias filosofías.
Filosofía #1. Intenta resolver problemas ópticos con óptica, problemas mecánicos con 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. Trate de resolver todos los problemas con el software, porque los cambios de software son más convenientes que los cambios de hardware. Si no se puede evitar con el software, pruebe la solución digital. Luego intente analógico... Observe que el orden se invierte con la Filosofía #1.
Tiene un codificador óptico de muy alta resolución y está detectando movimientos reales tal como debe hacerlo. ¿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 quieres poder medir movimientos tan pequeños, tengo tres sugerencias:
Ignacio Vázquez-Abrams
ratones
yippie
Rocketmagnet
ratones