The Start

Hi, What and Why

Plug it in

Rule number 1

Water Sensor

Sound Sensor


Tri Colour LED

RTC (Real Time Clock) DS1302

RTC (Real Time Clock) DS3231

Matrix LED step 1


Stepper Motor

LCD revisited with PCF8574T

Humidity Sensor

Shift Register

RFID tags (RC-522)

7 Segment display

Ultrasonic distance sensor

5V regulator

analogRead and analogWrite

Wiring an Array of Switches

The next step

Other things I have bought

Infra red and Processing

Programming a separate arduino chip

Creating your own PCB

L293D for a DC motor

4 digit 7 segment display

Starting with motors

RF433 Wireless Comms

Sort a character array

More stuff

I2C devices (SDA,SCL)

I2C scanner

SPI devices (MOSI,MISO)

HMC5883L Compass

MMA7361 Accelerometer

Added projects

Message Display System

4WD robot car
4WD robot car II

4WD robot car COMPLETE

MP3 Player

Tri Colour LED

A tri colour LED. There is a single GND pin, and three +5V pins, one each for RED, GREEN and BLUE. There are 3 separate bulbs inside this one glass outer case. tri colour led

There are 3 coloured LEDs within the bulb, coloured Red, Green and Blue. Put a varying voltage through each, and you get a mixture of the colours.

Wired up.
Pins 10, 8 and 7 are used as +5V outputs through resistors to the appropriate LED RGB input. The LED then returns to GND.
eg Arduino Pin 10 -> breadboard -> resistor -> TriColorLED_RED ->
TriColorLED GND -> Arduino GND
tri colour led

This is the code that I used. Originally written to control 3 separate LEDs as a 'traffic light', the code can be reused to make the tri-colour LED light up. This is using the digital outputs to give maximum brightness; we will use the analog outputs afterwards, to write out varying values to control the intensity of each colour.

int ledDelay = 200; // delay in between changes
int redPin = 10;
int yellowPin = 8;
int greenPin = 7;

void setup() {
pinMode(redPin, OUTPUT);
pinMode(yellowPin, OUTPUT);
pinMode(greenPin, OUTPUT);

void loop() {
// turn the red light on
digitalWrite(redPin, HIGH);
delay(ledDelay); // wait 
digitalWrite(yellowPin, HIGH); // turn on yellow
delay(200); // wait 
digitalWrite(greenPin, HIGH); // turn green on
digitalWrite(redPin, LOW); // turn red off
digitalWrite(yellowPin, LOW); // turn yellow off
delay(ledDelay); // wait 
digitalWrite(yellowPin, HIGH); // turn yellow on
digitalWrite(greenPin, LOW); // turn green off
delay(200); // wait 
digitalWrite(yellowPin, LOW); // turn yellow off
// now our loop repeats