|Westhampton Library Maker Club||
A binary clock is just like a regular clock, but it displays the time in a binary or psuedo-binary format. I learned about the concept at some point in high school and toyed around with some app versions on my computer. This project was an attempt to capure the concept and make it into a pleasing piece of art using an Arduino.
I did some research into other builds that people had done and decided to base my design on this blog that I found: Ken's Blog
The core components are
Most of the design follows Ken's blog, especially the schematics. However, I made a few customizations:
To read the clock, you have to be able to convert the numbers from binary into decimal. My clock has a "Binary Coded Decimal" setup. A tutorial on what that means and how to read it is here: WikiHow
The DS3234 is a very cool chip. It is accurate enough that, using this design, I never foresee having to reset it. Because I used the breakout board from Sparkfun that includes a backup battery, I can also unplug the clock and not worry about losing the time. Simply plug it back in and it will have the current time on it. The board is a little expensive for such a simple project, but I installed it using a socket so if I ever decide to use it for another project, I can repurpose it.
My original design had an issue because I did not allow the user to provide any inputs to the microcontroller without taking the entire clock apart. This meant that setting/adjusting the time required popping out the DS3234 and reprogramming it with a separate Arduino. I ended up fixing this by adding a button on the side of the clock to advance the time (very useful for daylight savings).
All the electrical parts are in and I have them attached to a breadboard for testing/coding. Here's a picture of the setup (you can see the different components laid out, and the seconds and minutes working):
Here is my code: Code
I went and picked out a project box to put it in, so I'm ready to start soldering things to the PCB. I'm not going to say that I'm a master solderer or circuit designer, so it's a little bit messy. But hey, it works:
Drilled a few holes, added a strain relief, and viola: a finished binary clock. It's now happily telling time on my desk at home.
After having the clock around for a while, I have had some time to reflect on the design. There are a few drawbacks to the way that I built it:
In general, I am very pleased with the outcome. It makes a great clock and piece of art for friends who don't have any interest in learning binary.
January 2, 2015
The effort required to update the clock every 6 months finally got to me and I added a button to change the time. I installed one pushbutton that advances the time when you hold it down and one potentiometer to adjust the brightness:
The pushbutton works great with a little code update: new code. The potentiometer does dim the lights, but not quite in the way I expected. I added it in series with all the LEDs, assuming that it would simply limit the current and dim each light proportionally. However, it dims the blue lights much more than the red or green and, more interestingly, causes the blue lights to dim when other lights are on (e.g. 5 green lights on causes the blue to be much more dim that 1 green light on). I guess I never claimed to be an electrical engineer...
Anyway, it is much improved and I'm happy with the outcome. I may investigate the dimmer switch further, but it's much less bothersome than the time update issue was.