Browse over 10,000 Electronics Projects

RGB LED Controller Project

RGB LED Controller Project

This project is a small (3.8″x2.1″) PCB that allows very simple control of upto 13 RGB full spectrum LEDs. LED settings (color, state, brightness) can be stored on the board as power-up defaults or can be set/changed over a serial link (RS232 or SPI) with a very simple command protocol.

The board allows you to omit parts that are not needed (if you only need to control 3 RGB LEDs, for example, you can omit a number of PWM chips, capacitors, resistors and terminal strips without altering the board or hardware). The board also allows simple color “animation” (washes from one color to another over a given period of time) and LED slaving (making multiple LED outputs all reflect the state of a master LED for either high current LEDs or for multiple LEDs that need to keep coherent settings with each other). Commands can target a wildcard address to change all LEDs at once. Multiple boards can be strung on the same serial line and each given a unique ID/address, allowing hundreds to thousands of LED. Commands can also target a wildcard board ID to control all boards at the same time.

The boards can be built for between $40 and $80 (USD), depending on where you get the board made, wher you get the parts and which parts you want to include.


Dynamically controlling full spectrum RGB LEDs is not simple. Ideally, you want to be able to vary the levels of each component of the LED (R, G and B). That requires either some form of D to A converter or a simulation of such via PWM (pulse width modulation). The logic to track and correctly light a single LED may be workable in a small project, but it can eat up a fair amount of resources. The logic and effort to control multiple RGB LEDs can quickly overwhelm a project (which is exactly what happened to me). I needed a way to off-load control 1 or many RGB LEDs and do so in an easy, low impact (on the project using the LEDs) way.

Whats it made of
The controller is a PIC 16LF87 chip, stuffed to the gunnels with code. It manages the interface and directly controls the hardware. The LEDs are driven by 1-4 (per controller) MAX6966 PWM driver chips. Since the PWM chip and the PIC run at 3.3 volts, there is a 5-3.3 volt regulator and an optional MAX232 level shifter (for using RS232). Add in a few resistors a few capacitors.

The PWMs drive the LEDs (common anode LEDs) at a steady 20ma (switchable to 10ma) without use of resistors. Just hook the LED up and go. If the LEDs you want to drive require more than 20ma, you can gang multiple outputs together (in hardware and in software) to achieve higher current ratings.

The board design is very modular, allowing you to install only the components you need to get the level of service you want. If you have a completely hardwired solution for 2 RGBLED being controlled over an SPI serial interface, you can elimnate extra LED drivers, the barrier strips, a number of capacitors, the RS232 level shifter, etc. The number of PWM chips you install defines the maximum number of RGB LEDs the board can drive.

Visit Here for more.