Documente Academic
Documente Profesional
Documente Cultură
EXTENSIN LATACUNGA
INNOVACIN PARA LA EXCELENCIA
DEPARTAMENTO DE ELCTRICA Y ELECTRNICA.
ASIGNATURA NRC
Micro-controladores y PLC. 1582
TEMA: INFORME N
Informe: PWM-ADC
UNIDAD FECHA
Tres 31/07/2017
ESTUDIANTE: Azael Moyano
Jonathan Espinoza
Daniel Pantoja
Abril-Agosto 2017
UNIVERSIDAD DE LAS FUERZAS ARMADAS ESPE-L
MICRO-CONTROLADORES Y PLC.
DEPARTAMENTO DE ELCTRICA Y ELECTRNICA.
Ing. Sixto Reinoso.
OBJETIVO GENERAL
OBJETIVO ESPECIFICO
2. MARCOTEORICO.
MICRO-CONTROLADORES Y PLC.
UNIVERSIDAD DE LAS FUERZAS ARMADAS ESPE-L
MICRO-CONTROLADORES Y PLC.
DEPARTAMENTO DE ELCTRICA Y ELECTRNICA.
Ing. Sixto Reinoso.
Tenemos que tener en cuenta distintos factores a la hora de hablar de los usos
prcticos de la funcin PWM. Con el paso de los aos y desde que la PWM entrara
en vigor, las placas madre contaron con sensores de temperatura, consultables
desde la bios del equipo. A partir de ese momento se impuso reducir el ruido de la
CPU, haciendo que el ordenador reaccionara de distintas maneras en base al
contexto. Si por ejemplo, estamos utilizando el equipo con el objetivo de descargar
archivos, como demos de videojuegos, realmente el ordenador no necesita una
potencia superior a la mnima. En estos casos la CPU no se calienta, no necesita el
ventilador y se debe evitar gastar energa de forma innecesaria.
MICRO-CONTROLADORES Y PLC.
UNIVERSIDAD DE LAS FUERZAS ARMADAS ESPE-L
MICRO-CONTROLADORES Y PLC.
DEPARTAMENTO DE ELCTRICA Y ELECTRNICA.
Ing. Sixto Reinoso.
Para que la funcin PWM tenga ms sentido y sea ms completa, existen accesorios
que se encargan de llevar esa seal a otros ventiladores que tambin se puedan
beneficiar de ella. El objetivo comn es mejorar lo mximo posible el rendimiento de
estos equipos.
MICRO-CONTROLADORES Y PLC.
UNIVERSIDAD DE LAS FUERZAS ARMADAS ESPE-L
MICRO-CONTROLADORES Y PLC.
DEPARTAMENTO DE ELCTRICA Y ELECTRNICA.
Ing. Sixto Reinoso.
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).
MICRO-CONTROLADORES Y PLC.
UNIVERSIDAD DE LAS FUERZAS ARMADAS ESPE-L
MICRO-CONTROLADORES Y PLC.
DEPARTAMENTO DE ELCTRICA Y ELECTRNICA.
Ing. Sixto Reinoso.
El pre-scaler (PRE) o divisor previo del timer TMR2 que puede tomar los
valores 1:1, 1:4 o 1:16
El registro PR2 (0-255) asociado al timer TMR2
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 Fosc/16384. Para un oscilador de 20 MHz
tenemos una Fpwm mnima de 1.22 KHz (20000/16384).
Notad que el mdulo PWM usa el timer TMR2, por lo que ste no podr usarse como
temporizador de propsito general mientras se est usando PWM. Si que es posible
usarlo (y ahorrarnos gastar otro timer) si queremos hacer saltar una interrupcin cada
cierto tiempo. El postscaler del TMR2 no tiene efecto sobre la frecuencia PWM, pero
si influye sobre cuando salta (si est habilitada) la correspondiente interrupcin
(TMR2_flag). Si por ejemplo el post-scaler es 1:16 entonces la interrupcin del
TMR2 saltar cada 16 periodos del PWM.
Lo primero que tenemos que hacer para usar el mdulo PWM es habilitarlo indicando
que va a usarse como generador de una onda PWM, ya que dicho mdulo es
compartido con otras funciones (Capture/Compare). La forma de hacerlo es poner a
11XX los 4 bits menos significativos del registro CCP1CON. Los PIC18 suelen tener
2 mdulos PWM por lo que existe un segundo registro CCP2CON.
Podemos habilitar uno o los dos mdulos independientemente. Sin embargo, como
ambos usan el registro PR2 y el timer TMR0 como base de tiempos, la frecuencia
programada ser la misma en ambos mdulos.
MICRO-CONTROLADORES Y PLC.
UNIVERSIDAD DE LAS FUERZAS ARMADAS ESPE-L
MICRO-CONTROLADORES Y PLC.
DEPARTAMENTO DE ELCTRICA Y ELECTRNICA.
Ing. Sixto Reinoso.
Lo que s es posible variar por separado es el ciclo de trabajo (duty cicle o DC) de
cada mdulo. El ciclo de trabajo se codifica con un nmero de hasta 10 bits (0-1023)
almacenado de la siguiente forma:
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:
MICRO-CONTROLADORES Y PLC.
UNIVERSIDAD DE LAS FUERZAS ARMADAS ESPE-L
MICRO-CONTROLADORES Y PLC.
DEPARTAMENTO DE ELCTRICA Y ELECTRNICA.
Ing. Sixto Reinoso.
Frecuencias por debajo de Fosc/16384 no son posibles porque los valores de PR2 y
PRE estn ya en su mximo posible.
Frecuencias por encima de Fosc/1024 son posibles pero a costa de bajar PR2 y por
lo tanto disponer de menor resolucin para el ciclo de trabajo. Por ejemplo si
aceptamos trabajar con 8 bits (valores de DC de 0 a 255) podemos llegar a una
frecuencia de:
La razn por la que para frecuencias muy altas no podemos especificar con tanta
precisin el ciclo es que el periodo empieza a hacerse muy pequeo. En el caso
anterior (Fpwm = Fosc/256) es obvio que en un ciclo del PWM slo entran 256 ciclos
del oscilador. Como es imposible que el micro haga algo entre ciclos de reloj, est
claro que slo puede bajar la lnea del PWM en 256 puntos como mucho (esto es,
con una resolucin de 8 bits).
Valores de frecuencias intermedios son tambin posibles, pero de nuevo van a exigir
PR2<255. Por ejemplo para conseguir 10 KHz con un oscilador de 20 MHz
Fosc / Fpwm =20000/10 = 2000 = 4 x PRE x (PR2+1) -> PRE x (PR2+1) = 500
MICRO-CONTROLADORES Y PLC.
UNIVERSIDAD DE LAS FUERZAS ARMADAS ESPE-L
MICRO-CONTROLADORES Y PLC.
DEPARTAMENTO DE ELCTRICA Y ELECTRNICA.
Ing. Sixto Reinoso.
Lo que se puede conseguir con PRE=2 y PR2 = 249. Pero entonces el valor del ciclo
de trabajo (DC) tiene que moverse en el rango 0 a 4(PR2+1) = 1000. Con DC=1000
ya alcanzamos un 100% del ciclo de trabajo y valores superiores no tendrn ningn
efecto extra.
Las rutinas bsicas del compilador C18 para manejar los mdulos PWM son las
siguientes (las declaraciones se encuentran en pwm.h):
Notad que las rutinas anteriores no tocan el timer TMR2. Es responsabilidad del
usuario invocar a la rutina OpenTimer2 para fijar el valor del divisor o pre-scaler y
arrancar el temporizador.
La modulacin por ancho de pulsos una seal o fuente de energa es una tcnica en
la que se modifica el ciclo de trabajo de una seal peridica (una senoidal o una
cuadrada), ya sea para transmitir informacin a travs de un canal de
comunicaciones o para controlar la cantidad de energa que se enva a una carga.
MICRO-CONTROLADORES Y PLC.
UNIVERSIDAD DE LAS FUERZAS ARMADAS ESPE-L
MICRO-CONTROLADORES Y PLC.
DEPARTAMENTO DE ELCTRICA Y ELECTRNICA.
Ing. Sixto Reinoso.
3. MATERIALES Y EQUIPOS.
Cdigo y
Material y/o Equipo Caractersticas Figura
cantidad
Para generar la
1
Computadora programacin
Para consultar la
Internet bibliografa necesaria
Permitir generar la
PIC 18F4050 1
practica
Proporcionar la energa
Fuente de alimentacin elctrica para el
1
funcionamiento de los
circuitos.
MICRO-CONTROLADORES Y PLC.
UNIVERSIDAD DE LAS FUERZAS ARMADAS ESPE-L
MICRO-CONTROLADORES Y PLC.
DEPARTAMENTO DE ELCTRICA Y ELECTRNICA.
Ing. Sixto Reinoso.
Permitir pasar la
1 informacin del
PICkit 2
ordenador al PIC
4. DESARROLLO.
PRCTICA EFECTUADA
MICRO-CONTROLADORES Y PLC.
UNIVERSIDAD DE LAS FUERZAS ARMADAS ESPE-L
MICRO-CONTROLADORES Y PLC.
DEPARTAMENTO DE ELCTRICA Y ELECTRNICA.
Ing. Sixto Reinoso.
Pasos a efectuar
#device ADC=10
#include <lcd.c>
int k=1;
float voltaje=0;
float leer;
lcd_init();
setup_adc_ports(8);
setup_adc (adc_clock_internal);
disable_interrupts(GLOBAL);
while (TRUE)
set_adc_channel (8);
delay_ms(1);
voltaje=(leer*5.0)/1023.0;
voltaje=voltaje*4;
lcd_gotoxy(1,1);
printf(lcd_putc,"VOLTIMETRO %d ",k);
MICRO-CONTROLADORES Y PLC.
UNIVERSIDAD DE LAS FUERZAS ARMADAS ESPE-L
MICRO-CONTROLADORES Y PLC.
DEPARTAMENTO DE ELCTRICA Y ELECTRNICA.
Ing. Sixto Reinoso.
lcd_gotoxy(1,2);
printf(lcd_putc," Voltaje=%2.2f",voltaje);
MICRO-CONTROLADORES Y PLC.
UNIVERSIDAD DE LAS FUERZAS ARMADAS ESPE-L
MICRO-CONTROLADORES Y PLC.
DEPARTAMENTO DE ELCTRICA Y ELECTRNICA.
Ing. Sixto Reinoso.
ANALISIS DE RESULTADOS
Uso del mdulo ADC como multmetro de 0 a 20 Voltios (0-5 V)
MICRO-CONTROLADORES Y PLC.
UNIVERSIDAD DE LAS FUERZAS ARMADAS ESPE-L
MICRO-CONTROLADORES Y PLC.
DEPARTAMENTO DE ELCTRICA Y ELECTRNICA.
Ing. Sixto Reinoso.
Para esta prctica se utiliza el puerto RB2 como entrada de seal para el multmetro,
se puede usar cualquier puerto que tenga la opcin de entrada analgica, en el
PIC18f4550 existen 12 pines con esta funcin, para esta prctica, se utiliza el puerto
RB2 que es la entrada analgica AN8, para el mdulo adc utilizaremos una
resolucin de 10 bits, que es la mxima permitida utilizando la siguiente lnea de
cdigo
#device ADC=10
Se debe establecer dos variables de tipo flotante para almacenar los datos recibido
por dicho PIN y otra para convertirlos al valor de voltaje que deseamos visualizar en
el LCD
float voltaje=0;
float leer;
La variable voltaje almacenar el valor obtenido en la variable leer, pero convertido
a valor de voltaje. Pero primero se debe activar el puerto AN8 para permitir que sirva
como entrada analgica y adems se establece el reloj interno para el mdulo ADC,
se lo hace con las siguientes lneas de cdigo
setup_adc_ports(8);
setup_adc (adc_clock_internal);
para este caso activamos el AN8 y aadimos el reloj interno al mdulo ADC, a
continuacin, ya dentro de un ciclo infinito obtenemos el valor de dicho Pin con las
siguientes lneas de cdigo y almacenamos el valor obtenido en la variable leer
set_adc_channel (8);
leer=read_adc();
voltaje=(leer*5.0)/1023.0;
Uno de los requerimientos de la prctica es que cuando el multmetro detecte 5
Voltios, el LCD marque 20 voltios, entonces se procede a multiplicar por 4 el valor
almacenado en dicha variable
voltaje=voltaje*4;
MICRO-CONTROLADORES Y PLC.
UNIVERSIDAD DE LAS FUERZAS ARMADAS ESPE-L
MICRO-CONTROLADORES Y PLC.
DEPARTAMENTO DE ELCTRICA Y ELECTRNICA.
Ing. Sixto Reinoso.
PRCTICA EFECTUADA
MICRO-CONTROLADORES Y PLC.
UNIVERSIDAD DE LAS FUERZAS ARMADAS ESPE-L
MICRO-CONTROLADORES Y PLC.
DEPARTAMENTO DE ELCTRICA Y ELECTRNICA.
Ing. Sixto Reinoso.
Pasos a efectuar
1. Realizar la programacin en el programa CCS Compiler
#include <18f4550.h> //Librera para usar el PIC18F4550
#fuses INTRC_IO,WDT,NOPROTECT,NOPUT, NOPBADEN,NOMCLR //Configuracin de fusibles.
#use delay (clock= 4000000) //FOSC =12MHz.
//#include <lcd.c> //Incluye el LCD.
#include <stdlib.h> //Librera stdlib.h
void main(void) { //Funcin principal main
int value= 37; //Define el factor de trabajo a la mitad de la seal.
setup_ccp1(CCP_PWM); //Configure CCP1 como PWM.
setup_timer_2(T2_DIV_BY_4, 49, 1); //Fija el divisor para 16, PR2 = 187 y un postscale de 1.
while( TRUE ){
set_pwm1_duty(value);
} //Fin del bucle.
} //Fin del main.
2. Simular el circuito utilizando el software Proteus
MICRO-CONTROLADORES Y PLC.
UNIVERSIDAD DE LAS FUERZAS ARMADAS ESPE-L
MICRO-CONTROLADORES Y PLC.
DEPARTAMENTO DE ELCTRICA Y ELECTRNICA.
Ing. Sixto Reinoso.
5. CONCLUSIONES
Se concluye que se debe usar un pre-escalar de 16 ya que la frecuencia del
oscilador es alta y la del PWM es baja.
Gracias a los clculos aprendidos en clases podemos obtener cualquier tipo
de seal as como de 1, 5, 10 o 20 KHz.
Gracias a este tipo de programacin ahora se podr controlar cualquier
dispositivo con los tiempos necesarios para obtener su funcionamiento
adecuado
Mediante la transformacin de seales analgicas a una seal digital se logra
conectar el PIC a unidades de la vida real como son temperatura, presin, etc.
En las entradas analgicas solo pueden medir hasta un voltaje menor o igual
al voltaje de alimentacin del PIC.
6. RECOMENDACIONES
MICRO-CONTROLADORES Y PLC.
UNIVERSIDAD DE LAS FUERZAS ARMADAS ESPE-L
MICRO-CONTROLADORES Y PLC.
DEPARTAMENTO DE ELCTRICA Y ELECTRNICA.
Ing. Sixto Reinoso.
7. BIBLIOGRAFA
MICRO-CONTROLADORES Y PLC.
UNIVERSIDAD DE LAS FUERZAS ARMADAS ESPE-L
MICRO-CONTROLADORES Y PLC.
DEPARTAMENTO DE ELCTRICA Y ELECTRNICA.
Ing. Sixto Reinoso.
8. Anexos.
Bibliografa 1
Bibliografa 2
Bibliografa 3
MICRO-CONTROLADORES Y PLC.
UNIVERSIDAD DE LAS FUERZAS ARMADAS ESPE-L
MICRO-CONTROLADORES Y PLC.
DEPARTAMENTO DE ELCTRICA Y ELECTRNICA.
Ing. Sixto Reinoso.
MICRO-CONTROLADORES Y PLC.