Starting Electronics Needs Your Help!
It is that time of the year when we need to pay for web hosting and buy new components and equipment for new tutorials. You can help by making a donation. Contribute to this website by clicking the Donate button. The total will be updated once daily. (You may need to clear your browser cache to see the updates.)

Target Amount: $2000
Amount Raised: $359

Donations Received

Top Donor: D.C. $30

X

Arduino Tri-colour LED Flasher Circuit

Created on: 8 May 2013

This simple tri-colour LED flasher circuit is great for beginners. The three pin tri-colour LED is controller by an Arduino Uno and changed between three colours.

This video shows the Arduino running a sketch that controls the tri-colour LED.

Amazon.com

Amazon.co.uk

Can't see the video? View on YouTube →

Circuit Diagram for the Arduino Tri-colour LED Controller

The circuit is very simple, using only three components. The tri-colour LED is a three pin common cathode type containing a red and green LED.

The tri-colour LED is the same LED used in the tri-colour LED transistor flasher circuit – refer to this project for more details on the LED.

Arduino tri-colour LED flasher circuit.

Arduino Tri-Colour LED Flasher Circuit

Arduino Sketch

The sketch changes the colour of the LED every second. Colours are changed by switching on the red LED in the tri-colour LED package, then the green LED, orange is obtained by switching on both the red and green LEDs at the same time.

/*--------------------------------------------------------------
  Program:      tri_colour_LED

  Description:  Changes the colours of a tri-color LED.
  
  Hardware:     Arduino Uno and tri-colour LED.
                
  Software:     Developed using Arduino 1.0.3 software
                Should be compatible with Arduino 1.0 +

  Date:         8 May 2013
 
  Author:       W.A. Smith, http://startingelectronics.org
--------------------------------------------------------------*/

void setup()
{
    pinMode(2, OUTPUT);
    pinMode(3, OUTPUT);
}

void loop()
{
    digitalWrite(2, HIGH);
    digitalWrite(3, LOW);
    delay(1000);
    digitalWrite(2, LOW);
    digitalWrite(3, HIGH);
    delay(1000);
    digitalWrite(2, HIGH);
    digitalWrite(3, HIGH);
    delay(1000);
}