Hola!
Con esta actualización de proyecto me estreno con la Icezum Alhambra!
En un
hilo anterior explicaba una forma de decodificar las ondas de un encoder incremental. Si alguien llega nuevo, la mayor parte de la información está allí. Aquí me limitaré a poner un vídeo, el ICE, el programa (FreeBasic) correspondiente y una breve descripción. (Si alguien quiere el ejecutable que me lo diga.)
Este nuevo diseño sigue la misma filosofía, pero amplio los comparadores digitales a 16 bits; de esta forma se obtiene la posibilidad de manejar 65536 posiciones posibles. Para un encoder de sólo 16 pulsos por vuelta (4 reales y luego el discriminador multiplica por 4) es tanta que se podría utilizar como contador de vueltas para bobinar hilo en un carrete.
Lo bueno de este diseño es que tiene todas las cualidades positivas de un motor de pasos, pero con la potencia que queramos (según el moto + reducción que utilicemos), sin perder fuerza a altas velocidades y con absoluta precisión.
Os pongo un vídeo para que se vea trabajando. Desde el teclado del PC muevo a posiciones relativas y absolutas (por incrementos o por posiciones ya establecidas).
El motor es de 6 voltios y aproveché que tiene eje trasero para colocar el mismo encoder que usé en el hilo y vídeo anterior. La caja de reducción es de 1/60.
El esquema es el siguiente:

He hecho un "Control P" en Icestudio para sacar esta imagen.
En aplicaciones reales se necesita una posición cero donde comenzar y para ello está "Reset_n", en el esquema siempre está a 1 (lógica inversa), pero es ahí donde iría un sensor o pulsador para la posición cero real.
Está diseñado para funcionar a 115200 baudios, pero eso es modificable. Si hacéis clic en los bloques veréis sus tripas y lugar para cambiar esa velocidad de comunicación.
El programa que maneja este invento envía dos bytes para formar un palabra de 16 bits. Siempre hay que enviar la información de la posición de dos en dos, si se hace de otra manera se produciría una inconsistencia y no funcionaría correctamente.
Recuerda que este tipo de manejo de motores "comparación numérica" es el más sencillo y simple que existe digitalmente hablando y sólo vale para encoders de muy pocos pulsos por vuelta (esto, además, significa que podemos fabricarnos el encoder de forma muy simple).
No sé si se me olvida comentar algo más, si así fuese abriría otro post.
Saludos!