0% encontró este documento útil (0 votos)
16 vistas6 páginas

Encoder Incremental: Guía Técnica

El encoder HEDS-65xx/HEDL-65xx es un dispositivo incremental óptico diseñado para medir posición, velocidad y dirección de movimiento, utilizado en aplicaciones que requieren alta precisión. Ofrece hasta 1024 cuentas por revolución, opera en temperaturas de hasta 100 °C y proporciona señales digitales cuadradas para la detección de movimiento. Su integración en sistemas permite un control preciso del movimiento angular, siendo esencial en entornos industriales.

Cargado por

ESEEKIEL VARGAS
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
0% encontró este documento útil (0 votos)
16 vistas6 páginas

Encoder Incremental: Guía Técnica

El encoder HEDS-65xx/HEDL-65xx es un dispositivo incremental óptico diseñado para medir posición, velocidad y dirección de movimiento, utilizado en aplicaciones que requieren alta precisión. Ofrece hasta 1024 cuentas por revolución, opera en temperaturas de hasta 100 °C y proporciona señales digitales cuadradas para la detección de movimiento. Su integración en sistemas permite un control preciso del movimiento angular, siendo esencial en entornos industriales.

Cargado por

ESEEKIEL VARGAS
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

Reporte Técnico: Encoder Incremental

HEDS-65xx/HEDL-65xx

*1. Descripción General El encoder HEDS-65xx/HEDL-65xx es un dispositivo incremental


óptico diseñado para medir posición, velocidad y dirección de movimiento. Este modelo es
ampliamente utilizado en aplicaciones que requieren alta precisión y confiabilidad, como:

ˆ Sistemas de posicionamiento.

ˆ Manipuladores robóticos.

ˆ Mesas de trabajo automatizadas.

ˆ Impresoras y trazadores.

El encoder funciona detectando cambios en la posición de un eje rotativo mediante una


rueda de código óptica, un LED emisor y un detector óptico.

*2. Especificaciones Técnicas

Caracterı́sticas Clave

ˆ Resolución: Hasta 1024 cuentas por revolución (PPR).

ˆ Temperatura de operación: Hasta 100 °C, adecuado para entornos industriales.

ˆ Compatibilidad de eje: Diámetro máximo del eje de 5/8 pulgadas (15.875 mm).

ˆ Alimentación: Voltaje de operación de +5V DC.

ˆ Señales de salida:

– Canales A y B: Señales digitales cuadradas en cuadratura con un desplazamiento


de 90°.

– Canal I: Pulso de ı́ndice único por revolución.

1
– Señales inversas -A, -B, -I (en modelos diferenciales).

*3. Funcionamiento

Principio de Operación

1. Emisión de luz: Un LED emisor proyecta luz hacia una rueda de código.

2. Modulación de luz: La rueda de código contiene ranuras que interrumpen la luz según
la rotación del eje.

3. Detección óptica: Los detectores convierten la luz modulada en señales digitales cuadradas.

Salidas Digitales

ˆ A y B: Proporcionan información sobre la posición y la dirección del movimiento. La


secuencia de activación indica:

– Si A cambia antes que B, el movimiento es horario.

– Si B cambia antes que A, el movimiento es antihorario.

ˆ I (Índice): Genera un pulso único por revolución, útil como referencia de posición.

*4. Cálculos Esenciales

Resolución Angular

La resolución del encoder determina el ángulo medido por cada pulso:

360
Ángulo por pulso =
Resolución (PPR)

Ejemplo: Para un encoder de 1024 PPR:

360
Ángulo por pulso = = 0.3516 por pulso.
1024

Conversión de Pulsos a Ángulo

Ángulo actual = Pulsos contados × Ángulo por pulso

Ejemplo: Si se han contado 250 pulsos:

Ángulo actual = 250 × 0.3516 = 87.9

2
Velocidad Angular

Si se necesita calcular la velocidad angular:

∆Ángulo
Velocidad angular =
∆Tiempo

Ejemplo: Si el ángulo cambia de 87.9° a 105.5° en 0.2 segundos:

105.5 − 87.9
Velocidad angular = = 87.9/s
0.2 s

*5. Integración al Sistema

Lectura de Señales y Procesamiento

El encoder emite señales digitales cuadradas que deben ser leı́das y procesadas:

1. Captura de señales:

ˆ Usar entradas digitales de un microcontrolador (como Arduino).

ˆ Configurar interrupciones para detectar cambios en los canales A y B.

2. Cálculo en Tiempo Real:

ˆ Contar los pulsos en función de los cambios de estado de los canales.

ˆ Determinar la dirección con la relación entre A y B.

ˆ Calcular el ángulo acumulado utilizando la resolución del encoder.

3. Calibración:

ˆ Mover manualmente el eje hasta el lı́mite inferior y registrar los pulsos (posición
mı́nima).

ˆ Mover al lı́mite superior y registrar los pulsos (posición máxima).

ˆ Convertir estos pulsos a valores angulares para definir el rango operativo.

*6. Ejemplo de Código en Arduino


# define PIN_A 2
# define PIN_B 3

volatile int contadorPulsos = 0;

3
float anguloActual = 0.0;
const float resolucionPPR = 1024.0;
const float anguloPorPulso = 360.0 / resolucionPPR ;

void setup () {
pinMode ( PIN_A , INPUT ) ;
pinMode ( PIN_B , INPUT ) ;
attachInterrupt ( d i g i t a l P i n T o I n t e r r u p t ( PIN_A ) , procesarEncoder ,
CHANGE ) ;
attachInterrupt ( d i g i t a l P i n T o I n t e r r u p t ( PIN_B ) , procesarEncoder ,
CHANGE ) ;
Serial . begin (9600) ;
}

void procesarEncoder () {
int estadoA = digitalRead ( PIN_A ) ;
int estadoB = digitalRead ( PIN_B ) ;
if ( estadoA == estadoB ) {
contadorPulsos ++;
} else {
contadorPulsos - -;
}
anguloActual = contadorPulsos * anguloPorPulso ;
}

void loop () {
Serial . print ( " Pulsos : ␣ " ) ;
Serial . print ( contadorPulsos ) ;
Serial . print ( " Angulo : ␣ " ) ;
Serial . println ( anguloActual ) ;
delay (100) ;
}

*7. Ejemplo de Código en Python para Guardar Datos


import serial
import openpyxl
from openpyxl . styles import Font , Alignment

4
PUERTO_SERIAL = ’ COM3 ’
BAUD_RATE = 9600

arduino = serial . Serial ( PUERTO_SERIAL , BAUD_RATE )


wb = openpyxl . Workbook ()
hoja = wb . active
hoja . title = " Lecturas ␣ del ␣ Encoder "

hoja . append ([ " Tiempo ␣ ( s ) " , " Pulsos " , " Direcci \ ’ on " , " \ ’ Angulo ␣ (\
textdegree ) " ])
inicio_tiempo = time . time ()

try :
while True :
linea = arduino . readline () . decode ( ’utf -8 ’) . strip ()
datos = linea . split ( " | " )
pulsos = datos [0]. split ( " : " ) [1]. strip ()
direccion = datos [1]. split ( " : " ) [1]. strip ()
angulo = datos [2]. split ( " : " ) [1]. strip ()
tiempo_actual = time . time () - inicio_tiempo
hoja . append ([ round ( tiempo_actual , 2) , int ( pulsos ) , direccion ,
float ( angulo ) ])
except KeyboardI nterr upt :
arduino . close ()
wb . save ( " datos_encoder . xlsx " )

*8. Aplicación en el Proyecto

Calibración del Sistema

1. Liberación del Freno:

ˆ Mover manualmente el brazo para registrar los pulsos correspondientes a los lı́mites
fı́sicos.

2. Definición del Rango Angular:

ˆ Lı́mite inferior: 0 pulsos (0°).

5
ˆ Lı́mite superior: 512 pulsos (180° para un rango semicircular).

3. Uso en Tiempo Real:

ˆ Monitorear el ángulo calculado para controlar la posición del brazo robótico dentro
de los lı́mites definidos.

*9. Conclusión El encoder HEDS-65xx/HEDL-65xx ofrece una solución precisa y confiable


para medir movimiento angular en aplicaciones como brazos robóticos. Su integración permite:

ˆ Determinar la posición angular con alta precisión.

ˆ Monitorear y controlar el movimiento del sistema.

ˆ Establecer lı́mites fı́sicos mediante calibración manual.

Este encoder, combinado con un procesamiento adecuado, es una herramienta esencial para
sistemas de control que requieren alta resolución y robustez en entornos industriales.

También podría gustarte