Laboratorio 03 Micro - PWM
Laboratorio 03 Micro - PWM
Laboratorio 03 Micro - PWM
EXPERIENCIA N°: 03
TÍTULO DE LA EXPERIENCIA:
INTRODUCCIÓN AL PC18F4550
INTRODUCCIÓN AL PC18F4550
I.- OBJETIVOS:
✓ Ubicar los pines del PIC18F4550 e identificar sus funciones (Puertos, Oscilador, AD,
PWM, Tx, Rx…).
✓ Identificar los pines Vdd, Vss, ~MCLR, PGD y PGC para programar el microcontrolador.
✓ Realizar un programa en ASM para encender y apagar un LED, conectado a RB0, mediante
un botón pulsador conectado a RB4.
Para el caso del microcontrolador mencionado este cuenta con dos salidas de PWM. También
el caso de los pines utilizados son el CCP1 y CCP2. El CCP1 se conecta en el pin RC2. Por el
contrario, el pin CCP2 está multiplexado y puede ser configurado en el pin RC1 y RB3. La
modulación por ancho de pulso (PWM) requiere de uno de los timers del microcontrolador.
Una imagen que representa el funcionamiento del PWM se muestra en la Figura:
La modulación por ancho de pulso PWM en el PIC18F4550 ocurre cuando se «cambia» el
ciclo de trabajo de una señal periódica. En la imagen se muestra un ejemplo donde se varía el
ciclo de trabajo del 25% al 50%. Como podrán observar la frecuencia de salida en el ciclo
PWM no cambia, lo que cambia es su ciclo de trabajo.
Para controlar el módulo PWM se requiere primero conocer la frecuencia de operación del
Timer 2. Esto para el caso del uso del Timer 1 en el PIC18F4550. La Frecuencia de operación
se puede calcular conociendo la Frecuencia de Oscilación, que llamaremos FOSC.
La frecuencia de oscilación en el PWM está directamente relacionada con el periodo del Timer
2 y con el valor en el registro PR2. Si configuramos el registro PR2 con el máximo valor (255),
esto permitirá configurar la mínima frecuencia en el PWM. Si por el contrario configuramos
el mínimo valor (0) esto dará pie a configurar la máxima frecuencia en el PWM.
• TOSC = Periodo de oscilación, por ejemplo si FOSC = 8Mhz, entonces TOSC = 125nS
(1/8Mhz).
Ejemplo 2: Calcular el valor del periodo mínimo y máximo con FOSC = 8MHZ, Pre-
escala = 16.
Para el valor máximo de frecuencia en el PWM, PR2 = 0, con preescala de 16 Por lo tanto:
El ciclo de trabajo en el PWM se refiere a la relación del tiempo entre la señal en estado lógico
bajo y en estado lógico alto. Por ejemplo, cuando la señal digital pasa el mismo tiempo en
estado bajo que en estado alto, se trata de un ciclo de trabajo (CT) del 50%.
Para calcular el ciclo de trabajo del PWM en el PIC18F4550 se utiliza la siguiente fórmula:
Donde el BIT1 y el BIT0, son los últimos dos bits de los 10 bits que se cuentan para controlar
el ciclo de trabajo. Estos 10 bits se logran al unir el registro CCPR1L y dos bits del registro
CCP1CON (los bits DC1B1 y DC1B0).
Ejemplo 3. Calcular el ciclo de trabajo del 50% para un FOSC de 8Mhz, una pre-escala
de 16 y una frecuencia del timer 2 de 488Hz.
Para este ejemplo necesitamos despejar el registro de 10 bits de la fórmula anterior. Esto es:
El ciclo de trabajo lo tomaremos en unidades de tiempo. Por ejemplo. Si el periodo para una
señal de 488Hz es de 2.04ms y queremos un CT del 50%, este deberá de ser de 1.02ms. Este
es el valor que sustituiremos en la fórmula.
DC1B1 = 0
DC1B0 = 0
Entonces si queremos variar el ciclo de trabajo del PWM tendriámos que variar el valor de
estos 10 bits en nuestro programa.
3.2. Complete el ATS (Anexo 1) y cumpla las condiciones obligatorias para el uso del
ambiente
Cantidad Descripción
1 Ordenador de mesa
1 Software Proteus
1 Software MPLAB IDE
V.- PROCEDIMIENTO:
VI.- EJERCICIOS:
Disminuir y aumentar la intensidad de un led conectado al PIC 18F4550
Código en MPLAB
Implementación en proteus para la visualización de PWM en el led
PWM son las siglas de Pulse Width Modulation (Modulación por ancho de pulso). Para
transmitir una señal, ya sea analógica o digital, se debe modular para que sea transmitida sin
perder potencia o sufrir distorsión por interferencias.
PWM es una técnica que se usa para transmitir señales analógicas cuya señal portadora será
digital. En esta técnica se modifica el ciclo de trabajo de una señal periódica (una senoidal o
una cuadrada, por ejemplo), ya sea para transmitir información a través de un canal de
comunicaciones o para controlar la cantidad de energía que se envía a una carga. El ciclo de
trabajo (duty cycle) de una señal periódica es el ancho de su parte positiva, en relación con el
período. Está expresado en porcentaje, por tanto, un duty cycle de 10% indica que está 10 de
100 a nivel alto.
Básicamente, consiste en activar una salida digital durante un tiempo y mantenerla apagada
durante el resto, generando así pulsos positivos que se repiten de manera constante. Por tanto,
la frecuencia es constante (es decir, el tiempo entre disparo de pulsos), mientras que se hace
variar la anchura del pulso, el duty cycle. El promedio de esta tensión de salida, a lo largo del
tiempo, será igual al valor analógico deseado.
VIII.- OBSERVACIONES Y CONCLUSIONES:
- Dar sus observaciones y conclusiones de forma personal, en forma clara y empleando el
menor número de palabras.
Observaciones
➢ Para poder generar el archivo .hex hay que siempre configurar los bits a utilizar e incluir
si es que se necesita una librería para q el programa funcione bien.
➢ En el programa de proteus siempre ir acorde a lo programado en el código C.
➢ En este caso utilizamos dos swtich uno para aumentar y el otro para disminuir la
intensidad del led.
Conclusiones
➢ Al simular con la ayuda del osciloscopio podemos observar la salida PWM y como varia
al aumentar o disminuir la señal.
➢ De esta manera podemos variar de diferentes maneras el led o en otros casos utilizar
esto por ejemplo con las pantallas lcd nos sirve bastante.
IX.- BIBLIOGRAFIA:
Rubrica:
Desarrollo de experiencias
Observaciones
Conclusiones
Porcentaje %
Cuestionario
Fundamento
Bibliografía
Puntualidad
teórico
Total
6.1
1.0 - 15 2.0 - 2.0 20 15