fbpx

CD4017 – A Decade Counter with Decoded Output

Pinout for the CD4017 IC

The CD4017 IC is a decade counter that counts to ten. It has 10 outputs that represent the numbers 0 to 9. The counter increases with one for every rising clock pulse. After the counter has reached 9, it starts again from 0 with the next clock pulse.

This is a great chip for making running LEDs! See a circuit example further down.

Pin Overview

Pin NamePin #TypeDescription
VDD16PowerSupply Voltage (+3 to +15V)
GND8PowerGround (0V)
Q0-Q91-7 and 9-11OutputQx is high when the counter is x
CO12OutputCarry Out. Goes high after ten clock pulses
CI13InputClock Inhibit. Ignores clock inputs
CLK14InputClock Input. Increases the counter with one
MR15InputResets the counter to 0
Pin overview for the 4017 IC

What is a Decade Counter?

A decade counter counts to 10. You can remember it by thinking of a decade in years, which is ten years.

It’s very common that a counter will give you the output in binary form. But the output from the decade counter in the CD4017 is decoded, meaning that it will set one of the output pins (Q0 to Q9) high corresponding to the counter value. Ex: If Q3 is high, the counter value is 3.

The easiest way to create a decade counter is by connecting 10 D flip-flops in series to create a shift register. Then you connect the output of the last flip-flop back into the input of the first. And you connect the reset signal so that it sets the first flip-flop to one and the rest to zero on reset.

This is also known as a ring counter. Below you can see an example of a 4-bit ring counter:

4-bit ring counter circuit
4-bit Ring Counter

The counter circuit in the CD4017 however, is not a standard ring counter. Instead, it uses a technique called a Johnson counter that makes it possible to achieve the same with only 5 flip-flops plus some logic gates.

Typical applications for the CD4017 include LED chasers, alarms, frequency dividers, or even a music sequencer.

How To Use The CD4017

First of all, you need a power supply voltage of 3 to 15V. Most versions of the chip support up to 18V. But for instance, the HEF4017 recommends only up to 15V.

Connect the VDD pin to the positive terminal and the GND pin to the negative terminal.

The Clock (CLK) pin increases the counter with one every time the pin goes from low to high. And as the count increases, the output pins (Q0-Q9) get high one by one. After the 10th input pulse, the counter resets and starts from 0 again. Change this pin from low to high to increase the counter.

The output pins Q0 to Q9 goes high one by one as the counter increases. Connect each to a resistor and LED if you want to see pins change state.

The Clock Inhibit (CI) pin disables the counter so that any clock pulse on the CLK pin is ignored. Set this pin to low to enable the counter.

The Carry-out (CO) pin goes from low to high when the counter reaches 10 and resets back to 0. It stays high for 5 clock pulses, then goes low again. Connect this pin to the clock input of another decade counter if you want to count higher than 10.

Pinout for the CD4017 IC
CD4017 Pinout

CD4017 Example Circuit – Running LEDs

Running LEDs illustration

One of the most popular hobbyist projects to build with this chip is the running LEDs circuit. It works like this:

A 555 Timer is set up in astable mode, which makes it into an oscillator circuit that creates a clock signal. This clock signal goes into the clock input of the IC 4017. Every time the clock input goes high, the counter in the 4017 increases, which makes the next output HIGH. LEDs are connected to each of the outputs and therefore appear to be “running” along a line.

Here’s the circuit diagram:

CD4017 with 555 Timer example circuit: LED chaser

Component List

PartValueNote
R1, R2, R310 kΩThree standard resistors
C14.7 μFPolarized capacitor
L1 to L10LEDStandard light-emitting diode
U1NE555555 Timer IC
U2CD4017B4017 Decade Counter

Note: Some versions of the 555 IC require a 0.01µF capacitor between pin 5 and ground/minus.

The LEDs blink in sequence from the first to last and then starts from the first again. You can use this technique, for example, to create blinking Christmas lights.

After reaching Q9, the 4017 will restart the count and restart from Q0. If you want to limit the number of LEDs, all you have to do is connect the corresponding next output bit to the MR pin.

For example, if you have only 5 LEDs, connect the Q6 to the MR pin. When the count reaches the 6th bit, it sets the MR pin and resets the operation.

With some small modifications to the circuit above, you can build the knight rider LED bar:

How To Set the “Running” Speed

The number of times the output from the 555 Timer goes HIGH per second is the frequency and is given in Hertz (Hz). For example, 10 Hz means ten times per second. And that means the LED moves 10 positions per second.

The resistors R1 and R2, and the capacitor C1 decide the frequency according to this formula:

Frequency: 1.44 / ((R1 + R2 + R2) * C1)

Note: R1 should never be less than 1 kΩ as it might damage the chip when Pin 7 (Discharge) is connected to ground.

If you want to try different values, you can use this 555 Timer calculator to help you.

Alternatives and Equivalents for CD4017

You likely find the 4017 IC marked as CD4017, NTE4017, MC14017, HCF4017, TC4017, or HEF4017. Usually with a few extra characters at the end (Ex: CD4017BE).

This has to do with the manufacturer of the chip and the technology used. But the functionality and the pins are the same.

If your local electronics store doesn’t have any of these chips, check out my list of online stores for other places to buy from.

The CD4017 is a very common IC, so you should be able to find it in one of the online stores. But as an alternative, it’s possible to use a BCD counter such as the CD4510. Then connect the output of it into a CD4028.

4017 Datasheet

Download the PDF datasheet for the IC 4017 here:

CD4017BE (Texas Instruments)
HEF4017B (Nexperia)

28 thoughts on “CD4017 – A Decade Counter with Decoded Output”

  1. An excellent page!
    It helps me a lot to handle the 4017.
    One question:
    What do I do if I want the LEDs to run just once and then get the 4017 back to a “ready to start again” status triggered by a switch or a light sensor?
    I tried a time value with a NE555 but that seems to confuse the 4017.
    Best wishes and stay healthy
    Thomas

    Reply
    • Thanks Thomas!

      The 4017 goes to the next light every time the CLK pin goes from low to high – unless the CI pin (pin 13) is set to HIGH.

      So if you connect the last output (pin 11) to pin 13, the 4017 will ignore any clock pulses after the 10th LED is lit.

      To restart the circuit, use the Reset pin with whatever you want to use as a trigger.

      Reply
    • You would need to convert the output into binary somehow. With logic gates I think it would become a mess. Not sure if a chip exists for that, but maybe.

      But binary counter chips exist, such as the CD4040

      Reply
  2. Peter
    4520 is a 4 bit binary counter that counts from 0000 to 1111 (0 to 15) 16 bits. 4518 is a BCD counter that counts from 0000 to 1001 (0 to 9) BCD stands for Binary Coded Decimal so kinda like the 4017 Decade counter but in binary form.
    Hope that helps

    Reply
  3. I am trying to make the 4017 to count 1-2-3 and repeat 1-2-3 a gene and a gene.
    I don’t know what I’m doing wrong. I am getting 1-2–3 with a mise and then 3, and then it repeats.

    Reply
  4. Hello. I’d like to run a sequence of 4 LED lights instead of 10. Is there a CD4014 like IC that only supports 4 or 5 outputs? Run the sequence of 4 or 5 lights then restart again. Thanks!

    Reply
    • Hi Michael, you can do this with the CD4017. Let’s say you want 5 outputs. Then you take the 6th output (Q5/pin 1) and connect directly to the reset pin (pin 15). The reset pin should not connect to anything else.

      Reply
      • Thank you very much sir, it’s very useful to me sir. Because Iam beginner of electronics circuit leaner. Thanks again sir.

        Reply
    • Hi admin I was wondering if I or how I could use this circuit to switch on and stay on several led lights one after the other and hopefully when switched off they would also go off one by one in reverse order ???
      Trying to make my driveway
      lights come on and off like runway lights as you drive in

      Many thanks and keep up the great web page

      Reply
  5. merci beaicoup.

    si je comprend bien, quand il faut régler la minuterie à 2 heure il faut que le reseau RC de NE555 soit capable de faire une sortie haut à la broche 3 du ne 555 a chaque 12 minutes ?

    Reply
  6. Is there a possibility to use a rotary encoder with 2-bit quadrature code (Bourns PEC11L-4115K-N0020) to increase AND to decrease the output from 4017?
    I’m designing a multi cable tester (All-in-one :D) which I’m going to use for testing 2 to 20-pin cables. The idea of this would be to be easily move between the pins to see that how they connect, so that it would be easy to go back.
    Any ideas if this isn’t working?

    Reply
  7. Thanks for this lesson. My 555 pin 3 has a freq of 1 hz. When I turn the circuit on, the LEDs flash one by one during the 1 hz cycle. I thought each LED would flash for 1 hz, then go to the next LED. I connected 4017 pin 15 and 13 to pins 7 and 8. Is this correct? How can I control the cycle of each LED, or is this even possible? I’m new to working with these types of chips. Thks.

    Reply
    • Hi Gary,
      Pin 7 is an output and shouldn’t be connected to pins 15, 13, and 8. Do you want each LED to turn on for 500ms, then turn off for 500ms, before the next LED turns on for 500ms and so on? Then you just need to connect your LEDs to every other output.

      So connect LEDs to Q0, Q2, Q4, and Q6, and leave the rest unconnected.

      Reply
  8. Hello.
    An excellent page!
    It helps me a lot to handle the 4017.
    One question:
    What do I do if I want to run a sequence of 17 LED lights with the CD4017.
    Best wishes and stay healthy
    mehrdad

    Reply
  9. Thanks for this helpful site. Here is my long-winded query:
    I have a crystal oscillator circuit outputting 1hz (a kit from eBay). Clocking four 4017s in a chain, I want to output a pulse exactly every hour. This is to drive a Westminster chimes module. The first two 4017s will count to 10 seconds, the second to 9, and the fourth to 4. That will be 10 x 10
    x 9 x 4 = 3,600 seconds – 1 hour! I know you use the carry pin on the first two but I’m not sure how you connect the third and fourth. Then how do I reset the lot to start again?

    Reply
  10. Every time I switch on the circuit it does not start at 1, then after a while it get into sequence.
    How can mI ensure it always starts at 1 when I switch the power on.

    Reply
  11. What if i connect the clock pin to a switch to trigger the IC for the first time then connect the output Q1 via diode for example to the clock pin and the output Q2 to the reset pin does the high ouptut oscillate between the Q0 and Q1.

    Reply

Leave a Comment