All you need is an arduino and a RTC. I have removed the switches and other hardware. Since DS1307 is pretty stable, it does not require frequent time changes! It will also keep the time even if there is a power failure, thanks to its internal 3v battery. This battery will last for years.
So even if you are going on a vacation, just turn off the clock and the time will be running accurate when you turn it back on!
I have made the code as simple as possible! It just reads time from the RTC and updates the shift registers.Step 1: Collecting the Parts -
ELECTRONICS COMPONENTS USED
- Arduino or just atmega328p as i have used (standalone) x1
- RTC (Real Time Clock) DS1307 x1
- Shift registers 74hc595 x3
- ULN2803a Darlington Transistor Arrays as LED drivers x3
- LED strip I have used white...approx 2m
- 16 pin IC socket x3
- 18 pin IC socket x3
- 12v power source may be battery or wall adapter
- Proto board / general PCB board
- Connecting wires
- Male header pins
- Jumper wires- female-female
- basic soldering
FRAME AND STENCIL
- Mount board / thick cardboard
- Glue, Tape
- Scissors, Paper cutter
- Acrylic Board (translucent white) / Plexi glass
- Snickering of Words
Follow the simple circuit diagram shown above.
I have used a standalone arduino which I can program with FTDI cables, but any arduino board can be used !!For this project even though we control 22 individual LED arrays, we just use 5 I/O pins from the arduino ie.- 3 for shift Registors and 2 for RTC module.
Using shift resistors is a great way to increase the i/o pins.
Important thing about ULN2803a Drivers -
This IC is a darlington pair.
Hence connect all the cathodes [positive terminals] of the LEDs to the source and the anodes [negative/ground] to the respective output terminals of the driver!Step 3: Building the Frame
Here I have used mount board for the construction...
It is easy to cut, bend and handle the mount board. It is also has less strength.
Any material like wood, plastic, metal etc. can be used.
- Cut a piece of mount board the size of the front Board with words.
- Make a rough sketch of the words and their alignment on the board.
- Cut strips of mount board of size may be 1.5 cm.. This is to make compartments, the size of the words. this will prevent the light from one word to diffuse and illuminate the surrounding words.
- Place the strips horizontally after each line of words and vertically in between the words; make small boxes for each of the word.
- Finally make a box that will sneakily fit the electronics, the LED board, anti-diffusion boxes and the outermost board with words stickered on to it.
I'm using the LED strip in this project. It is easy to operate. It can be cut for desired length, no need of soldering each and every led to make an array. LED Strips also come with a peel-off sticker at the back.
Just cut the required length of the strip depending on the size of the word and stick it on the LED board ( mount board). Remember that most of the led strips have connectors at an interval of 3 LEDs. So you have to cut at the indicated points only. Therefore even the smallest word will have 3 LEDs.
You can even use the standard LEDs, solder them for desired number of LEDs. Remember to use the resistor for each array that you make. the value of the resistor depends on the specifications of the LEDs used. You can check here for further info, LED calc or this one.
Connect all the Positive terminals of the LED strip together. This is the common Vcc for the leds.
You can see that i have connected it using thin copper wire. Then Connect wires for all the individual ground terminals for each word and bring it back to connect it to the driver.Step 5: The Codes
The original code itself is well commented and easily understandable.
#define section allots the pins on the shift register for individual words. They will be updated each time when the time changes.
void WriteLEDs function updates the shift regesters through the data pin.
The void self-test function blinks all the LED words in a sequence so that you know everything is working correctly. i.e. for troubleshooting.
void displaytime function will check the time with the RTC chip and see which words to be illuminated accordingly.
The rest can be easily made out by the code itself.Step 6: Finishing It Off.
Place all the controller boards; arduino and circuit which contains shift registers, RTC chip and LED drivers.
- Connect the LED arrays of each word to the respective pin of the driver.
- Place the LED board inside the casing and fix it in place...
- The main outer stencil is made by sticking the words onto any acrylic or plastic.
- Make a hole at the back for fixing the clock for using a nail.
There you have it. A simple Word clock.
Please do leave your comments and doubts below, though I'm not a expert I will try to answer it.