In some point in the life of every electronics hobbyist the need to make a clock is borned, in my case it was about a month after I soldered my first part on a board, but back then I didn't have the right tools, parts and knowledge to do such a thing.
But after about 2 years I got all the things I didn't have back then and I was ready to make my first digital clock, and with all the LEDs I had left over from my 8x8x8 LED cube project I decided to make my own custom LED clock.

So join me and build your own custom LED digital clock powered by our favorite little micro-controller the Arduino.

Step 1: What Do We Need?

 Here is what tools you will need to make this:
  1) Soldering Iron.
  2) Some solder wire.
  3) Small needle nose plier
  4) Small cuter
  5) Wire striper

I made my clock with a stand alone arduino without the original board because I wanted to make a finished project.

Now here are the parts you will need to make the clock:
  1) 130 LEDs.
  2) 15 2N4401 transistors.
  3) 20 1K resistors.
  4) about 10 resistors for the current protection(more detail in step 2). I used 150Ohms.
  5) DS1307 real time clock IC.
  6) one coin cell battery holder.
  7) 4 Tact switches.
  8) Prefboard (you would like to get along one for the display about 8inch*3inch)
  9) ATMega328 with arduino bootloader.
  10) A programmer for programing the chip. 
  11) 7805 voltage regulator.
  12) 16MHz crystal.
  13) two 22pF caps.
  14) 28 pin IC socket for the ATMega328.
  15)10 uF cap.
  16)0.1 uF cap.
  17) 4017 counter
  18) 32.768KHz crystal

<p>i saw this tutorial for few years ago, and i want to built it, but i don't know what i'm doing. i don't know about microcontroller. and i learn about it, and now i'm made it!!! thanks for the tutorial...i change the LEDs to seven segment and different display. on the left side i use common cathode seven segment, and the right side i use commond anode 4x seven segment with 2pcs smallest seven segment display..... :)</p>
<p>hi peppy..would you mind sharing how you modified the display using a common anode?..pls..i really need it.</p>
<p>sir how to set the time</p>
<p>please sir give the code which will run in the latest versoin of arduino</p>
<p>wprogramer.h not found error comming ..what i will do now????</p>
<p>that's totally sick! looks like a LOT of work. great job! i &quot;may&quot; consider doing one if i can't find a cheap-o quartz jobbie from hellmart ;-)</p>
<p>Can you send me complete source code, please</p><p>minijame21@gmail.com</p>
<p>i have a problem, error</p><p>RTC.get(rtc,true);//get the data form the RTC IC</p><p>download failed</p><p><a href="http://www.instructables.com/files/orig/F7P/G6B3/GA8NEH74/F7PG6B3GA8NEH74.zip" rel="nofollow">DS1307 and More.zip</a>291 KB</p><p>how do that ?</p>
<p>I have mounted the circuit 7 displays business segments and transistors are 2N2222A.<br><br> The problem is that lack luster to segments.</p>
<p>Tengo montado el circuito con displays de 7 segmentos comerciales y los transistores son 2n2222A.</p><p>El problema esta en que falta brillo a los segmentos.</p>
<p> i have used blue LEDs,To work 4 leds need 12v so can i give 12v through that transistor.</p>
Having some problems with the finished clock. The first time I powered it up, I set the time and date, and it ran great. After an hour though, it seemed to reset itself and displayed the zero digit on each of the six numbers (like it was before I first set the time and date). Now whenever I set the time again, it runs for about 4 seconds then resets to zeroes again. Sometimes, it won't display the time or date after it has been set. <br> <br>Anyone having a similar problem? any suggestions on how this could be fixed? I've tried disconnecting the reset pin from the circuit, but that didn't make any difference.
<p>i have the same problem ..n i used the uno board but the things went good for the first time n next time it doesnt store time it just diplays 000000 and notinhgs goes on n wen i set the time it take all input but wen pressing setting butoon the display shows the same 000000 ... any solution u found</p>
try taking out the button battery, i think that worked for me. It seemed to run fine with just the 9V
Try putting pull up resistors to the DS1307's data lines. <br>2.2kohm, read datasheet for further ado.
<p>used the uno board but the things went good for the first time n next time it doesnt store time it just diplays 000000 and notinhgs goes on n wen i set the time it take all input but wen pressing setting butoon the display shows the same 000000 ... any solution my problem n if i use stnad alone arduino it just show zero on the first digit...</p><p>plz help i have to it do it by dis year 2014 or else it will affect my grades.... </p>
<p>you could save a digital output by connecting pin 5, the Q6 output of the 4017 counter directly to its reset pin 15. This creates a 1 of 6 counter.</p>
<p>just wondering what is the approximate cost of this project?</p>
<p>Hey</p><p>A problem bumped up when I started programming. When compiling I get next error message: <br>This report would have more information with</p><p> &quot;Show verbose output during compilation&quot;</p><p> enabled in File &gt; Preferences.</p><p>Arduino: 1.0.6 (Windows 7), Board: &quot;Arduino NG or older w/ ATmega8&quot;</p><p>C:\Users\Kaarel\Documents\Arduino\libraries\DS1307\DS1307.cpp: In member function 'void DS1307::read()':</p><p>C:\Users\Kaarel\Documents\Arduino\libraries\DS1307\DS1307.cpp:48: error: 'class TwoWire' has no member named 'write'</p><p>C:\Users\Kaarel\Documents\Arduino\libraries\DS1307\DS1307.cpp:61: error: 'class TwoWire' has no member named 'read'</p><p>C:\Users\Kaarel\Documents\Arduino\libraries\DS1307\DS1307.cpp: In member function 'void DS1307::save()':</p><p>C:\Users\Kaarel\Documents\Arduino\libraries\DS1307\DS1307.cpp:74: error: 'class TwoWire' has no member named 'write'</p><p>C:\Users\Kaarel\Documents\Arduino\libraries\DS1307\DS1307.cpp:82: error: 'class TwoWire' has no member named 'write'</p><p>I am currently using USBasp programmer to program the circuit, Also I use new DS1307 library a good man provided in comments but I still can't make it work. I anyone able to help me with that problem?</p>
<p>sir i have a problem using arduino 022. are you have a sketch for arduino 1.0.5? thanks.</p>
<p>I have a problem! if I look at the date, one dot LED is not lit .. but when back to clock mode, the LED dot lights up</p>
<p>Would you mind sharing the PCB design you used? I am having troubles getting my cad software to work. Any response is appreciated.</p><p>Thanks, Adam</p>
<p>check your wiring...may be 'short' with others segment. use your multimeter</p>
<p>in the above circuit diaram where does the pin of clicok ic goes ......</p><p>do we have to cinnect all the small boxex or we have to just leave those pin as it is</p>
<p>in the above circuit diaram where does the pin of clicok ic goes ......</p><p>do we have to cinnect all the small boxex or we have to just leave those pin as it is</p>
<p>Got it working, but there is one problem left. The dots keep flikkering like every second. Any idea what could cause this?</p>
<p>Do you have to connect you're DS1307 to the 5V? It isn't connected in the drawning </p>
<p>Nice clock! and nice tutorial!</p><p>Have a look at this website, they are selling the DS1307 real time clock: <a href="http://voltatek.com/en/sensors/34-i2c-rtc-ds1307-at24c32-real-time-clock-module-raspberry-pi-arduino.html" rel="nofollow">http://voltatek.com/en/sensors/34-i2c-rtc-ds1307-a...</a></p>
<p>I made it..... use Arduino-0022 to upload the program you can download here </p><p><a href="http://code.google.com/p/arduino/downloads/detail?name=arduino-0022.zip&can=2&q" rel="nofollow">http://code.google.com/p/arduino/downloads/detail?...</a></p><p>in the code, there is a line - &quot; pinmode = SET.read();If it was pressed you will exit the while loop &quot; <br> <br>In front of the &quot;if&quot; needs two slashes, like so, pinmode = SET.read();//If it was pressed you will exit the while loop</p>
<p>Yea I figured it out already but thanks</p>
<p>this is my project ... i did it by follow schematics and sketch from this page... if your project doesn't work... double check your wiring and parts</p>
<p>hai, bagaimana cara merubah sketch nya?? punya saya error spt gambar d bawah ini</p>
<p>hi, how to change this sketch?? I got an error like d picture below</p>
upload your sketch with arduino-0022 program... try to read all comment in this page...
<p>ok it looks like it should be compiled with Arduino 0022, and this seems to be successful. probably because the DS1307 Library here is not matched with the latest Arduino IDE. okay thanks for the reply</p>
<p>I'm not even started yet. Im low on spare time at this time but i will build it</p>
did you finish your project?
<p>No im not started yet</p>
<p>In a lot of guides people are using 10K pull up resistors. What's the advantage of 10k ohms instead of 1k?</p>
<p>Does anybody have the new DS1307 library because the one in this guide isn't working anymore</p>
I have an error when im compiling the program: <br>In file included from LEDclock.ino:4: <br>C:\Users\Stefan\Documents\Arduino\libraries\DS1307/DS1307.h:47: error: 'boolean' has not been declared <br>C:\Users\Stefan\Documents\Arduino\libraries\DS1307/DS1307.h:48: error: 'boolean' has not been declared <br>C:\Users\Stefan\Documents\Arduino\libraries\DS1307/DS1307.h:55: error: 'byte' does not name a type <br> <br>Does someone has an idea what the problem could be?
i has a question do you mind if i rebuild this using vfd tubes?
I don't mind at all, you can do anything you like.<br>Good luck with that mate!
i only have one problem<br>can you put the code with comments up soon<br>then i can reprogram it easyer<br>
OK I will try to update the code by tomorrow.
tank you
It's up now, I am sure I have tons off spelling errors but I hope you wouldn't mind.<br>Good luck with your project
i finaly got it working <br> <br>firsth time it did not work <br>and i gave up <br>it went into storage <br>but now it works <br>soon i will add a case <br> <br>if i were to do it again <br>i would design a smaller power supply board <br>the board has: <br>0-10V lm317 (adjustable for the filaments) <br>0-100V ne555 (adjustable for the annodes) <br>5V 7805 (for arduino and all other chips) <br>ds1307 (for the time)
it is great and understandable <br>how can i djust the code to put a dot in every display? <br>i know it is posible becaus you use a 8 bit number conviguration <br>but what arduino pin do i need?
Well I used port D to control the segments but I only used 7 out of 8 pins.<br>This means that you can use that extra pin for the dots.<br>If every segment has a dot next to it you can simply add 0x80 to a number and it will light up the dot. Note that each dot needs to me connected to the common ground of each segment that way you need to use just 1 pin to control 6 dots(with the help of multiplexing).

About This Instructable


113 favorites


Bio: Electronics and LEDs what can be better ?! :D
More by Syst3mX: Make a Desktop Tamagotchi LED Binary Calculator Make a 24X6 LED matrix
Add instructable to: