Sunteți pe pagina 1din 11

PRCTICA PWN CON PIC18F4550

PROGRAMACIN DE PERIFRICOS

INGENIERA EN ELECTRNICA Y TELECOMUNICACIONES
4 DE AGOSTO DE 2012



BAHENA VARAGAS ALAN GIOVANY
MEDINA FLORES JOSE NOE
MANCILLA OCAMPO ALFREDO
SANTILLN SANTILLN OSVALDO
SALAS DAZ JORGE ALBERTO

Prof. Felipe de Jess Jorcia Vzquez

1
Indice

Introduccion . pag. 2
4

Programa pag. 5
7

Diagrama .. pag 8
10

Conclusiones pag 10 -
11












2



PWM
Modulacin de anchura de pulso, o PWM, es una tcnica para obtener resultados
anlogos con medios digitales. Control digital se utiliza para crear una onda cuadrada, una
seal que conmuta entre encendido y apagado. Este patrn de encendido y apagado
puede simular tensiones entre completa (5 voltios) y apagado (0 voltios) cambiando la
porcin del tiempo que la seal gasta en contra el tiempo que pasa la seal de apagado.
La duracin del "on time" se llama el ancho de pulso. Para conseguir diferentes valores
analgicos, cambiar, o modular, la anchura de pulso. Si usted repite este patrn de cierre
lo suficientemente rpido con un LED por ejemplo, el resultado es como si la seal es una
tensin constante entre 0 y 5v controla el brillo del LED.
En el grfico siguiente, las lneas verdes representan un perodo de tiempo regular. Esta
duracin o perodo es la inversa de la frecuencia PWM. En otras palabras, con frecuencia
PWM en aproximadamente 5000Hz, las lneas verdes medira 2 milisegundos cada. Es una
llamada aanalogWrite() en una escala de 0 - 255, tal que analogWrite(255) pide un ciclo de
trabajo 100% (siempre encendido), y analogWrite(127) es un deber del 50% del ciclo (en la
mitad del tiempo) por ejemplo.
Una seal PWM es una forma de onda digital binaria de una determinada frecuencia y ciclo de
trabajo (duty cycle) variable. Un ejemplo tpico de aplicacin es el control PWM de potencia (figura
9.1), que se suele utilizar para el control de una lmpara incandescente o un motor DC. Si se
considera que el nivel 0 representa OFF y el nivel 1 representa ON, la potencia que consume la
carga ser directamente proporcional a la duracin del pulso.


3

Figura 1. 1 Ejemplo del PWM

Los perifricos son los subsistemas que le aaden gran poder y versatilidad a un micro
controlador ya que, al estar incluidos dentro de ste, simplifican enormemente el proceso
de diseo, tanto en hardware como en software, de una determinada aplicacin. Entre los
ms importantes estn los mdulos PWM (Modulacin de Ancho de Pulso) , los
convertidores analgico/digital (Convertidor A/D), los mdulos de comunicacin serial SSP
y AUSART (SCI) y los comparadores. En esta pgina se describe la operacin de un control
PWM para un motor DC utilizando micro controladores PIC con el compilador mikroC PRO.

En este modo, el pin CCP1 produce una seal PWM de hasta 10 bits de resolucin, lo que
significa que se tienen hasta 1024 opciones de configuracin del ciclo de trabajo. Este pin
tiene que configurarse como salida por medio del registro TRISB. La figura 9.2 muestra un
diagrama de bloques del mdulo CCP operando como control PWM.


4

Figura 1. 2 Diagrama de bloques de control PWM



Una seal PWM (figura 9.3) se caracteriza por una base de tiempo (perodo) y un tiempo
durante el cual la salida tiene un nivel alto (ciclo de trabajo). La frecuencia es el inverso del
perodo.

5

Figura 1. 3 Seal PWM


Funciones de mikroC PRO para control PWM





Programacin del PIC

6

sbit LCD_RS at LATB4_bit;
sbit LCD_EN at LATB5_bit;
sbit LCD_D4 at LATB0_bit;
sbit LCD_D5 at LATB1_bit;
sbit LCD_D6 at LATB2_bit;
sbit LCD_D7 at LATB3_bit;

sbit LCD_RS_Direction at TRISB4_bit;
sbit LCD_EN_Direction at TRISB5_bit;
sbit LCD_D4_Direction at TRISB0_bit;
sbit LCD_D5_Direction at TRISB1_bit;
sbit LCD_D6_Direction at TRISB2_bit;
sbit LCD_D7_Direction at TRISB3_bit;

int velocity = 0;
int duty = 0;
char txt[6] = "0";

void main() {
ADCON1 |= 0x0F;
CMCON |= 7;

PORTC = 0;
TRISC = 0;
PWM1_Init (5000);
PWM1_Start();

7

Lcd_Init();
Lcd_Cmd(_Lcd_CLEAR);
Lcd_Cmd(_Lcd_CURSOR_OFF);
while(1)
{
wordToStr(velocity, txt);
Lcd_Out(1,4,"Velocidad");
Lcd_Out(2,7,Ltrim(txt));
Lcd_Out(2,10,"%");

if (PORTA.F0 == 1){ // Incremento de PWM
Lcd_Out(2,7," ");
velocity = velocity + 20;
duty = duty + 51;
if (duty >= 255) duty = 255;
if (velocity >= 100) velocity = 100;
}
if (PORTA.F1 == 1){ // Decremento de PWM
Lcd_Out(2,7," ");
velocity = velocity - 20;
duty = duty - 51;
if (duty <= 0) duty = 0;
if (velocity <= 0) velocity = 0;
}

if (PORTA.F2 == 1){ // Detener

8
duty = 0;
velocity = 0;
Lcd_Out(2,7," ");
}
PWM1_Set_Duty(duty); // Establece ciclo de trabajo
Delay_ms(10); // 10 msec delay

}
}

SIMULACION DEL PWN.

Utilizamos la el software PROTEUS para hacer la simulacin del circuito precargando el
programa en el PIC.


Figura 1. 4 Diagrama en proteus


9

Figura 1. 5 Giro del motor



PROYECTO FINALIZADO
Finalizando las simulaciones y las pruebas necesarias, continuamos con el armado fsico
del circuito.

Figura 1. 6 Ya realizado el proyecto

10

Figura 1. 7 Motor moviendose, cuando se aumenta la velocidad



CONCLUCIN.
La modulacin por ancho de pulsos es una tcnica utilizada para regular la velocidad de
giro de los motores elctricos de induccin o asncronos. Mantiene el par motor constante
y no supone un desaprovechamiento de la energa elctrica. Se utiliza tanto en corriente
continua como en alterna, como su nombre lo indica, al controlar: un momento alto
(encendido o alimentado) y un momento bajo (apagado o desconectado).
Otros sistemas para regular la velocidad modifican la tensin elctrica, con lo que
disminuye el par motor; o interponen una resistencia elctrica, con lo que se pierde
energa en forma de calor en esta resistencia.

S-ar putea să vă placă și