Está en la página 1de 7

Introduccin: Al vernos frente a la necesidad de desarrollar una aplicacin para la comunicacin entre un microcontrolador y la computadora, pensamos en un sistema de control

digital de lazo cerrado, y que los datos relevantes de ste proceso sean enviados a la PC y procesados de alguna manera para el monitoreo y control a distancia del proceso. Para tal fin se mont el control de velocidad de un motor de continua a partir del mtodo de modulacin de ancho de pulso (PWM) aprovechando el mdulo especfico de los PIC16F87X, la herramienta del conversor A/D de 10 bits, y el bloque TX/RX para comunicacin serie con la PC. Utilizando adems, una Macro editada con Visual Basic como interface para el sistema de adquisicin de datos. Seleccionando a la velocidad de referencia, la velocidad real, y el Duty del PWM como los datos relevantes a monitorear, y la velocidad de referencia como la variable a controlar con posibilidad de modificarla a travs de la PC. Hardware: Para poder controlar ste motor de continua a partir del mtodo de modulacin de ancho de pulso, se pens en montar un sistema que bsicamente est compuesto por: El motor a controlar.

Un motor mucho ms pequeo que cumpla la funcin de transductor de la velocidad del motor a valores de tensin continua, el cual est vinculado al motor principal a travs de algn vnculo mecnico, en ste caso una correa. El valor de tensin que ste motor (que oficia de un pequeo generador) entregue, nos servir como el valor actual medido a comparar con el valor deseado el cual se cargar inicialmente en el software, al programar el PIC.

Para poder ser utilizado como transductor, el motorcito debi ser ensayado y se obtuvo las siguientes mediciones (se ensay

alimentando al motor principal con una fuente variable, midiendo el nmero de revoluciones del motor principal con un tacmetro lser y la tensin en bornes del transductor con un multmetro digital):

TRANSDUCTOR [V] 3,7 2,9 2,26 2,04 1,57 1,03 0,71 0,17

RPM 3100 2450 1870 1700 1280 850 560 145

RPM/V 837,83 844,82 827,43 833,33 815,28 825,24 788,73 852,94 K=828,2[RPM/V]

- Siendo K la constante que utilizaremos para relacionar a lo largo del trabajo, las revoluciones del motor principal con la tensin en bornes del transductor. -Y siendo 2450 r.p.m la velocidad establecida como deseada para el giro del motor principal (ya que para esa velocidad, estamos dentro de las tensiones nominales de funcionamiento del motor y en una zona en donde la constante seleccionada es bastante prxima a la real)

Un motor de las mismas caractersticas que el principal, el cual se vincular mecnicamente, tambin, al motor principal, para que trabaje como generador, significndole as una carga mecnica al mismo. Y luego, al cargar elctricamente a ste generador con unas lamparitas incandescentes, producir una carga mecnica variable en el rotor del motor principal. Y as poder ensayar al mismo bajo diversas condiciones. -El micro controlador que generar la seal de control a partir de comparar la tensin generada por el transductor con el valor de seal de referencia cargado, aumentando o disminuyendo el tiempo de encendido de la seal segn sea necesario. En el caso que la velocidad del motor descienda del valor deseado, la tensin del transductor disminuir, y el PIC comenzar a incrementar el ancho de pulso de la tensin que alimenta al motor hasta que vuelva a igualarse la seal generada por el transductor con el valor programado, y viceversa. Adems transmitir la cadena de datos que luego ser recibida y procesada por la PC a partir de la aplicacin. Aparte, tendr habilitada la posibilidad de recibir un dato de 8 bits que modifique la velocidad de referencia, lo que se ver traducido en un cambio en la velocidad del giro del motor. Y esto ltimo ser capaz gracias a la transformacin de tensiones TTL del PIC a seal RS232 con el uso del integrado MAX232.

Software:
Para el desarrollo del cdigo fuente se pens en unificar tres tipos de bloques de programa: -El bloque que se refiere a la implementacin de la modulacin del ancho de pulso PWM. -El que respecta a la conversin analgica digital a partir de la seal brindada por el transductor. -Y el bloque que se refiere a la comunicacin con la PC por el puerto RX-TX del PIC.

Bloque PWM:
Para la implementacin del bloque PWM se parte por configurar el mdulo CCP1 para trabajar en modo PWM emparentndose as con el Timer 2. A partir del registro PR2 se fijar el perodo de la seal :

Ts = ctte = (PR2+1) * 4 * Tosc * TMR2 prescaler


En nuestro caso estamos utilizando un cristal de 18.432 MHz y seteamos al PR2 en 255 con el prescaler del TMR2 en 1:1, de manera que resulta en un ciclo de 18 KHz constante (Lo definimos as para poder salir del intervalo audible)
Siendo el CCPR1L el registro que definir el Duty de la seal (a partir de su registro de slo lectura CCPR1H), el cual estar siendo continuamente refrescado para cumplir con la misin de controlar la velocidad del motor de continua.

Ton = var = CCPR1L * 4 * Tosc * TMR2 prescaler

Luego se configurar el mdulo CCP2 en el modo comparacin, el cual estar emparentado con el Timer 1 y definir el perodo de tiempo (Tk) con el cual se llevar a cabo la interrupcin que permita un llamado a conversin analgica digital.

Tk= ctte = CCPR2* Tosc*4*TMR1 Prescaler


En nuestro caso al CCPR2 lo hemos seteado en 25.000 (CCPR2H y CCPR2L), y el preescaler del TMR1 se encuentra en 1:1 de manera que resulta un perodo de deteccin de velocidad de Tk = 5.42ms (25000*4*(1/18.432Mhz) = 5.42msec). Y esto es as sabiendo que el conversor A/D precisa de un mnimo de 2*TAD (2*1.6 ms = 3.2 ms) para llevar a cabo una conversin segura, luego: Tk > 2*TAD. El valor numrico 4 que figura en las expresiones (Ts, Tk y Ton) resulta de haber configurado al TMR1 y al TMR2 en modo sncrono con el reloj interno del PIC (Fosc/4) funcionando ambos como temporizadores. Habindose configurado as el bloque PWM el sistema estar generando continuamente una seal de perodo constante y Duty fijo hasta que el overflow del TMR1 llame a una conversin analgica digital y como resultado se refresque el valor del registro que fija el Duty.

Bloque A/D:
Para programar el bloque del conversor se parti de establecer el reloj del conversor como Fosc/32 ya que esto es lo que recomienda el

manual del PIC para cristales de 20 MHz (nosotros trabajamos con uno de 18.342 MHz). Configuramos a AN0 como la nica entrada anlgica, el resultado de la conversin en ADRESH y tomar slo los 8 bits de mayor peso los cuales sern cotejados con el valor de referencia deseado el cual se encuentra almacenado en la variable SPEED y de la comparacin con sta variable resultar el control sumndole o restndole al valor del registro CCPR1L el valor de la variable CHANGE que en nuestro caso est en 1.

Bloque RX/TX:
Se configuro la comunicacin USART en el pic con la posibilidad de enviar y recibir datos de la pc a una velocidad de 9600 Baudios. Para lograr esto se debi calcular que valor deba ser cargado en el registro SPBRG de la siguiente manera:

BAUD RATE = Fosc/ (16*(X+1))


Despejando X el valor a cargarse en SPBRG es de 119 (decimal). Una vez configurado esto y mediante un programa escrito en Visual basic para Excel se logra la comunicacin pic-pc. Desde la pc se realiza la adquisicin de datos (duty cicle, velocidad del motor en rpm, velocidad deseada) y se puede modificar la velocidad deseada del motor o dicho de otra forma modificar el valor de la variable SPEED en el microcontrolador.