PWM controller with PIC18f2455

Posted on Oct 16, 2012

The use of pulse width modulation (PWM) is common for the use of controlling power to a particular electrical device. Motor speed control, LED contrast control, power supplies are some of the example usage of PWM. 18 series PIC always come with a CCP module which is capable of generating PWM. The picture below shows an example of using the capture/compare/pwm (CCP) module to control the LED brightness. PWM duty cycle is set accordingly using the value obtain from the potential meter through the ADC with 5v being the brightness and 0v dimmest for the LED.

PWM controller with PIC18f2455
Click here to download the full size of the above Circuit.

The test circuit below is constructed to test the PWM module of PIC18f2455. LED of the 2x16 LCD is controlled by a NPN transistor BC547. PWM output is feed through CCP1 for the brightness control. The example below uses the code from ADC and LCD guides. Next step would be to set the CCP module to function as a PWM. Timer 2 is tied to the PWM function for the generation of CCP. PR2 is used to determine the Period of the PWM pulse. CCPR1L and bit 4 and 5 of CCP1CON control the duty cycle of the generated PWM. With this we can obtain a pwm period and maximum duty cycle of PWM Period = (255 + 1) * 4 * (1 / (8 * (10^6))) = 0.000128 Max PWM Duty Cycle period = (1024 * (1/(8*10^6))) =0.000128 allowing us to use full 10 bit to control the duty cycle of the PWM. The 10 bit adc value is set in to the corresponding bit for the control of the PWM. Below is the code for the update of pwm duty cycle. Fill attached contain the project for the example.

Leave Comment

characters left:

New Circuits



Popular Circuits

IR remote control signal receiver using AVR microcontroller
Muscular stimulator circuit
toggle switch using 555
relay flasher circuit
Headphone Limiter
By the driving capacitive loads MAX4223 ~ MAX4228 circuit diagram