Starting Electronics needs your help! Please make a donation to help cover our hosting and other costs. Click the donate button to send a donation of any amount.

Dual LED Chaser Arduino Project for Beginners

Created on: 8 April 2016

In this Arduino project for beginners and kids, a dual LED chaser is built on an electronic breadboard using 12 LEDs. The Arduino sketch code for this project makes one LED appear to move from left to right and back again, while at the same time a second LED appears to move from right to left and back again.

This video shows the finished dual LED chaser project with 12 LEDs and Arduino Uno.

Can't see the video? View on YouTube →

Building the Dual LED Chaser Arduino Project

Hardware Requirements

The following hardware is needed to build the dual LED chaser project.

  • 12 LEDs
  • 12 resistors with values between 220 ohms and 470 ohms
  • Arduino Uno or similar Arduino board
  • Electronic breadboard and jumper wires

Books that may interest you:

C Programming with Arduino Book Ultimate Arduino MEGA 2560 Hardware Manual Ultimage Arduino Uno Hardware Manual

Dual LED Chaser Breadboard Layout and Circuit Diagram

Build the circuit as shown in the breadboard layout and circuit diagram below. The circuit consists of one LED and one series resistor repeated 12 times. These LEDs and series resistors are connected between Arduino digital pins 2 to 13 and GND. For a similar project with more details on building the breadboard circuit, see the Arduino Knight Rider tutorial.

The resistors shown in the breadboard layout are 470 ohm resistors, but resistors with values between 220 ohms and 470 ohms will be fine.

Dual LED Chaser Arduino Project Breadboard Layout
Dual LED Chaser Arduino Project Breadboard Layout
Dual LED Chaser Arduino Project Circuit Diagram
Dual LED Chaser Arduino Project Circuit Diagram

Dual LED Chaser Arduino Sketch Code

After building the circuit as shown above, copy and paste the following Arduino sketch code to a new window in the Arduino IDE. Load the sketch to the Arduino and see the dual LED chaser light up.

The speed at which the LEDs move can be changed by changing the value in the following line of code.

// change speed of display here
#define SPEED_MS  100

Increasing the value of SPEED_MS will decrease the speed of the LEDs because the millisecond delay that an LED is left on is increased. Decreasing the value of SPEED_MS will increase the speed of the LEDs.

//---------------------------------------------------------------------
//  Program:      dual_chaser
//
//  Description:  12 LED dual chaser. One led moves from left to right
//                while the second LED moves from right to left.
//                LEDs and series resistors connected to pins 2 to 13.
//
//  Date:         8 April 2016      Author: W.A. Smith
//                http://startingelectronics.org
//---------------------------------------------------------------------

// change speed of display here
#define SPEED_MS  100

void setup() {
  // set up pins 2 to 13 as outputs
  for (int i = 2; i <= 13; i++) {
    pinMode(i, OUTPUT);
  }
}

uint16_t chase2 = 13; // keeps track of second LED movement

void loop() {
  // move first LED from left to right and second from right to left
  for (int i = 2; i < 13; i++) {
    allLEDsOff();
    digitalWrite(i, HIGH);      // chaser 1
    digitalWrite(chase2, HIGH); // chaser 2
    chase2--;
    // stop LEDs from appearing to stand still in the middle
    if (chase2 != 7) {
      delay(SPEED_MS);
    }
  }

  // move first LED from right to left and second LED from left to right
  for (int i = 13; i > 2; i--) {
    allLEDsOff();
    digitalWrite(i, HIGH);      // chaser 1
    digitalWrite(chase2, HIGH); // chaser 2
    chase2++;
    // stop LEDs from appearing to stand still in the middle
    if (chase2 != 8) {
      delay(SPEED_MS);
    }
  }
}

// function to switch all LEDs off
void allLEDsOff(void)
{
  for (int i = 2; i <= 13; i++) {
    digitalWrite(i, LOW);
  }
}

New Book: Explore ATtiny Microcontrollers using C and Assembly Language

Explore ATtiny Microcontrollers using C and Assembly Language book Ultimate Arduino Uno Hardware Manual

As an Amazon Associate I earn from qualifying purchases: