A digital (pure) binary clock using Arduino.
A clock that uses the binary numeric system to display the hour. Reading it is simple once you get the trick, but don't worry, I'm explaining it right here:
The schematics have a horizontal layout for the leds but it can be rearranged as follows (being seconds the led group to the far right):
+----+----+----+----+----+----+----+
| | | | 08 | 04 | 02 | 01 | Hours
| | 32 | 16 | 08 | 04 | 02 | 01 | Minutes
| PM | 32 | 16 | 08 | 04 | 02 | 01 | Seconds
+----+----+----+----+----+----+----+
^-- AM/PM
As you see, each led corresponds to a power of two and each row stands for a time partition: hours, minutes and seconds, also there is a single led for AM/PM. To calculate the current time, just add the amounts corresponding to the lit leds for each row.
As an example, I'm showing the calculation for the given display of lit leds:
XX = ON | OO = OFF
+----+----+----+----+----+----+----+
| | | | OO | XX | OO | XX | 00 + 04 + 00 + 01 = 05 Hours
| | OO | XX | OO | OO | XX | XX | 00 + 16 + 00 + 00 + 02 + 01 = 19 Mins
| OO | XX | OO | XX | OO | OO | XX | 32 + 00 + 08 + 00 + 00 + 01 = 41 Secs
+----+----+----+----+----+----+----+
^-- AM Result -> 05:19:41 AM
The buttons set the hour, being the left one the selector, and the right one the selection modifier.