Usar varios encoders con interrupciones en atmega 328p-pu

#1
Hola gente,

Tengo un proyecto que consta de:

3 encoders (2 pines, uno por cada sentido de rotación)
3 leds.

Con cada encoder manejo un led por pwm. En total uso 9 pines por lo que el 328p del Ardino Uno es suficiente.

El problema es que para que los encoders funcionen bien, por lo que lei solo se puede hacer con interrupciones (en los pines 2 y 3 del Arduino Uno)


Estas son las dos interrupciones que pude usar, que me bastan para el primero de los encoders:
attachInterrupt(0, updateEncoder, CHANGE);
attachInterrupt(1, updateEncoder, CHANGE);

¿Existe alguna manera de usar 3 encoders sin tener que pasar a un chip más potente?

Gracias, saludos, Germán
 
#2
¿Cual es la frecuencia máxima del tren de pulsos de los encoders?, si es algo del orden de 1KHz entonces usar contadores por software puede funcionar si se hace que las rutinas de interrupción livianas.
Pero si esa frecuencia anda en los 100KHz o más... creo que puede ser insuficiente el ancho de banda del micro.

Si existe otra forma... sí, usar contadores externos 74hc590 o similar (quizás con algún registro paralelo/serie para no gastar 8 pines para leerlos con el micro).
 

Temas similares

Arriba