Estoy buscando una solución simple para mantener la posición de un robot. Tiene dos motores de CC y un codificador de rueda para cada uno. Los codificadores son de tipo incremental.
Necesito poder obtener el recuento actual de incrementos de un atmega.
Encontré un chip como el LM628/629 que hará un gran trabajo, demasiado bueno de hecho, porque cuesta ~50$.
¿Conoce un IC dedicado que solo tiene las funciones de conteo (en ambas direcciones) para un codificador de rueda, o es posible hacer uno simple con un attiny?
"¿Conoce un IC dedicado que solo tenga funciones de conteo (en ambas direcciones)" ?
Es posible que se sorprenda al saber que unos pocos chips lógicos genéricos, simples y baratos son suficientes para decodificar un codificador rotatorio; no requiere un chip especial específicamente personalizado para decodificadores rotatorios. La página Codewheel Generator tiene algunos circuitos relativamente simples que decodifican las 2 salidas de cuadratura rotatoria en una salida de "dirección" y "conteo". Esas salidas se pueden conectar a las entradas de "dirección" y "reloj" de cualquier contador ascendente/descendente, como, por ejemplo, el CD4029, el CD4516, el CD40193, 74HC193, etc.
"¿Es posible hacer uno simple con un attiny" ?
Sí, puede hacer un codificador de cuadratura simple con un ATtiny. Algunos consejos para conectar un codificador de cuadratura a un chip Atmel y decodificarlo en el software se encuentran en:
Si tiene relativamente pocos pulsos por segundo, es posible que pueda ejecutar las 2 señales de cada codificador directamente en su ATmega principal y usar las técnicas anteriores para hacerlo todo en software, sin ningún hardware de conversión externo.
Los codificadores de rueda son muy fáciles de usar para los sistemas de navegación a estima. Si solo tiene una rueda ranurada y dos detectores, será un codificador de cuadratura; llamas a una de las señales tu reloj y a la otra tu dirección. Obtenga ambas señales en su microcontrolador y configúrelo para que cuente pulsos de reloj (es decir, un algoritmo de conteo de eventos). Cada vez que obtenga un pulso de reloj, verifique la línea de dirección. Siempre será '1' para una dirección y '0' para la otra.
Los codificadores más elegantes (más caros) suelen ser codificadores de código Gray y son menos adecuados para la navegación a estima, aunque le darán una mejor posición de navegación a estima debido a su mayor precisión. Puede alimentar la salida de uno de ellos en su microcontrolador y tener una interrupción o un temporizador que lea la posición de las ruedas y determine qué tan lejos y en qué dirección se movió el robot. Esta es una solución más complicada.
Tenga en cuenta que los sistemas de navegación a estima se desvían con el tiempo y, a menos que tenga alguna forma de restablecer el sistema de navegación a estima, la idea de su robot de dónde se encuentra en el espacio se volverá cada vez más inexacta.
Un enfoque podría ser usar un dispositivo lógico programable como un contador de onda de código gris con suficientes etapas para que pueda simplemente sondear el valor a una velocidad conveniente y no perder la cuenta. Tenga en cuenta que una ventaja de un contador de ondulación de código gris sobre otros enfoques es que no hay peligro de que las entradas ruidosas provoquen fallas en el contador, siempre que ninguna entrada cambie cuando la otra entrada no sea estable.
jojo l'abricot
jason s
akohlsmith
akohlsmith
endolito