Arduino 7 segment Displays Digital Clock With Charlieplexing LEDs

This is my second instructable. I just had a mood of making a digital watch. But wanted to make it a learning process. I already had a sanguino i could have easily used that Atmega644 chip. it would have been more than enough.  But i wanted to try burning a Arduino bootloader and see if i could make it work. Well i did. I used a Atmega168 for this project.

Digital Clock
I used 4 seven segment displays to display time in 24hr format. Here ii experimented with common anode and common cathode. Now i wanted to use other chips too and not just the Arduino which would have been the easier option. The chips i experimented with are 74LS47, 74HC154, 74HC595 ,4511 and  74HC139. The final compatible combination was common cathode with 4511 and 74HC139.
I used a RTC chip DS1307  to feed the time to the Arduino. I initially wanted to use millis() function in Arduino but it is not that accurate. Using RTC not only saved long coding but also has an added advantage of keeping the time in case the external supply is cutoff. It uses a 3v battery to do this.
Now I have used LEDs to point the time as minute and hour hands would do in an anolog clock. 60 Bi-coloured LEDs total which work on Charlieplexing.
Well if you are interested onwards you go.

Step 2: Circuit

I have made the circuit in Eagle but sadly I am not that proficient in using the software (Which is next on my “TO LEARN” list) so I didn’t make the board. I have attached the schematic i made on Eagle. U can use it to make the board.
I used Express PCB to create the PCB. I have also attached this .pcb file here. You can either print this file directly and make a pcb from a copper clad or build a board from Eagle and get it made professionally.

1) In express PCB file I’ve used JMP at some places. It means you have to use wires to short the two pads. This was necessary                   since i used a single sided PCB. Confirm where to connect wires from the circuit diagram.
2) At digital pin 0 and 1 i have used jumpers. This is VERY IMPORTANT as the LEDS have to be disconnected from these points as they are RX and TX pins. LEDs if connected while uploading the program will use up the voltage and hinder the uploading. I learnt it the hard way. So i made changes afterwards. So while uloading Remove the jumpers thus effectively disconnecting them from LEDs and replace them once the uploading is done.

Step 3: LED circuit

Schematic Digital Clock

The PCB that i have built does not include the Charlieplexing LED circuitry. I made the 12 round tracks using a waterproof marker and compass.

1) The outermost track is 16cm in diameter.
2) The innermost track is about 12.5cm in diameter.
3) These diameter specifications you can vary as long as the total width of 12 concentric tracks does not exceed the length of the LED leads or you won’t be able to solder properly.
4) The actual placement of the LEDs was done manually i.e without the help of computer. I found it easier and faster.
5) Do not make any hole pads for the LEDs before etching. Just be sure to make the concentric tracks thick enough so after drilling they wont get disconnected completely.

Now etch the PCB. See the Image for what it should look like.

[box color=”#985D00″ bg=”#FFF8CB” font=”verdana” fontsize=”14 ” radius=”20 ” border=”#985D12″ float=”right” head=”Major Components in Project” headbg=”#FFEB70″ headcolor=”#985D00″]Atmega168 (Duemilanove) + Holder
74HC139N + Holder (Dual 2-to-4 line decoder/demultiplexer)
DS1307 + Holder (DS1307 64 x 8, Serial, I C Real-Time Clock)
Standby Arduino board to Burn bootloader in Atmega168
(optional if Already hav a chip with Arduino bootloader in it)
Breakout board + USB wire
Common Anode 7 segment display (4)

16Mhz crystal
32.768 Khz watch crystal
9v battery + Plug
3v coin cell +Holder
Push button switch
(Reset Arduino)
22pf ceramic capacitor (2)
100nf ceramic capacitor (3)
100uf electrolytic capacitor (2)

2.2 Kohms resistor (2)
10 Kohms resistor
5mm Bicolour LED (60)
(There are different types see further for more information)
Male headers
Two Jumpers

Connecting wire
Soldering iron

2mm thick Plexiglass
Glass paint kit
Aluminium foil
3/4th inch Nut and Bolt
Hook to hang by a nail
(I made one fron plexiglass pieces)
PCB drill
Glue gun


For more detail: Arduino 7 segment Displays Digital Clock With Charlieplexing LEDs

About The Author

Ibrar Ayyub

I am an experienced technical writer with a Master's degree in computer science from BZU Multan University. I have written for various industries, mainly home automation, and engineering. I have a clear and simple writing style and am skilled in using infographics and diagrams. I am a great researcher and is able to present information in a well-organized and logical manner.

Follow Us:
Scroll to Top