Fork me on GitHub

Project Notes

#108 RingCounterController

Control the classic CD4017 walking-ring counter with an Arduino

Here’s a quick video of the circuit in action:

RingCounterController

Notes

The RingCounter project demonstrated the classic walking ring circuit using a 555 timer to send clock pulses to a CD4017 Decade Counter/Divider with 10 Decoded Outputs.

This project replaces the 555 with a microcontroller for more dynamic effects. The program demonstrates a few effects achieved by controlling the CLOCK, RESET and CLOCK ENABLE pins of the CD4017.

Digital IO pins are connected to the CLOCK, RESET and CLOCK ENABLE pins via 1kΩ resistor. The resistor is not strictly necessary as the CD4017 draws at most 1µA on the inputs. But they provide some over-current protection for the Arduino should anything be going wrong in the circuit.

The minimum clock pulse with is 250ns when operating at 5V. The program ensures a minimum clock pulse of 1ms which is very conservative. In fact the sketch works equially well with no delay when pulsing the clock - just digitalWrite HIGH immediately followed by digitalWrite LOW.

When operating, the circuit draws about 2mA in total.

Note that since only a single LED should be on at a given time, the 10 x 1kΩ current-limiting resistors could be replaced by a single resistor on a common cathode ground link for the LEDs. But it depends on the specific LED ratings, as this subjects all the “off” LEDs to a reverse voltage equal to the voltage drop across the resistor.

Construction

Breadboard

The Schematic

The Build

Credits and References

About LEAP#108 CMOSArduino
Project Source on GitHub Project Gallery Return to the LEAP Catalog

This page is a web-friendly rendering of my project notes shared in the LEAP GitHub repository.

LEAP is just my personal collection of projects. Two main themes have emerged in recent years, sometimes combined:

  • electronics - usually involving an Arduino or other microprocessor in one way or another. Some are full-blown projects, while many are trivial breadboard experiments, intended to learn and explore something interesting
  • scale modelling - I caught the bug after deciding to build a Harrier during covid to demonstrate an electronic jet engine simulation. Let the fun begin..
To be honest, I haven't quite figured out if these two interests belong in the same GitHub repo or not. But for now - they are all here!

Projects are often inspired by things found wild on the net, or ideas from the many great electronics and scale modelling podcasts and YouTube channels. Feel free to borrow liberally, and if you spot any issues do let me know (or send a PR!). See the individual projects for credits where due.