Sei sulla pagina 1di 6

LABORATORIO DE MICROPROCESADORES II

PRCTICA N9
1. Objetivo: Desarrollar una aplicacin que permita al microcontrolador
PIC18F4550 cambiar la velocidad de un motor DC mediante el uso de los
mdulos de salida PWM incorporados.
2. Marco terico: La modulacin por ancho de pulso PWM consiste en modificar
el valor medio de tensin generado por una seal digital variando su ciclo til.
Esto quiere decir que podemos variar el periodo de tiempo que una seal
generada por el microcontrolador se mantiene en uno lgico, variando de esta
forma su ciclo til. El microcontrolador mediante el mdulo PWM genera una
onda cuadrada con una frecuencia de orden de los KHz. Cuyo periodo puede
ser ajustado por el programa elaborado por el estudiante.








Si esta seal PWM se aplica por ejemplo a un motor de corriente continua solo
sern percibidos los cambios de baja frecuencia del ciclo de trabajo,
verificndose una tensin de entre 0 y 5 Voltios en el terminal del
microcontrolador que corresponde a 0% a 100% del ciclo de trabajo.
De esta forma tenemos una especie de conversor digital a analgico que
modificando el periodo de activacin en 1 lgico de la salida del
microcontrolador modifica el voltaje medio entre 0 y 5 V.

2.1 Mdulo PWM en el PIC18: El parmetro fundamental es la frecuencia de
modulacin. Dicha frecuencia es programable en funcin de ciertas variables.
Frecuencia del oscilador principal Fosc
Pre escalador (PRE) del Temporizador 2
Registro PR2 asociado al Temporizador 2
La frecuencia correspondiente a la modulacin se calcula mediante la siguiente
frmula:
F = F
osc
/ [4 x PRE x (PR2+1)]

El valor mximo del divisor previo PRE es 16 y el de (PR2+1) es 256. Por lo
tanto la frecuencia PWM ms baja posible ser F
osc
/16384.
Para utilizar el mdulo PWM es necesario habilitarlo como generador de onda
mediante el mdulo CCP (Captura Comparacin PWM) que comparte
funciones de captura y comparacin. La forma ms bsica consiste en poner en
11XX los 4 bits menos significativos del registro CCP1CON. En los PIC 18
existe otro mdulo PWM que se configura mediante un segundo registro
CCP2CON. Se pueden habilitar uno o dos mdulos PWM, pero ambos deben
usar el registro PR2 y el temporizador TMR2.
Es posible sin embargo modificar el ciclo til de PWM de cada mdulo en forma
independiente. El ciclo de trabajo se modifica con nmero de hasta 10 bits (0 -
1023) almacenados en los registros CCPR1L y CCP1CON.DCB0 y
CCP1CON.DCB1.
CCPR1L : 8 bits ms significativos del ciclo de trabajo.

CCP1CON.DC1B0 y DC1B1 (bits 5 y 6 de CCP1CON): Guardan los 2 bits
menos significativos.
La programacin del % ON del segundo mdulo es similar pero usando los
registros CCP2CON y CCPR2L. Con los 10 bits dados el ciclo de trabajo se
podr especificar en principio con 1024 niveles (0 corresponde a 0% y 1023 al
100%). Sin embargo, los valores vlidos pueden ser menores que los 1024
posibles. La razn es que el valor de DC (duty_cicle) determina el tiempo que la
seal se mantiene alta (ON) de la forma:

T_on = [ DC x PRE] x Tosc



Recordando que el tiempo total del periodo es:

T_pwm = [ (PR2+1) x 4 x PRE ] x Tosc
Registro
PR2
PRE (divisor previo
de TMR2)
F_pwm Para Fosc = 20
MHz
255 1 Fosc /
1024
19.75 KHz
255 4 Fosc /
4096
4.88 KHz
255 16 Fosc /
16384
1,22 KHz

DIAGRAMA DE BLOQUES DEL MDULO CCP OPERANDO COMO PWM







2.2 Funciones de mikroC para control PWM: Los compiladores MikroC y
MikroBasic de Mikroelectronica incorporan funciones para manejar el mdulo CCP
en forma ms sencilla. En la siguiente tabla se resumen las funciones para PWM:

3. Trabajo de laboratorio:
El siguiente ejemplo de control de velocidad de motor DC por PWM est
diseado para el microcontrolador 16F877A. Realice los cambios
necesarios para implementar el mismo control PWM en un microcontrolador
PIC18F4550. Ejecute el programa y la simulacin del mismo con Proteus.


































Modifique el programa para que se visualice en una pantalla LCD los
siguientes datos:
Frecuencia
Ciclo de trabajo
Sentido de giro

Potrebbero piacerti anche