Maker Pro

LED Chaser Circuits Using IC4017 and Arduino

January 28, 2021 by Ashish Adhikari

In this tutorial I am going to create 3 chaser circuits using Arduino and IC4017 decade counter.

A Chaser Circuit consists of a clocked IC or other electronic unit like an Arduino that drives an array of LEDs in such a way that individual LEDs (or small groups of LEDs) turn on and off in a predetermined and repeating sequence, thus producing a visually attractive display in which one or more ripples of light seem to repeatedly run through a chain or around a ring of LEDs.

In this tutorial I am going to create 3 chaser circuits using Arduino and IC4017 decade counter.

Using IC555 and IC4017

Lets first create the chaser circuit using the IC4017 decade counter and IC555 timer IC.

Components Required


 For the Non-Arduino bit we need:

  • 2 x 4017 Decade Counter IC
  • 1 x 555 Timer IC
  • 1 x 10 K Potentiometer
  • 1 x 1 Kilo Ohm Resistor
  • 1 x 100 Ohm Resistor
  • 1 x 100 MFD Capacitor
  • 20 x Zener Diodes and
  • 10 x Red LEDs

Circuit Diagram

1. Forward Chaser


The circuit is very simple.

The 555 Timer IC operates as a clock oscillator or clock generator. The output on PIN-3 goes high causing a shift.

The signal from the 555 IC clocks the 4017 decade counter. Output of 555 timer IC on PIN-3 is given as an input to 4017 IC through PIN-14. Whenever a pulse is received at the input of IC 4017, the counter increments the count and activates the corresponding output PIN. This IC can count upto 10, so we have attached 10 LEDs to the circuit.

By increasing or decreasing the value of resistance of the 10K pot we can adjust the speed of the chaser circuit.

Since only one LED will be turned on at a given time, I have attached just one 220ohm current limiting resistor to the cluster of LEDs.

Demo: So this is how it looks like. 


2. Forward Reverse Chaser using 2 x IC4017


Now, to give the forward and reverse effect we are attaching another 4017 IC to this circuit. If lets say the 1st IC connects from 1 to 10 (left to right) then the second one should connect from 10 to 1 (right to left). However, now we cannot connect the counter ICs directly to the LEDs as we did before. We have to use Diodes to stop the reverse flow of current to the 2nd IC.

We have also lowered the value of the current limiting resistor to 100ohms as at a given time 2 LEDs will be on, one running from left and one from the right hand side.


3. Forward Reverse Chaser using 1 x IC4017


To get a forward reverse effect using one 4017 IC we need to connect 8 diodes to the circuit. The 1st and the 6th LED will be directly connected to the IC4017. The LEDs at the far end will get signals from only one pin however the one in the middle will receive signals from 2 x pins and hence we need diodes to stop the reverse flow of the current.

Demo: So this is how it looks like.


Using Arduino

Now, I am going to repeat the same setup using an Arduino

Components Required


 For the Arduino bit we need:

  • 1 x Arduino Uno/Nano (whatever is handy)
  • 1 x 220 Ohm Resistor
  • 10 x Red LEDs
  • Few Connecting Cables

The beauty of using an Arduino is that the setup remains the same for all the previously shown circuits, the only thing that changes is the code. So, I am going to use this simple setup for the rest of the tutorial. 

Circuit Diagram


1. Forward Chaser


Code: The code for the forward chaser is very simple. Start by defining the constants and the global variables that will be used throughout the code.

Then in the setup section define the pin modes.

Now, in the loop section we are going to start by turning off all the LEDs followed by turning one LED on at a time. A counter is used to tell the loop which LED to turn on in the next cycle. Once the value of the counter reaches 10 (the maximum number of LEDs) the counter resets to 1 and the 1st LED lights up and the cycle continues.

Demo: So this is how it looks like.


2. Forward Reverse Chaser


Code: The code is same as the previous setup. The only thing that changes is the function that deals with the LEDs. In this setup we cycle through LED 1 to LED 10 and then reverse from LED 9 to LED 1. The counter resets when the max count is reached.

Demo: So this is how it looks like.


3. Left-Right Chaser


 Code: The setup is exactly the same as the previous two setups. This function is the one which turns on the LEDs at the two far ends and then the one before that and likewise until they cross each other. The counter is reset when the max count is reached.

Demo: So this is how it looks like.


PCF8574 8-bit GPIO Port Extender


Using a PCF8574 8-bit GPIO Port Extender we can add even more LEDs to this setup.

PCF8574 becomes a life saver when you run out of pins on your Arduino. This "GPIO (General Purpose Input Output) pin extender" provides an additional 8 pins (P0 ~ P7) which can be used to 'output a signal' or 'read a signal as an input'.

These modules run on the I2C bus, and if daisy-chained you can connect upto 8 of these devices in a project. Each device will give us an additional 8-bits of GPIO enabling 64 GPIOs in total.

To know more about this IC please check out my tutorial number 10 : "PCF8574 GPIO Extender - With Arduino and NodeMCU".


Gerber File:



1. Forward:

2. Forward Reverse:

3. Left Right:


1. With Arduino:

2. Without Arduino:

  • BTC: 1M1PdxVxSTPLoMK91XnvEPksVuAa4J4dDp
  • DOGE: DDe7Fws24zf7acZevoT8uERnmisiHwR5st
  • LTC: LedWPdTaUzr5iaJx8garkcykSs1DZU1FAx
  • ETH: 0xB62a901Ee6cE24f3153CA6ae565C2A6533066faA
  • BAT: 0xB62a901Ee6cE24f3153CA6ae565C2A6533066faA
  • BCH: 14xJhpswSAQi375S39yDFsrBFtDoiLVX1J

Related Content


You May Also Like