P3

13
Práctica No. 3: Codificador óptico incremental: cuadratura de señales en hardware y software R. Mayoral-Lagunes, M. Méndez-Morales Diseño de Sistemas Mecatrónicos II | Departamento de Mecatrónica Resumen En este documento se presenta la codificación utilizando un codificador óptico (Heads-5000) incremental por cuadraturas de señales por medio de los integrados 74 LS74 y HCTL-2016 (hardware) y a la vez utilizando la consola arduino (software) 1. Introducción Un codificador óptico digital es un dispositivo que convierte movimiento en una secuencia de pulsos digitales. Al contar un solo bit o decodificar un conjunto de bits , los pulsos se pueden convertir en mediciones de posición relativa o absoluta. L os codificadores tienen configuraciones tanto lineales como giratorias, pero el tipo más común es el giratorio. Los codificadores giratorios se fabrican de formas básicas: el codificador, donde la unica palabra digital corre- sponde a cada posición rotacional del eje; y el codificador incremental, que produce pulsos digitales conforme el eje gira, lo que permite la medición del desplazamiento relativo del eje. La mayoría de los codificadores giratorios se componen de un disco de código de vidrio o plástico con un modelo radial depositado fotográficamente y organizado en pistas. Conforme las lineas radiales interumpen el haz entre un par fotoemisor-detector en cada pista, se producen los pulsos digitales. El disco óptico de codificador absoluto se diseña para producir una palabra digital que distingue N distin- tas posiciones del eje. Los tipos más comunes de codificación numérica usada en el codificador absoluta son los códigos Gray y el binario natural; conforme las pistas circulares del disco de código giran con el eje, los fotodetectores sienten los patrones lineales y los diagramas de tiemp asociados. El codificador incremental, a veces llamado codificador relativo, es más simple en diseño que el códificador absoluto. Consiste en dos pistas y dos sensores cuyas salidas se designan A y B. Conforme gira el eje, en A y B ocurren trenes de pulsos a una frecuencia proporcional a la velocidad del eje, y las relaciones de adelantro-atraso de fase entre las señales produce la dirección de rotación. Al contar el número de pulsos y saber la resolución del disco , se puede medir el movimiento angular. Las transiciones de decodificación de A y B usan circuitos lógicos secuenciales para proporcionar tres difer- entes resoluciones: 1X, 2X Y 4X. La resolución 1X proporciona una transición de salida en cada flanco negativo de la señal A o B, lo que resulta en un solo pulso por cada ciclo de cuadratura. La resolución 2X prporciona una transición de salida en todo el flanco negativo o positivo de la señal A o B, lo que resulta en dos veces el número 1

description

Diseño de sistemas mecatronicos

Transcript of P3

  • Prctica No. 3:Codificador ptico incremental: cuadratura de seales en hardware

    y software

    R. Mayoral-Lagunes, M. Mndez-Morales

    Diseo de Sistemas Mecatrnicos II | Departamento de Mecatrnica

    Resumen

    En este documento se presenta la codificacin utilizando un codificador ptico (Heads-5000) incremental por

    cuadraturas de seales por medio de los integrados 74 LS74 y HCTL-2016 (hardware) y a la vez utilizando

    la consola arduino (software)

    1. Introduccin

    Un codificador ptico digital es un dispositivo que convierte movimiento en una secuencia de pulsos digitales.Al contar un solo bit o decodificar un conjunto de bits , los pulsos se pueden convertir en mediciones de posicinrelativa o absoluta. L os codificadores tienen configuraciones tanto lineales como giratorias, pero el tipo mscomn es el giratorio.

    Los codificadores giratorios se fabrican de formas bsicas: el codificador, donde la unica palabra digital corre-sponde a cada posicin rotacional del eje; y el codificador incremental, que produce pulsos digitales conforme eleje gira, lo que permite la medicin del desplazamiento relativo del eje. La mayora de los codificadores giratoriosse componen de un disco de cdigo de vidrio o plstico con un modelo radial depositado fotogrficamente yorganizado en pistas. Conforme las lineas radiales interumpen el haz entre un par fotoemisor-detector en cadapista, se producen los pulsos digitales.

    El disco ptico de codificador absoluto se disea para producir una palabra digital que distingue N distin-tas posiciones del eje. Los tipos ms comunes de codificacin numrica usada en el codificador absoluta sonlos cdigos Gray y el binario natural; conforme las pistas circulares del disco de cdigo giran con el eje, losfotodetectores sienten los patrones lineales y los diagramas de tiemp asociados.

    El codificador incremental, a veces llamado codificador relativo, es ms simple en diseo que el cdificadorabsoluto. Consiste en dos pistas y dos sensores cuyas salidas se designan A y B. Conforme gira el eje, en A y Bocurren trenes de pulsos a una frecuencia proporcional a la velocidad del eje, y las relaciones de adelantro-atrasode fase entre las seales produce la direccin de rotacin. Al contar el nmero de pulsos y saber la resolucindel disco , se puede medir el movimiento angular.

    Las transiciones de decodificacin de A y B usan circuitos lgicos secuenciales para proporcionar tres difer-entes resoluciones: 1X, 2X Y 4X. La resolucin 1X proporciona una transicin de salida en cada flanco negativode la seal A o B, lo que resulta en un solo pulso por cada ciclo de cuadratura. La resolucin 2X prporciona unatransicin de salida en todo el flanco negativo o positivo de la seal A o B, lo que resulta en dos veces el nmero

    1

  • de pulsos de salida. La resolucin 4X proporciona un pulso de salida en cada flanco positivo o negativode laseal A o B, lo que resulta cuatro veces en nmero de pulsos de salida.

    Adems de los flancos detectados para la resolucin 1X, se pueden disear circuitos para detectar otrosflancos en las seales en cuadratura, lo que resulta en dos veces (2X) y cuatro veces (4X) la resolucin base (1X).Dichps circuitos decodificadores en cuadratura se pueden construir con componentes discretos, pero tambinestn disponibles en CI (por ejemplo, el HCTL-2016).()

    Los codificadores incrementales proporcionan ms resolucin a menor costo que los codificadores absolutos,pero solo miden movimientos relativos y no proporcionan posicin absoluta de manera directa. Sin embargo,se pueden usar un codificador incremental junto con un interruptor de fin de carrera para definir la posicinabsoluta en relacin con una posicin de referencia definida por el interruptor.

    Para la realizacin de esta prctica se utilizo el codificador ptico HEDS 5000 (1) entre sus caracteristacasse encuentran:

    Tamao pequeo: 28 mm de dimetro

    100-512 ciclos por revolucin

    Baja inercia

    Rpido ensamble

    Bajo juego de eje: 0.25 mm

    Salidas digitales compatibles con TTL

    Una sola alimentacin de voltaje de 5 V

    Amplio rango de temperatura

    Pulso de INDICE disponible

    Figura 1: Codificador ptico Heds 5000

    2

  • El CI HCTL-2016 ( 2)es un decodificador de cuadratura, contadores y funciones de interfaces, esta disea-do para mejorar el desempeo de los sistemas de control de movimiento digitales en lazo cerrado, entre suscaracteristicas se encuentran :

    Interface de codificador con microprocesador

    Reloj de hasta 14 MHz Decodificador de 4X

    Alta inmunidad al ruido: Entradas digitales Schmitt Trigger y filtros de ruido

    Contador binario ascendente/descendente de 16-Bit

    Salidas con Latch

    Interface triestado de 8-Bit

    Voltaje de operacin VDD : -0.3 a +5.5 V

    Figura 2: Decodificador HCTL-2016

    3

  • 2. Objetivo

    Conocer alternativas para la lectura de los encoders ya sea por CI o Microcontroladores mediante la cuadratu-ra de seales

    3. Desarrollo y anlisis de resultados

    Esta prctica se desarroll en 4 puntos:1.Se tomaron lecturas con el osciloscopio de los dos canales A y B directamente de la salida del encoder del

    motor, para mostrar la secuencia el desfasamiento de los dos canales en ambas direcciones de giro.

    La conexin del encoder fue de la siguiente manera: el pin 2 vcc a 5v, el pin 3 o 6 a tierra o comn, canalA el pin 1, canal B el pin 8, el ndice el pin 10, as como se muestra en la figura 3. Y as solo se mide con elosciloscopio los canales A y B con el osciloscopio en ambos sentidos de giro, esto se aprecia en las figuras ?? y 4

    Figura 3: HEADS-5000

    4

  • Figura 4: Salida hacia la izquierda

    2.Se realiz la cuadratura de las seales con flip-flops tipo D (74LS74) y se tomaron lecturas con el osciloscopioen ambos sentidos de giro de ambas salidas de los flip-flops. El diagrama se muestra en la figura 5, despues semidieron las salidas Q1 y Q2 con el osciloscopio mostradas en las figuras 6 y 7.

    5

  • Figura 5: Diagrama del CI 74LS74

    Figura 6: Salida hacia la derecha del flip-flop

    6

  • Figura 7: Salida hacia la izquierda del Flip-Flop

    3.Se us el circuito HCTL2016 que es un contador de 256 bits que tiene una configuracin de resolucin de2x con el cual se midieron los bits conectando leds a la salida. Para la conexion de este integrado los pines CLKy OE se conectaron a un generador de pulsos a una freguencia de 1khz, los pines SEL y RST a 5v. , los pineschane A y chanel B se toman directamente de los canales del encoder, posteriormente las salidas se miden conleds en los pines D0:D7. los pines se muestran en la figura 8

    Figura 8: Diagrama del HCTL-2016

    7

  • Figura 9: Funcionamiento del circuito

    4.Se realiz la cuadratura de la seal por medio de la tarjeta arduino uno usando interrupciones y amboscanales, probando con resolucin 1x y 2x y monitoriando desde el puerto serial.

    los cdigos de programa se presentan a continuacin:

    C\U{f3}digo para resoluci\U{f3}n 2X

    boolean A, B;

    int cont=0,posd=0;// posd es varible de posicion deseada

    void setup()

    {

    pinMode(2,INPUT);

    pinMode(3,INPUT);

    attachInterrupt(0, CH_A, CHANGE);

    attachInterrupt(1, CH_B, CHANGE);

    Serial.begin(9600);

    }

    void loop()

    {

    if(cont==posd)

    {

    cont=0;

    }

    }

    void CH_A()

    {

    A=digitalRead(2);

    B=digitalRead(3);

    if(A==0 && B==1)

    {

    8

  • cont++;

    Serial.println(cont);

    }

    if(A==1 && B==1)

    {

    cont--;

    Serial.println(cont);

    }

    }

    void CH_B()

    {

    A=digitalRead(2);

    B=digitalRead(3);

    if(A==1 && B==0)

    {

    cont--;

    Serial.println(cont);

    }

    if(A==1 && B==1)

    {

    cont++;

    Serial.println(cont);

    }

    }

    ----------------------------------------------------------------------------------------------------

    //codigo para una resolucion de 1x

    boolean A, B;

    int cont=0,posd=0;// posd es varible de posicion deseada

    void setup()

    {

    pinMode(2,INPUT);

    pinMode(3,INPUT);

    attachInterrupt(0, CH_A, CHANGE);

    attachInterrupt(1, CH_B, CHANGE);

    Serial.begin(9600);

    }

    void loop()

    {

    if(cont==posd)

    {

    cont=0;

    }

    }

    void CH_A()

    {

    A=digitalRead(2);

    B=digitalRead(3);

    9

  • if(A==0 && B==1)

    {

    cont++;

    Serial.println(cont);

    }

    }

    void CH_B()

    {

    A=digitalRead(2);

    B=digitalRead(3);

    if(A==1 && B==0)

    {

    cont--;

    Serial.println(cont);

    }

    }

    en la figura \QTSN{ref}{5} y \QTSN{ref}{8},se muestra como es la lectura del puerto serial.

    10

  • Figura 10: salida del monitor serial

    11

  • Figura 11: Salida del monitor serial desde la consola arduino

    4. Conclusiones generales

    Mariana:En esta prctica pudimos conocer y experimentar con codificadores y decodificadores; por medio dehardware utilizamos los CI 74LS74 y HCTL-2016 con esto realizamos las cuadraturas de seales y graficarmoslos sentidos de giro del motor, por medio del HCTL-2016 pudimos visualizar mediante leds los sentidos de giroya que incrementaba y decrementaba.

    Mediante software se utilizo la plataforma de arduino para la programacion del contador de giro del motor,se presentaron problemas al programar en arduino mega 2560.

    Rosalino:en estas practicas se implemento las diversas formas de como se pueden usar los encoders, por

    12

  • medio de circuitos integrados o por micro controladores programables, as pues se trabajo con la placa arduinouno, por causas desconocidas no se logro implementar con el arduino mega, sin embargo con el arduino uno selogro una buena lectura del encoder, pero limitada su velocidad dada la velocidad de procesamiento de la placa.

    Referencias

    [alciatore] Introduccin a la mecatronica y a los instrumentos de medicin/

    3ED.ALCIATORE,DAVIDG.HISTAND,MICHAEL

    /Editorial:MCGRAWHILL/ISBN:9789701063859

    13