material pract 3

Upload: kathleensue

Post on 04-Apr-2018

247 views

Category:

Documents


0 download

TRANSCRIPT

  • 7/31/2019 Material Pract 3

    1/19

    REPBLICA BOLIVARIANA DE VENEZUELAMINISTERIO DEL PODER POPULAR PARA LA DEFENSA

    UNIVERSIDAD NACIONAL EXPERIMENTAL POLITCNICA

    DE LA FUERZA ARMADA NACIONALU.N.E.F.A. NCLEO ARAGUA SEDE MARACAYCOORDINACIN DE TELECOMUNICACIONESLABORATORIO DE MICROPROCESADORES

    Prctica N 5. Manejo del ADC del PIC y de los elementos accionadores (motores)

    Mdulos analgicos

    Aparte de disponer de un gran nmero de lneas digitales de E/S utilizadas para la comunicacin

    con los perifricos, el PIC16F876 contiene 5 canales de entradas analgicas (puerto A). Debido astas, el microcontrolador no slo puede reconocer si un pin es llevado a bajo o alto (0 o +5V), sino

    que puede medir con precisin el voltaje y convertirlo en un valor numrico, o sea, en formato

    digital.

    El convertidor A/D es uno de los mdulos analgicos ms importantes dentro del

    microcontrolador. Dispone de las siguientes caractersticas:

    La conversin se lleva al cabo aplicando el mtodo de aproximacin sucesiva; El convertidor A/D convierte una seal de entrada analgica en un nmero binario de 10

    bits;

    La resolucin mnima o calidad de conversin se puede ajustar a diferentes necesidades alseleccionar voltajes de referencia Vref- y Vref+.

    La resolucin que tiene cada bit procedente de la conversin tiene un valor que es funcin de la

    tensin de referencia Vref, de acuerdo con la frmula siguiente:

    Resolucin = (Vref+ - Vref-) /1.024 = Vref /1.024

    Si la Vref+ = 5 VDC y la Vref- es tierra, la resolucin es de 4,8 mV/bit. Por tanto, a la entrada

    analgica de 0V le corresponde una digital de 00 0000 0000 y para la de

  • 7/31/2019 Material Pract 3

    2/19

    5V una de 11 1111 1111. La tensin de referencia determina los lmites mximo y mnimo de la

    tensin analgica que se puede convertir. El voltaje diferencial mnimo es de 2 V.

    La tensin de referencia puede implementarse con la tensin interna de alimentacin VDD, o bien,

    con una externa que se introduce por los pines

    RA3/AN3/V ref+ / RA2/AN2/V ref-.

    CONVERTIDOR A/D

    Aunque a primera vista parece muy complicado utilizar un convertidor A/D, en realidad es muy

    simple. De hecho resulta ms simple utilizar un convertidor A/D que los temporizadores o mdulos

    de comunicacin serie.

  • 7/31/2019 Material Pract 3

    3/19

  • 7/31/2019 Material Pract 3

    4/19

    Registro ADCON0

  • 7/31/2019 Material Pract 3

    5/19

    Registro ADCON1

  • 7/31/2019 Material Pract 3

    6/19

    REQUERIMIENTOS DE ADQUISICIN A/D

    Para que el convertidor A/D alcance su exactitud especificada, es necesario proporcionar un ciertotiempo muerto entre seleccionar una entrada analgica especfica y la medicin misma. Este

    tiempo se le denomina tiempo de adquisicin y generalmente depende de la impedancia de la

    fuente. La mxima impedancia de entrada recomendada de la fuente analgica, a fin de no afectar

    la exactitud de la conversin, no deber ser mayor de 10 K. Se utiliza una ecuacin para hacer

    clculo de tiempo de adquisicin con precisin, cuyo valor mnimo es de 20uS aproximadamente.

    Por consiguiente, para realizar una conversin con precisin, no se olvide este detalle.

    RELOJ PARA LA CONVERSIN A/D

    El tiempo necesario para realizar una conversin A/D cuyo resultado es 1 bit se define en unidades

    de TAD. Se requiere que sea como mnimo 1,6 uS. Para realizar una conversin completa de 10 bits

    se requiere un poco ms tiempo de lo esperado, son 12 TAD. Como la frecuencia de reloj as como

    la fuente de conversin A/D son determinadas por software, es necesario seleccionar una de las

  • 7/31/2019 Material Pract 3

    7/19

    combinaciones de los bits disponibles ADCS1 y ADCS0 antes de empezar a medir voltaje en una de

    las entradas analgicas. Estos bits se almacenan en el registro ADCON0.

    Cualquier cambio de la frecuencia de reloj del microcontrolador afectar a la frecuencia de reloj de

    la conversin A/D, lo que puede perjudicar al resultado de la conversin A/D. En la siguiente tablase muestran las frecuencias de reloj posibles del dispositivo y cmo afectan a la velocidad de la

    conversin A/D.

    Utilizar el convertidor A/D

    Para medir el voltaje en un pin de entrada por medio del convertidor A/D, se debe realizar lo

    siguiente:

    Paso 1 - Configuracin del puerto:

    Escribir un uno lgico (1) a un bit del registro TRIS, lo que resulta en configurar el pinapropiado como una entrada.

  • 7/31/2019 Material Pract 3

    8/19

    Escribir un uno lgico (1) a un bit del registro ANSEL, lo que resulta en configurar el pinapropiado como una entrada analgica.

    Paso 2 - Configuracin del mdulo de la conversin A/D:

    Configurar voltaje de referencia en el registro ADCON1. Seleccionar una seal de reloj de la conversin A/D en el registro ADCON0. Seleccionar uno de los canales de entrada CHS0-CHS2 del registro ADCON0. Seleccionar el formato de dato por medio de ADFM del registro ADCON1. Habilitar el convertidor A/D al poner a uno el bit ADON del registro ADCON0.

    Paso 3 - Configuracin de la interrupcin (opcionalmente):

    Poner a cero el bit ADIF. Poner a uno los bits ADIE, PEIE y GIE .

    Paso 4 -Tiempo de espera para que transcurra el tiempo de adquisicin (aproximadamente 20uS).

    Paso 5 - Inicio de la conversin poniendo a uno el bit GO/DONE del registro ADCON0.

    Paso 6 - Esperar a que la conversin A/D finalice.

    Es necesario comprobar en el bucle de programa si el bit GO/DONE est a cero o esperarque se produzca una interrupcin (deber estar anteriormente habilitada).

    Paso 7 - Lectura del resultado de la conversin A/D:

    Leer los registros ADRESH y ADRESL.

  • 7/31/2019 Material Pract 3

    9/19

    COMANDOS EN ALTO NIVEL PARA EL MANEJO DEL CONVERSOR A/D

    ADIN: Inicia la conversin analgica/digital por hardware y almacena el resultado de la conversin

    en una variable. La resolucin de la conversin es de 10 bits.

    Sintaxis:

    variable = ADIN canal

    Canal: variable o constante (0..3) que estable el pin analgico para uso como entrada al conversor.

    Existen cuatro pines de entrada analgica, son: AN0, AN1, AN2 y AN3.

    Otros ajustes necesarios por el convertidor A/D, se realizan a travs de las declaraciones:

    DECLARE ADIN_TAD 2_FOSC, 8_FOSC, 32_FOSC

    2_FOSC: rpido (oscilador/2)

    8_FOSC: medio (oscilador/8)

    32_FOSC: lento (oscilador/32)

    64_FOSC: basado en el oscilador interno, valor por defecto = 64_FOSC.

    DECLARE ADIN_RES 8, 10, 12. Bits de resolucin, valor por defecto = 10

    DECLARE ADIN_STIME (0.. 65535 ms). Tiempo para la carga y descarga del capacitor de HOLD.

    Valor por defecto =50

  • 7/31/2019 Material Pract 3

    10/19

    Ejemplo de la conversin A/D

    Nota: El voltaje mximo sobre cualquier pin el el PIC no deber exceder nunca los 5 VDC.

    El comando ADIN, convierte un voltaje (0 a 5 VDC) aplicado a un pin, en un valor digital entre (0 y

    1023) aplicado a una variable. La entrada puede ser en todo momento escalada si se utiliza un

    voltaje de referencia externo Vref sobre el pin AN3. Si el voltaje de referencia aplicado al PIC es de

    2.5 VDC, se obtendr el doble de resolucin para el mismo conteo de (0 a 1023). El rangopermitido de voltajes de referencia deber estar entre (1 y 5) VDC, el cual, siempre deber ser

    aplicado sobre el pin AN3.

  • 7/31/2019 Material Pract 3

    11/19

    Elementos Accionadores (motores).

    Motores paso a paso:son aquellos que pueden moverse un paso a la vez por cada pulso que se lesaplique. Este paso puede variar desde 90 hasta pequeos movimientos de tan solo 1.8,dependiendo de las especificaciones del fabricante. Esta caracterstica los hace muy tiles en

    aplicaciones donde se requieran realizar movimientos muy precisos. Estos motores poseen lahabilidad de poder quedar enclavados en una posicin o bien totalmente libres. Si una o ms desus bobinas estn energizadas, el motor estar enclavado en la posicin correspondiente y por elcontrario quedar completamente libre si no circula corriente por ninguna de sus bobinas. Existendos tipos de motores paso a paso de imn permanente: bipolares y unipolares.

    Motores paso a paso unipolares: estos motores suelen tener 6 o 5 cables de salida, dependiendode su conexin interna tal como muestra la figura 1. Este tipo se caracteriza por ser ms simple decontrolar.

    Figura 1. Motor unipolar

    Para controlar un motor paso a paso unipolar, se requiere el uso de un ULN2803, el cual es unarreglo de 8 transistores tipo Darlington capaces de manejar cargas de hasta 500mA. Las entradasde activacin (Activa A, B, C y D) pueden ser directamente activadas por el microcontrolador.

    Figura 2. Conexin del ULN2803 con el motor unipolar.

  • 7/31/2019 Material Pract 3

    12/19

    Existen tres secuencias posibles para este tipo de motores, dichas secuencias comienzannuevamente por el paso 1 una vez alcanzado el paso final (4 u 8). Para revertir el sentido de giro,simplemente se deben ejecutar las secuencias en modo inverso.

    Secuencia Normal: Esta es la secuencia ms usada y la que generalmente recomienda elfabricante. Con esta secuencia el motor avanza un paso por vez y debido a que siempre hay almenos dos bobinas activadas, se obtiene un alto torque de paso y de retencin

    PASO Bobina A Bobina B Bobina C Bobina D

    1 ON ON OFF OFF

    2 OFF ON ON OFF

    3 OFF OFF ON ON

    4 ON OFF OFF ON

  • 7/31/2019 Material Pract 3

    13/19

    Secuencia del tipo wave drive: En esta secuencia se activa solo una bobina a la vez. En algunosmotores esto brinda un funcionamiento ms suave. La desventaja es que al estar solo una bobinaactivada, el torque de paso y retencin es menor.

    PASO Bobina A Bobina B Bobina C Bobina D

    1 ON OFF OFF OFF

    2 OFF ON OFF OFF

    3 OFF OFF ON OFF

    4 OFF OFF OFF ON

  • 7/31/2019 Material Pract 3

    14/19

    Secuencia del tipo medio paso: en esta secuencia se activan las bobinas de tal forma de brindarun movimiento igual a la mitad del paso real. Para ello, se activan primero 2 bobinas y luego solo 1y as sucesivamente.

    PASO Bobina A Bobina B Bobina C Bobina D

    1 ON OFF OFF OFF

    2 ON ON OFF OFF

    3 OFF ON OFF OFF

    4 OFF ON ON OFF

    5 OFF OFF ON OFF

    6 OFF OFF ON ON

    7 OFF OFF OFF ON

  • 7/31/2019 Material Pract 3

    15/19

    8 ON OFF OFF ON

    Motores paso a paso bipolares: estos tienen generalmente cuatro cables de salida tal comomuestra la figura 3. Para ser controlados requieren del cambio de direccin del flujo de corriente atravs de las bobinas en la secuencia apropiada para realizar un movimiento

    Figura 3. Motor P-P bipolar

    Para controlar estos motores se requiere el uso de un puente H, uno por cada bobina del motor.Para ello se recomienda el uso de un puente H integrado como el L293, tal como muestra la figura

    4, donde los terminales A, B, C y D pueden ser conectados directamente al microcontrolador

    Figura 4. Conexin del L293 con el motor P-P bipolar.

    Estos motores necesitan la inversin de la corriente que circula en sus bobinas en una secuenciadeterminada. Cada inversin de la polaridad provoca el movimiento del eje en un paso, cuyosentido de giro est determinado por la secuencia seguida.

  • 7/31/2019 Material Pract 3

    16/19

    A continuacin se puede ver la tabla con la secuencia necesaria para controlar motores pasobipolares:

    PASO TERMINALESA B C D

    1 +V -V +V -V2 +V -V -V +V

    3 -V +V -V +V

    4 -V +V +V -V

    Cabe destacar que debido a que los motores paso a paso son dispositivos mecnicos y como taldeben vencer ciertas inercias, el tiempo de duracin y la frecuencia de los pulsos aplicados es unpunto muy importante a tener en cuenta. Es por ello que el motor debe alcanzar el paso antes quela prxima secuencia de pulsos comience. Si la frecuencia de pulsos es muy elevada, el motorpuede que no realice ningn movimiento en absoluto, o puede comenzar a vibrar pero sin llegar agirar, o puede girar errticamente, o puede llegar a girar en sentido opuesto.

    Para obtener un arranque suave y preciso, es recomendable comenzar con una frecuencia depulso baja y gradualmente ir aumentndola hasta la velocidad deseada sin superar la mximatolerada. El giro en reversa debera tambin ser realizado previamente bajando la velocidad degiro y luego cambiar el sentido de rotacin.

    Manejo de los motores servo con el PIC:

    Un servomotor es un dispositivo similar a un motor de corriente continua que tiene la capacidadde ubicarse en cualquier posicin dentro de su rango de operacin, y mantenerse estable en dichaposicin. Tiene la capacidad de ser controlado, tanto en velocidad como en posicin. El control deun servo se reduce a indicar su posicin mediante una seal cuadrada de voltaje: el ngulo de

    ubicacin del motor depende de la duracin del nivel alto de la seal.

    Cada servo, dependiendo de la marca y modelo utilizado, tiene sus propios mrgenes deoperacin. Por ejemplo, para algunos servos los valores de tiempo de la seal en alto estn entre 1y 2 ms, que posicionan al motor en ambos extremos de giro (0 y 180, respectivamente). Porejemplo: si los circuitos dentro del servomotor reciben una seal de entre 0,5 a 1,4 milisegundos,este se mover en sentido antihorario; entre 1,6 a 2 milisegundos mover el servomotor ensentido horario; 1,5 milisegundos representa un estado neutro para los servomotores estndares,tal como muestra la figura 5.

    http://es.wikipedia.org/wiki/Motor_de_corriente_continuahttp://es.wikipedia.org/wiki/%C3%81ngulohttp://es.wikipedia.org/wiki/Milisegundohttp://es.wikipedia.org/wiki/Milisegundohttp://es.wikipedia.org/wiki/%C3%81ngulohttp://es.wikipedia.org/wiki/Motor_de_corriente_continua
  • 7/31/2019 Material Pract 3

    17/19

    Figura 5. Control del sentido de giro del servo.

    Control del servo mediante HPWM.

    Los servomotores pueden ser manejados con la modulacin por ancho de pulsos (PWM) del PICpara controlar la direccin o posicin de los motores de corriente continua. La mayora trabaja enla frecuencia de los cincuenta hercios, as las seales PWM tendrn un periodo de veintemilisegundos.

    Los servomotores tienen tres terminales de conexin: dos para la alimentacin elctrica delcircuito y uno para la entrada de la seal de control, la cual puede ir conectada directamente a lasalida PWM del PIC. Comando:

    HPWM canal, Ciclo til, frecuencia

    Canal: es un valor constante que especifica el canal a usar como salida PWM, que dependiendo delmodelo de PIC, son los pines CCP1 y CCP2. Para el PIC 16F877 y el 18F4550 son los pines PORTC.2 yPORTC.1 respectivamente.

    Ciclo til: es un valor que va de 0 a 255 que especifica la relacin entre la parte baja y alta de laseal. Si es 0, indica que la seal es siempre baja. Si es 1, la seal es alta todo el tiempo. Si es 127,el ciclo til es del 50%.

    Frecuencia: es un valor que vara de 0 a 32767 que especifica la frecuencia de la seal PWM. Lams alta frecuencia permitida para cualquier oscilador es 32767 Hz. Y la ms baja frecuenciapermitida depende del oscilador usado (para 20 MHz es de 1221 Hz).

    http://es.wikipedia.org/wiki/Modulaci%C3%B3n_por_ancho_de_pulsoshttp://es.wikipedia.org/wiki/Motor_de_corriente_continuahttp://es.wikipedia.org/wiki/Herciohttp://es.wikipedia.org/wiki/Milisegundohttp://es.wikipedia.org/wiki/Milisegundohttp://es.wikipedia.org/wiki/Herciohttp://es.wikipedia.org/wiki/Motor_de_corriente_continuahttp://es.wikipedia.org/wiki/Modulaci%C3%B3n_por_ancho_de_pulsos
  • 7/31/2019 Material Pract 3

    18/19

    Ejemplo:

    DEVICE = 16F877XTAL = 20CCP1_PIN = PORTC.1 ' PORTC.1 es el CCP1 para el 16F877

    HPWM 1, 127, 1000 'Enva una seal PWM con un ciclo til de 50% a 1KHzDELAYMS 500HPWM 1, 64, 2000 'Enva una seal PWM con un ciclo til de 25% a 2KHzSTOP

    Control del servo mediante PULSEOUT.

    PULSEOUT: Genera un pulso de una duracin especificada en un terminal de E/S. Sintaxis:

    PULSOUT Pin, Perodo, Estado Inicial

    Pin: Es una variable constante que indica cual pin de E/S ser utilizado, el mismo ser convertido

    en salida.

    Perodo: Es una variable, constante o expresin de (4us 65535 us) que especifica la cantidad de

    tiempo en us que durar el pulso.

    Figura 6. Salida con el comando PULSEOUT

    Tambin es posible controlar el servo a travs de cualquier pin del PIC configurado como salida,

    con los registros PORT, colocando el pin primero en alto un tiempo determinado por un retardo(DELAYMS), y luego en bajo un tiempo determinado por un retardo (DELAYMS).

  • 7/31/2019 Material Pract 3

    19/19

    Manejo de un motor DC con el PIC.

    El motor de corriente continua es una mquina que convierte la energa elctrica continua enmecnica, provocando un movimiento rotatorio. El sentido de giro de un motor de corrientecontinua depende del sentido relativo de las corrientes circulantes por los devanados inductor einducido; es decir, para accionar un motor DC es necesario aplicar la tensin de alimentacin entre

    sus bornes. Para invertir el sentido de giro basta con invertir la alimentacin y el motor comenzara girar en sentido opuesto.

    A diferencia de los motores paso a paso y los servomecanismos, los motores DC no pueden serposicionados y/o enclavados en una posicin especfica. Estos simplemente giran a la mximavelocidad y en el sentido que la alimentacin aplicada se los permite.

    Es posible controlar la velocidad de un motor DC mediante la modulacin por ancho de pulso.Cuanto ms ancho es el pulso, mayor es la velocidad del motor y viceversa. En la figura 7 semuestra la conexin del motor DC con el PIC.

    Figura 7. Conexin del motor DC con el PIC.

    El microcontrolador PIC18F4550 es quien controla la velocidad del motor mediante una sealPWM. El CI L298 es el que se encarga del control del paso de la corriente, este tiene internamentedos puentes H, en este caso solo se usa uno. Los diodos de proteccin son muy necesarios porquese est trabajando con cargas inductivas los cuales pueden producir picos de corriente muy altos ypueden ocasionar daos al CI L298 o incluso al microcontrolador, esto sin contar algunosproblemas de reset ocasionados por estos picos de corriente. Aun as los 4 diodos nicamente noson suficientes, para completar la estabilizacin de la alimentacin del microcontrolador esnecesario la puesta de 2 filtros bypass (470 nF), uno para cada fuente de alimentacin. Otrosvalores ms bajos de los condensadores pueden ocasionar una respuesta indeseada y permitirresets en el microcontrolador o incluso un dao permanente.

    http://es.wikipedia.org/wiki/Conversi%C3%B3n_de_potenciahttp://es.wikipedia.org/wiki/Energ%C3%ADa_el%C3%A9ctricahttp://es.wikipedia.org/wiki/Corriente_continuahttp://varper-tech.com/datasheet.php?iddats=23http://varper-tech.com/datasheet.php?iddats=23http://varper-tech.com/datasheet.php?iddats=23http://varper-tech.com/datasheet.php?iddats=23http://es.wikipedia.org/wiki/Corriente_continuahttp://es.wikipedia.org/wiki/Energ%C3%ADa_el%C3%A9ctricahttp://es.wikipedia.org/wiki/Conversi%C3%B3n_de_potencia