Hola como estan, tengo un problema con un encoder que estoy utilizando y me gustaria saber si alguno de ustedes me puede ayudar.
Estoy utilizando un ecoder de 1024pulsos, tengo el canal a conectado A una interrupcion externa en el micro, y el canal B lo leo cada vez que sucede la interrupción asi puedo determinar la direccion, y aumento o decremento el contador, por lo tanto hasta ahi esta bien, el problema es que cuando el encoder regresa a su posicion de equilibrio, debido a que este tiene un movimiento pendular, por lo general no regresa el contador hasta cero, o si llega a cero con tan solo darle un golpe suabe a la mesa donde lo tengo el encoder me genera una cuenta, pero B no ocurre entonces el contador incementa o decrementa segun alla sido el ultimo estado de B y se queda ahi.
el problema creo que esta en que el encoder es muy sensible al movimiento y cualquier golpe genera que la señal A marque pero no alcansa a marcar B por el desface, intente solucionarlo agregando un contador de tiempo algo asi como un filtrado digital, para frecuencias bajas entre cada interrupcion, y si se mejoro pero no a sido suficiente.
espero me puedan entender, y alguno de ustedes me pueda ayudar un poco con este problema
Estoy utilizando un ecoder de 1024pulsos, tengo el canal a conectado A una interrupcion externa en el micro, y el canal B lo leo cada vez que sucede la interrupción asi puedo determinar la direccion, y aumento o decremento el contador, por lo tanto hasta ahi esta bien, el problema es que cuando el encoder regresa a su posicion de equilibrio, debido a que este tiene un movimiento pendular, por lo general no regresa el contador hasta cero, o si llega a cero con tan solo darle un golpe suabe a la mesa donde lo tengo el encoder me genera una cuenta, pero B no ocurre entonces el contador incementa o decrementa segun alla sido el ultimo estado de B y se queda ahi.
el problema creo que esta en que el encoder es muy sensible al movimiento y cualquier golpe genera que la señal A marque pero no alcansa a marcar B por el desface, intente solucionarlo agregando un contador de tiempo algo asi como un filtrado digital, para frecuencias bajas entre cada interrupcion, y si se mejoro pero no a sido suficiente.
espero me puedan entender, y alguno de ustedes me pueda ayudar un poco con este problema