Introduction: Word and Figure LED Clock
This is an instructable about a clock that I built a few weeks ago. The syntax is really specific for the area I live which is called "Baden". Baden is in the most south western corner of Germany. The traditional way to read the clock here is kind of special especially for quarters of hours. If you want to understand it have a look at the excursus. I'm sure that you can create your own design adapted to your region.
DO IT BETTER
If I would build that clock again I will make some things different. But in the instructable I stick to the way I did it and point out improvement potential by highlighting it with the words "DO IT BETTER". Therefore to avoid the mistakes that I made please read the instructable from beginning to end before you start working.
If you like this instructable, please vote for it in the "LIGHTS", "MICROCONTROLLER" and "WOODWORKING" Contests. Thank You!
Step 1: Features
The clock has the following features:
- displaying time in 5 minute steps
- keeping the time when disconnected from power supply
- changing between colors
- save energy by setting a calendar according to your regular absences (in source code)
- user input:
- set time
- set day of week
- toggle color mode
- set brightness
- toggle mode
Step 2: Needed Materials
- 1 Arduino (I used an Arduino Nano clone)
- 1 real time clock module (I used one for a raspberry pi)
- ~22 Neopixels (I used a cheap chain of lights)
- 3 push buttons
- 1 5V power supply
- veneer (optional)
Step 3: Excursus: How We Read the Clock in Baden
This is hard to explain with a lot of text. Please have a look at the pictures. If it is not understandable please tell me and I will try to improve the explanations.
Step 4: Create the Layout
I'm sure you can do that how you like in your own language. But...
DO IT BETTER
- The spaces between characters that need to be separated have to be big enough to put something separating in between. It was hardly feasible for me...
- If you don't want to have the trouble of the inner parts of the characters (e.g. 0, d, e, o, a, b, 4, 6, 8, 9), just use a font that solves that problem.
- Don't go too small if you have to cut with a scroll saw. My size (about 20x20cm) was just big enough to avoid big trouble. Maybe do some testing first...
Step 5: Cutting the Front Face
This step took me hours! I first cut the template from printed paper. Then I traced it onto the wood. For the front plate I used cheap plywood with an oak veneer glued onto it.
I did all the cutting with an old scroll saw. If you own a laser: Lucky You!
- Keep all the inner parts of the characters!
- Mind the cutting direction of your saw when copying to the wood!
Step 6: Building the Frame
The frame has to separate all the "pixels" and provides the distance between the LED and the screen to spread the light.
You see how it works... I didn't have a special plan. You can probably do it better by making one. If you can cut the wood with a laser you will have it easier by adding tongues and grooves to position all the parts. I just cut one piece after the other and glued it in.
Step 7: Build the Screen to Diffuse the Light
To make the light from the LEDs look smooth in the characters I had to find a way to diffuse it. I found out that hot glue works pretty good for this purpose. Just lay the frame onto a baking paper and fill up one area after the other. Maybe you should wear gloves for this step. I had blisters on my fingers from pumping. And you will need lots of glue sticks! I made the layer of glue about 5mm thick.
Step 8: Arrange the LEDs
Take a flat piece of wood, drill holes for the LEDs and glue them in. Be careful to position them in the middle of each field. To do this you can copy the layout from the front plate. If one field is very wide like my "viertel" use two LEDs.
Step 9: Improving the Frame
DO IT BETTER
Sh**! I made my frame too flat to put the LEDs in. Make a plane or improvise like I did ;-)
Step 10: Wiring
I know that I won't win a prize for a professional wiring. You can do that better by using a nice circuit board.
Step 11: Assembly
Glue the screen to the frame. Be careful when positioning and keep away the glue from visible spots!
I made my screen bigger than the frame. After gluing I aligned the edges with a router.
Step 12: Finishing
For a nice finish I used the same oak veneer that I used for the front. Therefore I glued a piece of veneer to the clock which was slightly bigger than needed. Then I just cut it with a knife.
Fixing the inner parts of the characters was a bit tricky. I heated the hot glue with a hot air gun to melt it and that stuck the parts to it. Be careful to not burn the wood especially at sharp edges!
What really surprised me was the fact that the surface of the hot glue became clear after that step (I will keep that in mind for future projects ;-)). I used a plastic brush on a Dremel to matt it again. Don't let the brush and glue get to hot!
Step 13: Coding
Nothing much to say here. Probably it's not the best coding but it works. I tried to make it as easy to understand as possible and used a lot of custom functions.
Step 14: Usage
You can use the 3 push buttons to set up the clock:
- Mode button
- short: toggle mode (permanently on or calendar)
- long: set day of week to make the calendar work (hours on display show set day of week, e.g. "4" for Thursday)
- short: toggle color mode (hours show color mode, see code)
- long: set brightness from 1 to 12 (hours on display show brightness)
- short: set minutes in 5 min steps (sets seconds to zero)
- long: set hours ("vor" = "to" means am and "ab" = "past" means pm, which is important for the calendar to work)
Step 15: My Mistakes
As pointed out in the intro there were some mistakes in my process. Here are some hints how you can improve it:
- Make a plan! Design the clock and then think about every step. The only reason my clock turned out well was luck! Don't rely on that!
- After making a layout start with the electronics! Then build a box around it. By doing that you won't have to resize you housing in the process.
- Find something better than hot glue as a screen.