Está en la página 1de 16

Modulación por ancho de

pulsos PWM
 La modulación por ancho de pulsos (MAP o PWM, siglas del ingles Pulse- Width
Modulation) de una señal o fuente de energía es una técnica en la que se modifica el ciclo
de trabajo de una señal periódica (una sinusoidal 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.
Modulación por ancho de pulsos
PWM PIC
 Para poder generar esta señal con nuestro PIC, se hace uso de los
módulos CCP (Comparador, Captura y PWM). Dicho módulo
permite realizar tres funciones básicas.
 Comparar: Compara el valor del temporizador con el valor de un
registro y provoca una acción en el PIC.
 Captura: Obtiene el valor del temporizador en un momento dado,
fijado por la acción de un terminal del PIC.
 PWM: Genera una señal modulada por ancho de pulso.
 Nos centraremos en el PWM. Para nuestro caso en especifico, como
estamos usando el PIC16F877A y PIC18F4550, dichos
microcontroladores tienen 2 módulos CCP como se puede apreciar en
la siguiente figura, los cuales corresponden a los PINES 16 y 17
(Correspondientes al puerto C, RC1 y RC2).
 El módulo PWM (Pulse Width Modulation), permite obtener de los pines CCP1 (Pin 17) y CCP2 (Pin
16) una señal periódica (Es decir que se repite en el tiempo) la cual podemos modificar su ciclo de
trabajo (Duty Cycle en ingles).
 Dicho PWM o Modulación por Ancho de Pulso, puede tener una resolución máxima de 8 BITS. En
otras palabras. Como sabemos que el PIC trabaja con voltajes binarios (0V o +5V), podemos
configurar el PWM para que trabaje un determinado tiempo en +5V (Ton) frente al tiempo que está en
nivel bajo 0V (Toff), tal y como lo podemos apreciar en la siguiente figura.
 De esta manera, la tensión media aplicada a la carga, es proporcional al tiempo en
que la señal estuvo en +5V (Ton) y así podemos por  ejemplo controlar la
luminosidad de lámparas, o la velocidad de un motor.
MODULO CCP EN C PARA PWM PIC
Modulación por Ancho de Pulso
 El compilador nos suministra tres instrucciones básicas para el manejo del PWM.
 setup_ccpx(modo);
 Donde modo hace referencia a los registros en PIC C y puede ser configurado según la
siguiente tabla
 Para generar una señal de Modulación por Ancho de Pulso con el PIC, tenemos que utilizar
el TIMER 2, el cual es un Timer de 8 Bits.
 Internamente el PIC, usa el TIMER 2 como base de tiempo para la Modulación por Ancho
de Pulso (PWM) utilizando el módulo CCP

 setup_timer_2(T2_DIV_BY_4, 255, 1);


 set_pwmx_duty(valor);
 donde el x hace alusion al modulo CCP a utilizar, en el caso del PIC16F877A solo
tiene CCP1 y CCP2, así que si queremos usar el PWM del PIN 17 ponemos
set_pwm1_duty(valor); y si queremos usar el PWM del PIN 16 ponemos
set_pwm2_duty(valor);

 Valor es un dato de 8 bits que determina el ciclo de trabajo o ancho de pulso, es


decir ese valor va a determinar el porcentaje (En bytes) en que la señal de PWM
se va a mantener encendida.
Programación en Pic C

 Directivas
 Estas incluyen las palabras reservadas. Sirven para configurar la forma de trabajo del
microcontrolador. Estas directivas comienzan con el símbolo # y continúan con una palabra
reservada específica.
FUNCIÓN PRINCIPAL
 Esta función se requiere para iniciar el flujo del programa, ya que es llamada cuando inicia
la ejecución de un programa.
INSTRUCCIONES
 Las instrucciones determinan las acciones del programa dentro del microcontrolador.
Programación completa
Simulación en Proteus

También podría gustarte