Word Clock in German using Arduino
While in Germany last year, I saw a world clock in a store similar to this one in a store that was priced at 900€. I read several instructables online on how to create a World Clock so I decided to give it a shot. I want to thank the following Instructables that I used as a starting point to create mine:
- drj113‘s The Wordclock Grew Up! – An excellent tutorial that was the wiring foundation for my clock’s PCB.
- Cello62‘s My Arduino World Clock – Beautiful world clock that I based my design off of.
I also want to thank Dee for all the input and advice along the way. This is my first complete Arduino project so please feel free to leave comments or feedback for improving the build. I’ll also provide some comments on things I would do differently in the next version.
You can easily follow these steps and make an English (or any other language) version as well. The steps will all be the same, you’ll just need to create an English template in Step 2.
Step 1: Ordering Materials
The following list of materials are specific to this project- beyond the standard tools for electronics projects (like solder, a soldering iron, 22 gauge wire). I ordered almost all of the materials from Amazon and Mouser with the exception of the laser-cut lettering board. The laser-cutting board was the part I spent the most time researching as many instructable offer varying alternative methods (such as using printed transparencies). I ended up going with Ponoko.com which allows you to upload a vector template file and select your material, dimension and color. They’re a little pricey but their customer service was great when I had questions and it shipped quickly even though I didn’t order it expedited. Here’s the rest of the materials specific to this project that I had to order:
- Arduino Uno R3 (link) – $25
- SainSmart Tiny RTC I2C DS1307 AT24C32 24C32 memory Real Time Clock Module for Arduino (link) – $6.20
- 5 Meter Flexible LED Light Strip with 300xSMD3528 and Adhesive Back, 12 Volt (link) – $11.77
- 110VAC to 12VDC 24W LED Power Adapter (link) – $9.99
- 3 x Addicore 74HC595 8-bit Shift Register 16-pin (link) – $5.10
- 3 x Darlington Transistor Arrays ULN2803A 18-pin (link) – $3.06
- Component Sockets for 74HC595 Shift Registers & ULN2803A Transistor Arrays (link & link) – $2.22
- Prototype Stripe Board (link) – $2.00
Overall, the hardware total was close $100 and the electronics total was around $66. Still under the original.
Step 2: Designing the Laser-cut Board
To build the template, I tested out the layout of the lettering. I then downloaded the free open source vector editing software InkScape (Win/Linux/Mac link) and the vector template provided by Ponoko.com to create the my design. They have How-To videos that explain how to create a template.
A quick note about fonts- I google searched “stencil fonts” and after browsing and testing out several, I ended up deciding upon the free “Stardos Stencil” on Google Fonts (link). Make sure you choose a font that will maintain shape after cutting; specifically that interior parts of letters with closed loops (letters like Q, R, O, P, A, D, B) will persist and not break off.
The attaced .svg file was my final version that I uploaded to their site. After uploading, I then selected the following options:
- Material: Acrylic
- Color: Black
- Size: 15″x15″
- Depth: 9mm*
*Regarding the Depth, I select 9mm, but in the future would probably select 5.6mm which is $13 cheaper.
Once the laser-cut acrylic board arrived, I punched out all the lettering but left the protective paper on. I kept the paper on through the entire build to ensure the acrylic would not get scratched or damaged.
Step 3: Building the LED Light Array
With the laser-cut board ready, I then proceeded with building the LED lighting array. I used a piece of cardboard cut to the same size as the laser-cut board as the base to attach the LED light strips. I lined up the laser-cut board with the cardboard and punched tiny holes with a pen into the cardboard through the letter holes. I used those holes punched as temporary markers and then wrote the corresponding letter over the punched hole on the cardboard. This was to ensure the LED lights would line up appropriately with the laser-cut board.
Using the LED spool I purchased from Amazon, I cut sections of the the LED strip to size. The LED strips come with built-in resistors on each strip section so you don’t need to add resistors. The downside to these LED strips is they are extremely difficult to solder. I found some videos on YouTube that explain best practices for soldering to LED strips- short version is you want to heat up the contact on the LED strip and wire and then apply the solder. Sounds easy but it’s a lot of work.
After soldering wire to the LED strips, I punched a hole through the cardboard and ran the wires through the back. I then pulled back the adhesive backing to the LED strip and stuck it in place to the cardboard.
You will want to run all the LED strips to a single positive voltage wire (or rail). You’ll turn on the LED lights by grounding the circuits you want turned on (aka “sinking current”) but I’ll go into this in more detail in the next step.
Next, I sectioned off the LED lights with weather stripping from Home Depot (thanks to my brother, Robby, for this idea). This ensures that light will not bleed over to other letters. It was way more effective and easy to work with than cardboard strips that I was going to try.
**IMPORTANT NOTE ABOUT LED VOLTAGE: The LED lights I purchased are extremely bright and require 12V. The Arduino only outputs 5V by default, like when powered by USB. That being said, you can get 12V output from the Arduino by using a 12V adapter. You’ll get 12V from the VIN port on the Arduino and will also get 5V through the 5V ports (which is very helpful). If you can, try to buy 5V LED strips if possible because 12V is extremely bright.
For more detail: Word Clock in German using Arduino
This Post / Project can also be found using search terms:
- https://yandex ru/clck/jsredir?from=yandex ru;search;web;;&text=&etext=1822 fAqLXW75_ljTJ99j66Ehy5Z4zImExA4I-JnrqR13XtEDEypCcMzeGqZtRVEjGka1 16758c08461a8e42fd610198d568e61f5f728c11&uuid=&state=_BLhILn4SxNIvvL0W45KSic66uCIg23qh8iRG98qeIXme