Anda di halaman 1dari 12

ING.

ELECTRONICA Y TELECOMUNICACIONES

GENERADOR DE UNA SEAL PWM CON PIC 16F88


OBJETIVOS:
Generar una seal PWM a partir de una seal senoidal usando el pic 16F88. Observar el comportamiento de ambas seales mediante el osciloscopio.

MARCO TEORICO
PWM es el acrnimo de "Pulse Width Modulation", expresin que designa un modo concreto de modulacin, la llamada "Modulacin de impulsos en anchura". Inicialmente, esta tcnica se utilizaba casi exclusivamente para el control de potencia y velocidad de motores de corriente continua, pero con el tiempo se ha ido ampliando el campo de aplicacin, por ejemplo, en las fuentes de alimentacin conmutadas, onduladores c.c.-c.a., etc.; con ella se ha conseguido realizar dispositivos mucho ms eficientes, ms compactos y ms ligeros. El presente artculo se destina a describir en qu forma puede utilizarse un microcontrolador PIC16F88 para generar una seal del tipo PWM con la que se regular la emisin luminosa de un Led y se controlar la velocidad de un pequeo motor de corriente continua: con esta base, el lector estar capacitado para desarrollas sus propias aplicaciones. En lo referente a los modos Captura o Comparacin algunas tpicas aplicaciones son la generacin de un pulso de ancho programado o medida del ancho de un pulso externo. En ambos casos los mdulos CCP1 y CCP2 trabajan con el Timer1. Nuestro inters por ahora es el estudio del modo PWM. El modo PWM tiene una operacin y un control que son compatibles en todos los PIC16 con mdulos CCPx y se conoce como Standard PWM. Los PWM en los PIC18 son ms potentes y variados, destacando el llamado Enhanced PWM. Con todo, en muchos casos todava cuentan con el Standard y en otros, un modo compatible con l. Cada mdulo CCPx puede generar una onda PWM de hasta 10 bits de resolucin con una frecuencia y duty cycle configurables. Ambas ondas son semi independientes, esto es, pueden tener diferente duty cycle pero comparten la misma frecuencia. Cada CCPx se puede habilitar o inhabilitar independientemente. La salida PWM del mdulo CCP1 es el pin RC2/CCP1 y del mdulo CCP2 es el pin RC1/CCP2. Dichos pines deben ser configurados como salidas. Registros de los mdulos CCPx Los registros de duty cycle presentados en seguida tienen diferente funcin en los modos Captura o Comparacin. El Timer2 se ala con los modulos CCPx solo en modo PWM.

VANESA RIVERA GONZA

Pgina 1

ING. ELECTRONICA Y TELECOMUNICACIONES


CCP1CON y CCP2CON. Registros para la configuracin de los mdulos CCP1 y CCP2 respectivamente en modo Captura, Comparacin o PWM. Son gemelos. CCPR1L y CCPR2L. Registros para controlar los duty cycle de cada onda PWM. Son gemelos. CCPR1H y CCPR2H. Funcionan como registros imagen de los dos anteriores. No deben se accedidos directamente. TMR2, PR2 y T2CON. Son los conocidos registros del Timer2. Sirven para establecer el periodo, o la frecuencia, de los dos canales PWM. El Timer2 no pierde ninguna de sus capacidades que conocemos, o sea que podemos seguir temporizando, utilizando sus interrupciones, etc.

Dado que en modo PWM ambos mdulos CCPx son completamente indnticos en control y configuracin, estara de ms describir cada mdulo por separado o al mismo tiempo. Bastar con discutir la operacin de CCP1 y se entender que lo mismo es vlido para CCP2.

Qu es la modulacin PWM?
Antes de la puesta a punto de la tcnica PWM, la velocidad de un motor de corriente continua se regulaba mediante un potencimetro o reostato en serie. Este "poco fino" mtodo comportaba un gran gasto de energa, con mucha generacin de calor. Cuanta ms potencia, mayor desperdicio de energa. Un buen da alguien tuvo una idea feliz: aplicar toda la potencia disponible, pero no continuadamente sino en forma de impulsos ms o menos breves. As fue como nacieron los circuitos "chopper", que en un primer momento se realizaron a base de semiconductores discretos.

Puede hacerse un sencillo experimento con una pila y una bombillita de filamento, como las de las linternas de bolsillo. Soldar un polo de la pila a la bombillita con un tramo de hilo conductor y cerrar el circuito aproximando a mano el otro polo, a travs de otro tramo de hilo.

VANESA RIVERA GONZA

Pgina 2

ING. ELECTRONICA Y TELECOMUNICACIONES


Al hacer un contacto intermitente, juntando y separando rpidamente el terminal, se observar que, gracias a la inercia de la resistencia y a la persistencia del ojo humano, la bombillita lucir de forma casi estable, aunque con una intensidad luminosa inferior. Se est aplicando ntegramente la tensin de la pila pero slo a intervalos. Dos parmetros tienen suma importancia: el tiempo que la bombillita permanece alimentada (Ton) y el tiempo entre dos impulsos de tensin (Toff).

Dentro de un cierto periodo de tiempo, cuanto menor sea la suma de tiempos en que la bombillita queda sin alimentar, mayor es la intensidad luminosa emitida. De aqu sale la definicin de "ciclo de trabajo" (duty cycle): es el porcentaje que indica el tiempo durante el cual la seal permanece a nivel alto, durante un periodo dado. El ejemplo tpico de un ciclo de trabajo del 50 % es una seal perfectamente cuadrada, como las que entregan los generadores de seal. Una tensin de cero voltios corresponde a un ciclo de trabajo del 0 %. En la fig. 1, Ton representa el periodo durante el cual la bombillita recibe la tensin mxima y Toff es el tiempo en que no recibe tensin alguna. Modificando la duracin relativa de estos tiempos se consigue modificar la tensin media que llega a los contactos de la lmpara y, por consiguiente, se regula su luminosidad. En la prctica, se acta sobre Ton y se mantiene constante la duracin del ciclo (Ton + Toff). O sea que slo se modifica el porcentaje relativo de Ton y Toff respecto al diclo total. As, la seal PWM puede definirse como una seal de tensin rectangular en la cual se ha previsto una determinada distribucin temporal entre impulso alto e impulso bajo. Admitiendo que Ttot no vara, al alargar la duracin de Ton, la de Toff se acorta necesariamente. Aplicando una PWM a la alimentacin de un motor, si Ton representa el 10 % del ciclo, la tensin aparece en bornes del motor a intervalos muy cortos y el ciclo de trabajo es bajo. Pero si Ton representa el 90 % del ciclo, el motor recibe tensin a intervalos proporcionalmente muy largos y el ciclo de trabajo es elevado.

VANESA RIVERA GONZA

Pgina 3

ING. ELECTRONICA Y TELECOMUNICACIONES

Qu ventajas ofrece la modulacin PWM? Si para la generacin de ondas PWM se recurre a un microcontrolador, basta con un solo bit de salida para comandar el paso de On a Off; resulta un circuito sumamente sencillo y muy econmico. Por otra parte, para pilotar cargas con variacin de potencia, la seal PWM permite elevados rendimientos reduciendo a un nivel mnimo el calor generado por el sistema de control y por la carga, mientras que sta trabaja siempre en condiciones ptimas: todo abierto o todo cerrado. Pero la ventaja principal de la modulacin PWM es poder utilizar impulsos de ataque de frecuencia constante: este concepto prefigura el uso de sistemas sincronizados por un reloj (clock), es decir, por sistemas digitales. Actualmente, la generacin de seales PWM se realiza con circuitos basados en puertas lgicas (dispositivos TTL y CMOS) y microprocesadores o microcontroladores programables (por ejemplo, el PIC16F88) que integran circuitos capaces de generar de forma autnoma seales moduladas con la tcnica PWM, con la ayuda de muy pocos componentes perifricos especficos. Frecuencia de modulacin Aunque el porcentaje relativo entre Ton y Toff pueda variar, y que, en cierto sentido, este valor pueda considerarse un dato analgico, la seal PWM es una seal digital dado que la tensin de salida slo puede asumir uno de los dos valores digitales posibles: o mximo o nulo. Y eso, independientemente del instante considerado. Tensin o corriente se entregan a la carga en forma de impulsos repetitivos. Como el ancho de banda es considerable, la tcnica PWM permite obtener a la salida cualquier valor de tensin comprendido entre cero voltios y la tensin de alimentacin. VANESA RIVERA GONZA Pgina 4

ING. ELECTRONICA Y TELECOMUNICACIONES


En la fig. 1, el caso a muestra una salida PWM con un ciclo de trabajo del 10 %, es decir, que la seal es mxima durante un 10 % del periodo y baja durante el 90 % restante. Los casos b y c representan una salida PWM con un ciclo de trabajo del 50 y del 90 %, respectivamente. A estas tres seales PWM (digitales) corresponden 3 valores analgicos diferentes de la seal de salida: suponiendo una tensin de alimentacin de 5 voltios, a un ciclo de trabajo del 10 % corresponde una tensin de salida de 0,5 voltios; al 50 % la salida seria de 2,5 V y al 90 % se obtendran 4,5 voltios. Pueden aplicarse estas correspondencias al ejemplo de la bombillita (fig. 2); se alimenta de la pila de 9 voltios a travs de un interruptor en serie. Cerrando este interruptor 50 milisegundos, abrindolo 50 milisegundos y repitiendo esta operacin 10 veces por segundo, la tensin media aplicada a la bombillita no es la que produce el mximo encendido de sta: es como si se aplicasen 4,5 voltios. El ciclo de trabajo es del 50 % y la frecuencia de modulacin es de 10 hertzios. Esta frecuencia basta para un sencillo ejemplito como ste, pero es claramente insuficiente para una aplicacin prctica. En los alimentadores conmutados se utilizan frecuencias comprendidas entre 1 y 200 kHz. Hay varias razones para ello: en el ejemplo de la fig. 2, si se cierra el interruptor 10 segundos y se abre otros 10 segundos, aunque el ciclo de trabajo siga siendo del 50 %, la bombillita no luce como si se alimentase con 4,5 voltios, sino que aparece 10 segundos apagada y 10 segundos encendida. Asi, para obtener una iluminacin homognea equivalente a la obtenida con una pila de 4,5 voltios debe aumentarse la frecuencia hasta que la inercia resistiva de la bombillita y, sobre todo, la de la visin humana, hagan "desaparecer" los periodos de apagado.

Periodo y frecuencia y de la onda PWM


Ya vimos que el periodo de la onda PWM est determinado por el tiempo que dura el conteo del TMR2 desde 0 hasta el valor del registro PR2. Esto es:

Dnde: PR2 = Valor del registro PR2 (entre 0 y 255). Fosc = Frecuencia del XTAL. Prescaler = Prescaler del Timer2 (1, 4 16). Se configura en el registro T2CON.

Recordemos que el Timer2 tambin tiene un Postscaler, pero es una etapa posterior y no interviene directamente en el avance del Timer2.

VANESA RIVERA GONZA

Pgina 5

ING. ELECTRONICA Y TELECOMUNICACIONES


En la prctica es mucho ms habitual hablar de la frecuencia del PWM. Como sta es la inversa
del periodo, de la frmula anterior surge la siguiente:

Duty cycle de la onda PWM El duty cycle es la cantidad de tiempo que en un periodo la salida PWM permanece en estado alto. Este tiempo queda determinado por el valor del registro CCPR1L. Mientras TMR2 sea menor que CCPR1L la salida PWM ser un 1 lgico. Apenas TMR2 alcance a CCPR1L, la salida ser 0. En caso de que este tope sea superior al periodo, la salida ya no conmutar a 0. En consecuencia, el duty cycle se controla variando el valor del registro CCPR1L. La frmula que da su valor en tiempo es:

Donde: CCPR1L = Valor del registro CCPR1L (entre 0 y 255). Fosc = Frecuencia del XTAL. Prescaler = Prescaler del Timer2 (1, 4 16).

Tambin es mucho ms ilustrativo hablar del duty cycle en trminos de porcentajes. Un 0% significa que la salida es siempre bajo, 100% es un alto continuo, un 50% significa una onda cuadrada simtrica, y as. Para esto solo hay que dividir el duty cycle (en tiempo) entre el periodo y multiplicarlo por 100%. Realizando esta operacin con las frmulas presentadas anteriormente llegaremos a:

Esta frmula es fcil de interpretar: el numerador CCPR1L representa al duty cycle y el denominador PR2+1, al periodo. La siguiente figura indica que cada periodo se divide en PR2+1 tramos equitativos y que CCPR1L es la cantidad de tramos que estn en alto. Eso es una PWM.

VANESA RIVERA GONZA

Pgina 6

ING. ELECTRONICA Y TELECOMUNICACIONES


APLICACION:
Para alcanzar los objetivos de este laboratorio se implement en proteus el siguiente circuito usando el pic 16F88.

En el PIC 16F88 se ha configurado el pin A0 como entrada analgica utilizando un generador de funciones (seal senoidal) se ha ingresado una seal de 5 voltios a una frecuencia de 60hz y el pin B0 es la salida de la seal PWM,a la salida del pin B0 se implement un circuito RC para que simule el DAC ya que el PIC no cuenta con el DAC. En el osciloscopio el puerto A esta conectado al pin A0 del pic donde tiene que mostrar la seal de 5 v que est saliendo del generador de funciones; el puerto B est conectado a la salida del RC nos va mostrar la seal de salida despus que se ha muestreado, el puerto C esta conectado al puerto B0 del pic esta nos mostrara la seal PWM.

VANESA RIVERA GONZA

Pgina 7

ING. ELECTRONICA Y TELECOMUNICACIONES


Para generar la modulacin por ancho de pulsos se hizo el siguiente cdigo usando el software PIC C compiler:

En la simulacin se obtuvieron los siguientes grficos tanto de la seal de entrada analgica como la seal de salida PWM:

VANESA RIVERA GONZA

Pgina 8

ING. ELECTRONICA Y TELECOMUNICACIONES

Esta es la seal de 5 v a una frecuencia de 60 Hz que est entrando al puerto A0 del pic para que sea ledo por ADC interno del pic para sacar una seal PWM se puede comprobar que es de 60 hz con los cursores en el cual el periodo nos da 16 ms. Esta seal se va a muestrear a 600 Hz que su tiempo de muestreo ser de 1.6 ms

VANESA RIVERA GONZA

Pgina 9

ING. ELECTRONICA Y TELECOMUNICACIONES

A la salida de la unidad PWM es necesario conectar un filtro RC (Pasa Bajas) para determinar el nivel analgico propuesto por el filtro. La relacin de los valores del filtro est dada por:

A la salida del filtro RC conectada al puerto B del osciloscopio se obtuvo la siguiente salida

VANESA RIVERA GONZA

Pgina 10

ING. ELECTRONICA Y TELECOMUNICACIONES

El mdulo PWM del micro genera una onda cuadrada con una frecuencia dada (tpicamente bastante alta, por ejemplo 10 KHz). Luego nosotros podemos ir cambiando el ciclo de trabajo (% del periodo en ON) de la seal. Si usamos un dispositivo externo con un ancho de banda suficiente (osciloscopio) veremos la seal al completo, esto es, la modulacin rpida (o portadora) de 10 KHz y las variaciones ms lentas (seal a transmitir) del ciclo de trabajo. Si por el contrario aplicamos un filtro paso-bajo a la seal PWM, los cambios rpidos (10 KHz) de la seal se eliminarn y simplemente veremos los cambios lentos del ciclo de trabajo, observando un voltaje "medio" entre 0 y 5V dependiendo del ciclo de trabajo (0% -> 100%) programado. Lo que hemos conseguido es una especie de conversor digital analgico que nos permite traducir una orden digital (ciclo de trabajo del periodo PWM) en una variable analgica (el voltaje medio a la salida entre 0 y 5V). Tendremos algunas limitaciones. Como queremos que desaparezca la frecuencia de modulacin (los 10 KHz), la seal que queremos transmitir debe de ser lo suficientemente lenta (frecuencia baja) para que no desaparezcan tambin en el filtrado paso-bajo.

VANESA RIVERA GONZA

Pgina 11

ING. ELECTRONICA Y TELECOMUNICACIONES

VANESA RIVERA GONZA

Pgina 12

Anda mungkin juga menyukai