100% encontró este documento útil (1 voto)
2K vistas21 páginas

Odómetro con Encoder Incremental Arduino

Este documento describe un odómetro que utiliza un encoder incremental para medir la distancia recorrida. El encoder tiene 30 posiciones por revolución y proporciona señales en los pines A, B y C a medida que gira. El encoder permite determinar la posición y dirección de giro. El odómetro usa este encoder para medir la distancia recorrida por una rueda acoplada al encoder al contar las posiciones a medida que gira la rueda.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
100% encontró este documento útil (1 voto)
2K vistas21 páginas

Odómetro con Encoder Incremental Arduino

Este documento describe un odómetro que utiliza un encoder incremental para medir la distancia recorrida. El encoder tiene 30 posiciones por revolución y proporciona señales en los pines A, B y C a medida que gira. El encoder permite determinar la posición y dirección de giro. El odómetro usa este encoder para medir la distancia recorrida por una rueda acoplada al encoder al contar las posiciones a medida que gira la rueda.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

ODMETRO CON ENCODER INCREMENTAL

1
Prctica 12-Odmetro con encoder incremental
NDICE
Objetivo general .................................................................................................................................................................. 3
Objetivo particular3

Introduccin ..................................................................................................................................................................... 5
Desarrollo ............................................................................................................................................................................ 9
Conclusiones generales del equipo .................................................................................................................................... 17
Bibliografa y/o Cibergrafa ................................................................................................................................................ 18
Anexos ............................................................................................................................................................................... 19
Prctica 12-Odmetro con encoder incremental

OBJETIVO GENERAL
Para la realizacin de esta prctica se remontan los conceptos de un encoder, vistos en clase. Gracias
a estos conceptos lograremos asociar las posiciones por revolucin para as lograr medir una cierta
distancia (odmetro) respecto al giro de la llanta que se acoplar al mismo.

OBJETIVO PARTICULAR
Utilizando en nuestro caso el encoder rotatorio Keyes KY-040, usaremos su entrada giratorio para que
nos proporcione una seal mediante los pulsos que este arroja, la posicin en la que se encuentra y
con base en esto lograr crear un medidor de distancia sencillo con una llanta de minirobot acoplada a
este y saber tambin a partir de un origen saber qu distancia recorre en un sentido y en otro.
Cabe mencionar que el encoder utilizado es incremental, dado que provee una posicin estratgica
desde donde siempre comenzar la cuenta. La posicin actual del encoder es incremental cuando es
comparada con la ltima posicin registrada por el sensor.

Los pines para este codificador rotatorio se identifican en la siguiente ilustracin:

El mdulo est diseado para que se produzca una baja cuando los interruptores estn cerrados y
una alta cuando los interruptores estn abiertos.

La baja se genera colocando un punto de tierra en el Pin C y pasndolo a los pines CLK y DT cuando
los interruptores estn cerrados.

El alto se genera con una entrada de alimentacin de 5V y resistencias de pull-up, de modo que CLK
y DT son ambos altos cuando los interruptores estn abiertos.

No se ha mencionado previamente la existencia de un interruptor pulsador que sea integral para el


codificador. Si presiona el eje, se cierra un interruptor normalmente abierto. La funcin es til si desea
cambiar la funcin del interruptor. Por ejemplo, es posible que desee tener la posibilidad de realizar
ajustes gruesos y finos.
Prctica 12-Odmetro con encoder incremental

Mostramos sus condiciones operativas.


Prctica 12-Odmetro con encoder incremental

INTRODUCCIN
El encoder rotatorio Keyes KY-040 es un dispositivo de entrada giratorio (como en la perilla) que
proporciona una indicacin de cunto la perilla ha sido girada y en qu direccin est girando.
Es un gran dispositivo para el control de motores paso a paso y servos. Tambin se podra utilizar
para controlar dispositivos como potencimetros digitales.
Cmo funciona?
Un encoder giratorio tiene un nmero fijo de posiciones por revolucin. Estas posiciones son medidas
fcilmente por pequeos "clicks" cuando gira el encoder. ste mdulo de Keyes tiene treinta de estas
posiciones.
Por un lado del switch hay 3 pines. Normalmente se denominan A, B y C. En el caso del KY-040, que
estn orientadas como se muestra.

Dentro del codificador hay dos interruptores. Un interruptor conecta el pin A con el C y el otro interruptor
conecta el pin B con el C. En cada posicin del codificador, ambos interruptores estn abiertos o
cerrados. Por cada click hace que estos interruptores cambien a estados de la siguiente manera:
Prctica 12-Odmetro con encoder incremental
Si ambos interruptores estn
cerrados, girando el codificador hacia
la derecha o hacia la izquierda una
posicin har que ambos interruptores
se abran.
Si ambos interruptores estn abiertos,
girando el codificador hacia la derecha
o hacia la izquierda una posicin har
que ambos interruptores se cierren.
La siguiente ilustracin es
representativa de cmo se construye
el interruptor:

Como se puede ver, la posicin angular de la terminal A y el terminal B es tal que:


Si gira el mando hacia la derecha har que el interruptor de conexin de A y C cambie de estado en
primer lugar.
Si gira el mando hacia la izquierda har que el interruptor de conexin B y C cambien de estado en
primer lugar.
Si nos vamos a representar a la apertura de un cierre de los interruptores como formas de onda, se
vera algo como esto:

Un encoder, tambin conocido como codificador o decodificador en Espaol, es un dispositivo,


circuito, programa de software, un algoritmo o incluso hasta una persona cuyo objetivo es convertir
informacin de un formato a otro con el propsito de estandarizacin, velocidad, confidencialidad,
seguridad o incluso para comprimir archivos.
Prctica 12-Odmetro con encoder incremental
Para explicar cmo funciona un encoder debemos
mencionar que un encoder se
compone bsicamente de un disco conectado a un
eje giratorio.
El disco est hecho de vidrio o plstico y se
encuentra codificado con unas partes
transparentes y otras opacas que bloquean el paso
de la luz emitida por la fuente de luz
(tpicamente emisores infrarrojos). En la mayora de
los casos, estas reas bloqueadas (codificadas)
estn arregladas en forma radial.

A medida que el eje rota, el emisor infrarrojo emite


luz que es recibida por el sensor ptico (o foto-transistor) generando los pulsos digitales a medida que
la luz cruza a travs del disco o es bloqueada en diferentes secciones de este. Esto produce una
secuencia que puede ser usada para controlar el radio de giro, la direccin del movimiento e incluso
la velocidad.

Los encoders son utilizados en una infinidad de campos e industrias que van desde mquinas de fax,
electro-domsticos de consumo hasta robtica, minera transporte, maquinaria, aeroespacial y ms.

Existen bsicamente dos tipos de encoder segn su diseos bsico y funcionalidad: encoder
Incremental y encoder Absoluto. Adicionalmente existen otros tipos de encoders como por ejemplo el
encoder ptico, lineal y el encoder de cuadratura.

El encoder ptico es el tipo de encoder ms comnmente usado y consta bsicamente de tres partes:
una fuente emisora de luz, un disco giratorio y un detector de luz conocido como foto detector.

El disco est montado sobre un eje giratorio y cuenta con secciones opacas y transparentes sobre la
cara del disco. La luz que emite la fuente es recibida por el foto-detector o interrumpida por el patrn
de secciones opacas produciendo como resultado seales de pulso.

El cdigo que se produce con dichas seales de pulso es entonces ledo por un dispositivo controlador
el cual incluyen un micro-procesador para determinar el ngulo exacto del eje.

Un encoder lineal es un dispositivo o sensor que cuenta con una escala graduada para determinar su
posicin. Los sensores en el encoder leen la escala para despus convertir su posicin codificada en
una seal digital que puede ser interpretada por un controlador de movimiento electrnico.

Los encoders lineales pueden ser absolutos o incrementales y existen diferentes tipos de encoders
lineales segn la tecnologa usada en su mecanismo, por ejemplo, tecnologa ptica, magntica,
inductiva o capacitiva.

Este tipo de encoder es ms utilizado en aplicaciones de metrologa, sistemas de movimiento y para


controlar instrumentos de alta precisin utilizados en la fabricacin de herramientas.
Prctica 12-Odmetro con encoder incremental
Un encoder de cuadratura es un tipo de encoder rotativo incremental el cual tiene la capacidad de
indicar tanto la posicin como la direccin y la velocidad del movimiento.

Los encoders de cuadratura se encuentran con mucha ms frecuencia en muchos productos elctricos
de consumo y en una infinidad de aplicaciones comerciales. La flexibilidad del encoder de cuadratura
es su principal ventaja ya que ofrecen una alta resolucin, medicin con precisin quirrgica y pueden
trabajar en un gran espectro de velocidades que van desde unas cuantas revoluciones por minuto
hasta velocidades que van ms all de las 5,000 RPM.

Este tipo de encoder de cuadratura generalmente utiliza sensores pticos o magnticos, lo cual los
convierte en dispositivos sencillos de usar y extremadamente duraderos.

Un encoder incremental, como su nombre lo indica, es un encoder que determina el ngulo de


posicin por medio de realizar cuentas incrementales.
Esto quiere decir que el encoder incremental provee una posicin estratgica desde donde siempre
comenzar la cuenta. La posicin actual del encoder es incremental cuando es comparada con la
ltima posicin registrada por el sensor.

Los encoders incrementales son un tipo de encoder ptico y este en este tipo de encoder cada posicin
es completamente nica.

Un encoder absoluto se basa en la informacin proveda para determinar la posicin absoluta en


secuencia. Un encoder absoluto ofrece un cogido nico para cada posicin.
Los encoders absolutos se dividen en dos grupos: los encoders de un solo giro y los encoders
absolutos de giro mltiple y su tamao es pequeo para permitir una integracin ms simple.

Los encoders absolutos son ms comnmente usados en motores elctricos de corriente directa sin
cepillos (brushless DC motors), en la medicina, la industria del transporte en especial en trenes, en la
minera y otras industrias.
Prctica 12-Odmetro con encoder incremental

DESARROLLO
CONSIDERACIONES DE DISEO Y ARMADO DEL ODMETRO
Primeramente se muestra un pequeo diagrama en el cual se sugieren las resistencias de pull-up del
fabricante. Con esto evitamos que se dispare la corriente y gracias a ello la podemos regular para
evitar cualquier dao a nuestro sensor. Valores R2=R3=10k.
Prctica 12-Odmetro con encoder incremental

DIAGRAMAS DE CONEXIONES
Dado que el odmetro se hizo con arduino, se incluye un diagrama de conexiones del display a la
placa arduino.

Cabe sealar que se coloc un potencimetro de 10k Vo, precisamente para tener el control del
contraste del mismo display como un extra.
Ahora se muestran las conexiones del arduino al encoder, hechas con el programa fritzing.
Prctica 12-Odmetro con encoder incremental

CLCULOS PREVIOS
Para la utilizacin de este encoder es necesario saber que la llanta que utilizaremos es de 6.2cm de
dimetro.
Prctica 12-Odmetro con encoder incremental
Poder saber la posicin de la rueda y si est girando hacia adelante o hacia atrs empleamos el
siguiente cdigo en arduino, con el fin de obtener cuantos pulsos hay en una revolucin.

1. /* Arduino Rotary Encoder Tutorial


2. *
3. * by Dejan Nedelkovski, [Link]
4. *
5. */
6.
7. #define outputA 6
8. #define outputB 7
9.
10. int counter = 0;
11. int aState;
12. int aLastState;
13.
14. void setup() {
15. pinMode (outputA,INPUT);
16. pinMode (outputB,INPUT);
17.
18. [Link] (9600);
19. // Reads the initial state of the outputA
20. aLastState = digitalRead(outputA);
21. }
22.
23. void loop() {
24. aState = digitalRead(outputA); // Reads the "current" state of the outputA
25. // If the previous and the current state of the outputA are different, that means a Pulse has occured
26. if (aState != aLastState){
27. // If the outputB state is different to the outputA state, that means the encoder is rotating clockwise
28. if (digitalRead(outputB) != aState) {
29. counter ++;
30. } else {
31. counter --;
32. }
33. [Link]("Position: ");
34. [Link](counter);
35. }
36. aLastState = aState; // Updates the previous state of the outputA with the current state
37. }

As que marcamos la rueda y fuimos viendo en el monitor serial la posicin respecto a la marca.
Con lo que logramos ver que nuestra posicin respecto a esa marca. En total fueron 30 pulsos por
revoluvin.
Entonces procedimos a calcular el permetro de nuestra rueda.
= = 6.2 = 6
Luego calculamos la distancia que recorre en cada pulso dividiendo eso entre 30.
Obtuvimos que cada pulso que genera en encoder al avanzar sea hacia a adelante o hacia a atrs
recorre 0.649cm.
Prctica 12-Odmetro con encoder incremental

Esto nos llev a modificar este cdigo y producir uno nuevo, explicado paso a paso a continuacin.

Esa parte de la definicin de entradas y salidas de acuerdo a los componentes que se utilizaron queda
bastante clara ahora pasamos a los pines que se reciben en arduino como entradas de datos y se
inicie la comunicacin serial junto con el despliegue de un mensaje en el display LCD.
Prctica 12-Odmetro con encoder incremental

Ahora se muestra el ciclo que conforma la base principal de nuestro odmetro, el cual se explica a
continuacin.

Cabe sealar que para el uso del encoder no fue necesario utilizar una librera en especfico.
Ahora bien este ciclo funciona de manera que el estado de nuestra seal de reloj se encuentra en 1 o
en 0. Y se comienza una sentencia de comparacin en la cual se predefini el estado previo de a
como primera lectura y luego se define el estado actual de a como otra lectura.
La comparacin radica en 2 estados de posicin de acuerdo a los interruptores dentro del encoder, si
ambos son distintos, entra la nueva sentencia, en la cual se dice:
Si gira el mando hacia la derecha har que el interruptor de conexin de A y C cambien de estado en
primer lugar.
Si gira el mando hacia la izquierda har que el interruptor de conexin B y C cambien de estado en
primer lugar.
Si suceden ambas cosas, el contador comienza a incrementarse en 1 y la distancia de sobreescribe
como el valor que ya calculamos antes por pulso que enva la seal clk del pin 7.
En caso de que suceda lo contrario, habr un decremento en el contador y en vez de sumar la distancia
que recorre cada pulso, la restar.
Prctica 12-Odmetro con encoder incremental

Finalmente se muestran los datos de la distancia recorrida de acuerdo a la suma o resta de pulsos de
acuerdo a la siguiente manera en el display o tambin en el monitor serial de la ide de arduino

Ahora mostramos las fotografas del circuito armado.


Prctica 12-Odmetro con encoder incremental
Prctica 12-Odmetro con encoder incremental
Prctica 12-Odmetro con encoder incremental

He aqu nuestro circuito funcionando, midiendo distancia hacia adelante y si del origen se pasa,
marca la distancia recorrida hacia el otro lado.
Prctica 12-Odmetro con encoder incremental

CONCLUSIONES
Gracias a la realizacin de este sensor logramos identificar el funcionamiento de un decodificador
incremental al cual, con base en la teora ya vista durante clases, comprendimos la importancia de
determinar la correcta variacin de posicin por medio de realizar cuentas incrementales
aprovechando los pulsos que este genera en los 2 estados de acuerdo al sentido de giro.

Para lograr esto tuvimos primero que comprender como es que funciona la lgica de un decodificador
incremental y calcular la cantidad que recorra la rueda acoplada al encoder de forma tal que
supiramos la distancia recorrida por 1 pulso y el nmero de pulsos que hay en una rueda teniendo
siempre presente que estos datos van a variar dependiendo dimetro de la misma.
Prctica 12-Odmetro con encoder incremental
Finalmente podemos decir que no fue fcil encontrar informacin de este sensor dado que el fabricante
es coreano, sin embargo el correcto funcionamiento de este dependi mucho de la utilizacin de las
resistencias de pull-p del decodificador para no sobrepasar sus lmites de correcta operatividad.

BIBLIOGRAFA Y CIBERGRAFA
[1] [Link]
rotary-encoder-user-manual/#The_Keyes_KY-040_Rotary_Encoder
[2] [Link]
[3] [Link]
[4] [Link]
Prctica 12-Odmetro con encoder incremental
[5] [Link]
[6] [Link]

ANEXOS
Dentro de la carpeta de esta prctica, se incluyen las hojas de especificaciones de los
componentes utilizados a destacar en esta prctica en PDF, as como diagramas de conexin
y/o simulaciones de los circuitos presentados y cdigos de programas.

Common questions

Con tecnología de IA

An incremental encoder determines position by keeping a count of increments from a given point, whereas an absolute encoder provides a unique code for each position to determine absolute positioning. Incremental encoders begin counting from a strategic position, and their current position is relative to the last known position . In contrast, absolute encoders maintain a unique position code, useful for tasks requiring complete orientation data .

A linear encoder determines position based on a scale along a straight path, translating position information into digital signals for motion control. They are used in precision systems such as metrology and tool manufacturing . In contrast, a rotary encoder measures angular position changes or rotations of a shaft, typically used in applications like controlling stepper motors or digital potentiometers .

Design considerations for using an encoder in an Arduino-based odometer system include ensuring proper connection of encoder outputs to Arduino inputs, configuring the correct pin initialization, and setting up serial communication for data visualization. Additionally, calculating the wheel circumference accurately for correct distance tracking, stabilizing the circuit with pull-up resistors, and integrating a display module for real-time feedback are essential for effective system functionality .

In the odometer design presented in the document's experiment, the encoder is crucial for measuring rotational increments of a wheel to calculate distance traveled. The encoder counts pulses per wheel rotation, with 30 pulses equating to one full revolution. This count translates into linear displacement by calculating the wheel's circumference and associating each pulse with a specific distance traveled, thus aiding in precise distance measurement for the odometer setup .

Pull-up resistors contribute to accurate encoder signal reading by ensuring stable high voltage levels when the switches are open, reducing noise and false triggering. They stabilize the circuit by providing a defined logic state, preventing erratic signals that might result from floating inputs. This stability is crucial in the documented project to maintain consistent encoder performance, ensuring reliable distance measurements in the odometer .

Calculating the perimeter of the wheel is significant because it allows for converting encoder pulses into linear distance measurements in the odometer setup. With the wheel diameter known, its perimeter provides the basis for determining the distance traveled per pulse, enabling accurate tracking of movement. In the documented setup, the perimeter is used to calculate the distance each pulse represents, thus converting rotational data into meaningful linear travel distances .

The operational conditions necessary for a rotary encoder, such as the Keyes KY-040, include the use of pull-up resistances to stabilize the switch states. The pull-up resistors ensure that the pins are held high when the switches are open and pulled low when closed. Specifically, applying a ground to pin C when switches are closed and using a 5V input with pull-up resistors help maintaing signal stability and prevent damage to the sensor circuits by modulating current flow .

Encoders are crucial in modern industrial applications for providing precise position and speed feedback, which is essential for automated systems. Industries such as robotics, aerospace, consumer electronics, and transportation heavily utilize encoders, relying on them for accuracy in motion control and efficient system operation. For example, encoders are integral in robotic arm positioning and speed regulation in conveyor belts .

The rotary encoder Keyes KY-040 determines the direction of rotation through the state changes of two switches connected to pins A and B. When the encoder is rotated right, the switch connecting pin A to pin C changes state first. Conversely, when rotated left, the switch connecting pin B to pin C changes state first. This sequential change tells the controller in which direction the encoder is being turned .

A quadrature encoder extends the functionalities of a standard incremental encoder by providing dual-channel output that enables the determination of position, direction, and speed simultaneously. The quadrature phase allows these encoders to detect rotational direction and extend resolution through phase detection. This versatility makes them suitable for more complex applications requiring high precision and speed control .

También podría gustarte