Cart 0

RGB LED Arduino Shield

  • £1200


This kit is an Arduino shield to control a Red/Green/Blue LED board.
Use it to help add colour to your projects.
This Arduino Shield contains an IC which controls the output colour PWM using simple commands. If you need to change the colour then just send a new colour setting. These units are also stack-able so you can run lots of large RGB units from just two digital pins.

This Arduino shield controls 3 outputs for red, green and blue with pulse width modulation. These outputs can control any 12V load, up to 1.5A.

The circuit uses a serial interface and pulse width modulation (PWM) control to maintain an output colour. It is based upon the WS2801 RGB LED controller IC, but has higher current output buffer transistors which means it can be used with higher current and higher voltage RGB LED displays. Only two Arduino digital IO pins are required to control virtually any number of RGB led boards.

This board was developed to run a number of strings of RGB LED strip. It was so useful, we thought we would make a number of boards up and see if they are useful to others!

(Please note: This kit requires both an Arduino (or another micro-controller) and an RGB LED unit.)

Kit Information

This is a relatively simple to put together kit and we have pre-soldered the surface mount component to make it easier for you. The kit includes these parts:

(Please Note: You will need: soldering iron, solder, wire cutters, small pliers.)


The input voltage (at P1) can be in the range of 7 to 30V DC. It is designed to be used with 12V LED boards, hence the supply will need to be 12V DC.

This shield uses the WS2801 RGB controller IC. This reads in serial data and then controls three pulse width modulated channels (one for each colour: red, green and blue). The data sheet for the WS2801 is available here.

Once the output colour has been set using the serial interface, then the Arduino does not need to do anything else until the RGB LED needs to be changed, as the PWM control is handled by the WS2801 IC.
The output from this IC can only control a maximum of 20mA, so additional transistors have been used to control a higher output power than this (up to 1.5A).
The board has an in-built 5V regulator to power the Arduino from the input supply.
This board is quite hackable, for example:

  • The output transistors can be changed for logic level MOSFETs for higher output current.
  • The outputs could be used to control 3 x small motors with PWM speed control for each motor.
  • You can use other micro-controllers, such as PICAXE etc.


The construction instructions are available here.

Arduino Code

The code for this project was written using the Arduino bootloader and IDE.

This project assumes some knowledge of the Arduino platform. If you do not have this then please start with the numerous examples available within the Arduino community.

Here is the example, which you will need to download and add to your Arduino sketchbook:

The code has numerous comments and is based upon sample code written by Nathan Seidle via Sparkfun Electronics.

Here is the example code in action:

Circuit Diagram and PCB Files

This is a fully open-source project. The PCB and schematic for this project were drawn using the open-source KiCAD electronics design package.

Here are the full KiCAD design files for this project, if you would like to make your own or use the ideas here.

Also, the Gerber files for the PCB are available here.

Stacking Multiple Boards

These boards can be stacked to have multiple RGB outputs, although some changes and extra components are required. Here is a guide to the changes required if you would like to stack these boards to run more than one RGB LED shield from an Arduino.


This was used to control the RGB LED strip in this ‘Stickman’ fancy dress costume. It can be used anywhere that some 12V RGB LEDs need to be controlled. It could also be used to control motor speeds or three different lights to different light levels.

We Also Recommend