This is a dutch wordclock. Much of the design was taken from this version. It tells the current time within 5 minutes precision in full dutch sentences. The video also demonstrates a mode where random LEDs light up and fade out again. For when the current time is not important for a while.
The clock face is a simple 16*8 matrix of characters. The charactes are put such that all possible sentences can be produced and the additional characters have been put such that every line remains (sort of) pronouncable in dutch.
I also added a number of other words for other functions. For example the phrase ‘Hoe laat is het ?’ which translates to: ‘What time is it ?’ lights up when the clock is turned on. This should signal the user to set the correct time.
The actual LED’s used are bright, warm white LED’s. The resistors are 805 SMD resistors. These resistors where chosen since normal .25W resistors would take to much space, even when standing up they would rise above the LED’s in the matrix.
The print buttons could have been debounced in software but I find even the simplest (like this one) debouncing circuit feels quite a lot better than clogging up the code in the uC with ugly and strange looking debounce algorithms.
The uC is clocked at 16Mhz, straining it to its maximum, to be able to PWM (Pulse width modulate) the LED’s in addition to the normal redraw and clock logic without it all looking a bit flickery.
Here’s the layout for the board.
When I was putting it all together I had been looking for a nice stand to put it in and for the time beeing I had put it in my third hand. Turns out I kind of like the look of the clock in the third hand so I think I’m going to keep it like that.
Some other interesting things I learned during this build:
- I should have drilled the 3mm holes in the corners before soldering on all of the components. It would probably have been easier to align the holes.
- The ATMega16, by default, has it’s JTAG interface enabled. Which means that there are 5 I/O pins which cannot be used as I/O pins. Disable the JTAG interface in the fuse bits and it will all look a lot better.
- It is impossible to use SK10 at any point in your design if you don’t want fingerprints permanently embedded on the print / clock face.
I had originally attached a preliminary version of the source code. This orginal version has a couple of issues with setting the time and switching modes, as can be seen on the video. The currently attached version is considered stable and (mostly) bug free !