como leer un encoder

He aqui mi problema, resulta que cuento con un encoder de 128 pulsos por revolucion, estoy tratando de contar los pulsos del mismo mediante interrupciones ya sean externas o CCP pero resulta que en el simulador de Proteus funciona perfectamente, pero oh sorpresa que cuando llevo esto a la practica el micro (18f452) ignora o no puede leer varios de estos pulsos al incrementar la velocidad en el giro de la rueda, ya he probado algunas soluciones como incrementar la velociad del pic hasta 40Mhz, mandar por Rs232 en vez de imprimir en lcd y observe el pulso con el osciloscopio y no se ven con un periodo muy corto como para que no lo viera el pic ya que eran de 13ms y nada sigue ignorandome varios pulsos.

Si alguien pudiese orientarme un poco con esto se lo agradeceria.
 
Hola.
Podria ser que el encoder no sea capaz de entregar señal correcta a la velocidad en que lo trabajas.
Saludos
 
Hola amigo jol45, dudo que el problema resida en la velocidad, ya que segun sus datos una vuelta de enconder se produce en 3,3seg. aprox. suponiendo que el pulso en alto dura 13ms. Posiblemente la velocidad de respuesta en capturar, el procesador no sea suficiente.
 
Yo use uno igual con un avr a 1 Mhz usando la INT0 por flanco de bajada y funciona muy bien, deberias poner el codigo y la simulacion asi te ayudarian más
 
Creo que nos faltaria ver el programa y el esquema para tener mas información. Yo usé el PIC 18F452 a 10Mhz para contar los pulsos que me daban dos motores con encoders incluido. Lo que hicé con el PIC 18F452 fue usar el timer0 y timer1 como contadores por flanco de subida o bajada ( no me acuerdo ) y con el timer3 lo configuraba de modo que cada 50ms me leyera los encoders, hiciera la conversion de pulsos a la velocidad del motor (cm/s) y volver a poner a 0 los contadores y volver a repetir el bucle y la verdad que funcionaba de maravilla.
 
gracias a todos pero resulto que el problema fue completamente mecanico y yo quebrandome la cabeza de mas con el programa

de todos modos muchas gracias por atender a mi pregunta
 
Atrás
Arriba