Build A Full Binary Clock Using Arduino

I was wandering the internet looking for a good Arduino tutorial on how to build a binary clock with seconds, but I could not find one. So now I am  writing this for you to have a binary clock with seconds, minutes, and hours.

What I did:
-Because controlling 20 LEDs individually for this cube would be messy, I multiplexed.
-I used an ATtiny84 and a SN74HC164N to control the clock. This makes the clock cheaper and smaller.
-I built it all on two PCB boards and affixed a stand, power plug, and buttons.

Step 1: Parts List

Somethings you have to have to make a binary clock, others are optional and I will try to give you ideas to use what you have.

Required Parts:
-20 LEDs, any color I used 5mm I wouldn’t recommend 10 unless you have the space
-6  PN2222 transistor, or any that you have that are similar
-2  push buttons, any flavor of interface you want to try would work buttons are easy
-2  1K resistors, for the buttons
-10 resistors for LEDs, I used 470ohm you could use as low 100ohm but they would be very bright at night
-various wire for connections
Full Binary Clock
Choices:
Controller
-I used ATtiny84 and SN74HC164, I choose it because it was small, cheep, and easy to use with this option you will use the shift register to control one side of the LED matrix
-ATmega, any of this series would work as long as you have a programmer and the space
-Arduino Board, I don’t recommend spending the money on this option and it also takes up a lot of space
-ATtiny with only 6 I/O if you use two shift registers
-The library is written for Arduino and feels free to use anything else that you would re-code
*Use a DIP socket for whichever controller you choose to use.
Power
-I used USB charger and cable to power it
-any 5V power supply would work, just make sure it works with your controller
PCB
-Some type of board is needed. I used two small boards, 4cm x 6cm and 3cm x 7cm. I have seen cardboard used for the LEDs but I do not recommend cardboard for the controller.
Stand
-I used polymorph, it’s cool stuff to have around
-origami would work

Step 2: My Multiplexing

I use the SN74HC164 shift register and PN2222 transistor to shift on each column of the LED matrix to ground faster than the eye can see. When the correct column is grounded then the ATtiny then outputs HIGH to the LED that represents the time.

When a the transistor emitter is connected to ground the transistor will provide ground, from collector, if the base is connected to Vcc.

Step 3: Wiring

Wiring will depend on your design choices but here are the connections you need to make.

1. Solder your LED matrix as in the diagram, note it is drawn from the back make sure the cathode and anodes are corrected to ground and Vcc, respectively
2. Connect the LEDs ground to the emitter of the transistor
3. Solder the push buttons and DIP sockets on the board
4. Connect power and ground to all the right parts
5. Connect the 1K resistor to ground and the resistor, connect Vcc to the push button, and connect an input of the ATtiny to the push button
6. Solder the 470ohm resistors next to the DIP sockets, 6 go to the SN74HC164 and 4 the outputs of the ATtiny
7. Connect the 6 resistors to the base of each transistor, they need to be in order of A-F so they multiplexing works
8. Connect the 4 resistors to each anode layer
9. Connect 2 outputs of the ATtiny to the clock and data of the shift register

Step 4: Build a Stand

I used polymorph, this is not necessary. Use whatever material you want to support your clock.

Step 5: Programming the ATtiny84

If you have an Arduino you also have a free In System Programmer (ISP)
Full Binary Clock schematic
1. Connect the following:
Vcc to  pin 1   on ATtiny
Gnd to pin 14 on ATtiny
D10 to pin 4   on ATtiny
D11 to pin 7   on ATtiny
D12 to pin 8   on ATtiny
D13 to pin 9   on ATtiny
2. For the rest follow instructions here(If that site is down then here is a different instructional on it with the file attached to this step.
http://www.instructables.com/id/Program-an-ATtiny-with-Arduino/
Or here as a third backup
https://code.google.com/p/arduino-tiny/ )

The instructions are great and easy to use.


About The Author

Ibrar Ayyub

I am an experienced technical writer holding a Master's degree in computer science from BZU Multan, Pakistan University. With a background spanning various industries, particularly in home automation and engineering, I have honed my skills in crafting clear and concise content. Proficient in leveraging infographics and diagrams, I strive to simplify complex concepts for readers. My strength lies in thorough research and presenting information in a structured and logical format.

Follow Us:
LinkedinTwitter

Leave a Comment

Your email address will not be published. Required fields are marked *

Scroll to Top