Estoy trabajando en un decodificador de cuadratura de software y probando con un Lego EV3 motor mediano (que tiene un codificador de cuadratura integrado).
La cosa es que, mientras que el motor grande produce un aspecto perfectamente normal salida en cuadratura, mi motor mediano produce esto:
Lastransicionesdelcanal2siempreconducenalcanal1en130-200µs.Es,técnicamente,lasecuenciadetransicióncorrectaparalacuadratura,perolasdosseñalesestáncasienfaseoantifasesegúnladirección.
Esnotablequeestasformasdeondasonconsistentescon
Tenía la esperanza de evitar hacerlo de esa manera debido a la precisión reducida. Quiero que el código sea un decodificador de cuadratura genérico de precisión total, pero también que funcione con estos motores.
Los esquemas que Lego proporcionan Muestra lo que me parece un codificador perfectamente normal:
Incluso si los sensores no están bien alineados o si son lentos para la transición porque el LED es demasiado débil, todavía no deberían producir esta salida, ¿deberían? Mi razonamiento es que si se trata de un problema de alineación, deberían mostrar la misma superposición de fases en ambas direcciones, no una negativa.
Me pregunto si ambas líneas avanzan lentamente, internamente, pero la transición de la salida del disparador de schmitt en una línea provoca algún tipo de ruido que provoca una detección más temprana en la otra línea.
Eso no suena bien. ¿Alguien tiene alguna mejor idea de lo que está pasando aquí?