Drive an RGB led with software PWM

Posted on Feb 7, 2014

This project illustrates how to use an ATTiny microcontroller and an RGB LED to create a coloured light that cyles continuously through random colours, but changes colour dramatically at the press of a switch. Why My kids had this $2 novelty pen that did this employing a teensy circuit along with 3x3mm LEDs and some alkaline coin-cells.

Drive an RGB led with software PWM
Click here to download the full size of the above Circuit.

If children will play with this, choose one of the following: ensure your LED is not a superbright, or use a diffuse led, or diffuse a clear one (eg cover it with half a table tennis ball, or enclose it in resin or wax. You could also use higher-value resistors to limit current, or lower PWM_OC_MAX to limit the PWM duty-cycle (LED brightness) via software. The microcontroller should be configured to obtain the system clock from the 8MHz internal RC oscillator. The ATTiny13 factory fuse settings include a divide-by-8 of the RC oscillator giving 1MHz, so remember to change that fuse to get the original 8MHz signal. The overflow interrupt from the hardware 8-bit timer triggers an interrupt service routine (roughly 32000 times per second) which increments each of 3 separate 8 bit counters. These counters, and corresponding "Output Compare" (OC) values are used to generate 3 Pulse-Width-Modulated waveforms, with each counter being associated with a particular output pin. Every time a counter reaches zero, the corresponding pin is turned on. When the counter reaches its PWM_OC value it is turned off. When the counter reaches its PWM_TOP value (255) it wraps around to zero and the cycle repeats. The effect of all this is that each of the 3 output pins is driven with a square-wave having a wave-legnth of 256 timer ticks (about 1/128 of a second), which is equivalent to a frequency of 128Hz (cycles-per-second). The OC value...

Leave Comment

characters left:

Related Circuits

  • New Circuits



    Popular Circuits

    Tv modulator
    Car Battery Saver Circuit
    An Intel 8088 Maximum Mode Single Board Computer System
    PC computer based frequency meter circuit diagram
    Current Sensor Testing and calibration
    Electronic Locks Circuits
    Circuit explanation for the ultrasonic alarm
    Spectrum Keyboard Buffer
    Single-ended four-channel amplifier schematic
    Nine-digit password composed of the controller circuit diagram CD4017