Shadow Clock
Here is my design of digital LED clock which display time in analog way by shadow hands. Each clock hand has 60 steps like classic clock. It is based on Arduino Mega and most effective method of LED driving called Charlieplexing with 180 LEDs.
Clock is designed to be as simple as possible and with this instructable can be assembled by anybody who has basic soldering skills.
Tools and Parts
Tools:
- Soldering iron
- Wire cutter
- Screwdriver
- Heat gun or lighter
- IDC crimp tool (optional)
Parts:
- All parts can be bought as DIY KIT here
Purchasing the kit will save you the time and expense of ordering from several different vendors and avoid the minimum PCB order premium. You will also be helping me develop and share other projects! - ...or you can buy parts separately:
- Arduino Mega 2560 board - if you want to program it by yourself I recommend to use original board... or you can buy programmed and tested board here
- 60 LED Charlieplexing matrix round PCB 3pcs. for 3 hands clock or 2pcs. for 2 hands clock. It is strongly recommended to use professional PCBs, well masked with proper distance between circuit paths. I don't recommend to replace it with cable wiring or homemade PCB. It is almost certain that it will not work correctly because of the ghosting effect (well known issue with big charlieplexing matrixes). But of course if you want to try anyway there will be schematic diagram of matrix in next steps.
- TinyRTC Module. I've used DS1307 RTC. You can use other arduino compatibile RTC but you have to remember to change source code libraries.
- Button switch
- 10kohm resistor
- Red 5mm LED 60pcs.
- 150ohm resistors 9pcs. (for Red LEDs from DIY KIT. If you plan to use different LEDs than these in DIY KIT, you should calculate value of resistors based on your LEDs specification.)
- Green 5mm LED 60pcs.
- 150ohm resistors 9pcs. (for Green LEDs... as above)
- Blue 5mm LED 60pcs.
- 91ohm resistors 9pcs. (for Blue LEDs... as above)
- Flat multicolour (rainbow) cable with 10 different colour wires 3pcs. around 15cm long each *
- 2x5 IDC connector 3pcs. *
- angled 2x5 goldpins 6pcs.
- heat shrink tube 3mm diameter ~100cm long
- heat shrink tube 5mm diameter ~5cm long
- USB Cable for Arduino board and USB Power source. Clock consumes very little energy so any USB port or USB power adapter can be used.
- 10mm screw sleeve spacers female-female 5pcs.
- 20mm screw sleeve spacers female-female 8pcs.
- 10mm screw sleeve spacers male-female 14pcs.
- M3 5mm bolts 13pcs.
- Arduino male female rainbow cables (optional)
* - Instead of point 12 i 13 you can buy 2pcs. of 10pin IDC-IDC ribbon rainbow cable if you don't have IDC crimp tool.
Assemble LED Matrixes
For this step you will need:
- round LED Matrix PCBs 3pcs.
- red colour LEDs 60pcs.
- green colour LED 60pcs.
- blue colour LEDs 60pcs.
- 150ohm resistors 18pcs.
- 91ohm resistors 9pcs.
- angled 2x5 goldpins 3pcs.
- IDC connector
- Take one round PCB, 60 LEDs in one color and 9 resistors. If you use DIY KIT take 150ohm resistors for red / green leds or 91ohm for blue. If you use other diodes you have to calculate value of resistors. For eg. if diode specification says 2V, 20mA value of resistor would be R=(5V-2V)/0,02A=150ohm. If it says 3V, 25mA, it would be R=(5V-3V)/0,025A=80ohm. etc. Do not use diodes with current over 40mA. It is maximum value of current for Arduino I/O Pin.
- Solder resistors as shown on picture. Tin should be visible on both sides of the PCB
-
Bend 60 LEDs like on the picture (it is easier if you will use something which has 90 degree angle and has around 8-10mm long flat surface)
-
Solder all 60 LEDs watching polarization (longer and shorted legs) as shown on pictures
- Solder angled 2x5 goldpin like on the picture (first put it in the IDC connector of the multicolor flat cable)
Repeat this step for another 2 PCBs.
If you want to make your own PCBs use schematic diagram picture. Remember that circuit paths must be well isolated with proper distance from each other to avoid ghosting effect. Diodes must be placed firmly with place to bend them later (to calibrate light of each LED on center pin).
Solder Cables Pins
For this step you will need:
- flat multicolour cable 3pcs. around 15cm long each
- angled 2x5 golpin 3pcs.
- 3mm heat shrink tube around 20cm
-
Detach each wire of cable on around 10mm length and split it into two groups like on the picture
-
Cut heat shrink tube to 10 pcs. around 7mm each and place them on each wire
-
Solder wires to proper pins as shown on the pictures
-
Use heat gun or lighter to shrink tubes
Repeat this step for another 2 cables.
Prepare Button Switch
For this step you will need:
- button switch
- 10kohm resistor
- 3 wires from rainbow cable (green, blue, purple) around 10cm long + 3 goldpins.. or instead you can also use arduino male pins rainbow cables as I did
- 3mm heat shrink tube 1cm long
- 5mm heat shring tube 2cm long
- Cut around 1cm of blue wire (it should be little shorter).
- Solder resistor to blue and purple wire as on picture.
- Place 5mm heat shrink tube on soldered resistor.
- Place 3mm heat shrink tube on green wire.
- Solder blue wire to one leg of switch and purple wire with resistor to another leg.
-
Use lighter or heat gun to shrink tubes on switch legs.
Connect Arduino
For this step you will need:
- programmed Arduino Mega 2560. If you want to program it yourself use attached arduino code.
- TinyRTC module
- Prepared button switch
- Assembled LED matrixes
- Assembled IDC cables
- 4 wires from rainbow cable (yellow, orange, red, brown) with 8 single goldpins... or instead you can also use arduino male pins rainbow cables as I did
- 20mm screw sleeve spacer female-female
- 10mm screw sleeve spacers female-female
- M3 5mm bolts 6pcs.
- USB power source
- Take Arduino board and screw 10mm sleeve spacers to it as shown on pictures.
- Mount TinyRTC module on Arduino board with 20mm screw sleeve.
- Connect TinyRTC module to Arduino board as shown on wiring diagram.
- Connect prepared button switch.
- Connect 3 rainbow cables to Arduino board and matrixes.
- Connect USB power to Arduino and press the button. One LED on each PCB should light up and clock should start ticking. If it is not working check wiring.
Downloads
Calibrating LED Matrixes
For this step you will need:
- Assembled electronics from previus step
- Clock cover
-
others screw sleeve spacers and bolts
- Download Shadow clock cover from attached files or from my thingiverse profile here. There are two versions of cover. One for 3d printing and one for laser cutting. If you want to make your own version there are two important tips. First: clock face should have max 20cm diameter. Second: Gnomon (Center pin) should have 10mm height.
- Disconnect all LED matrixes from Arduino board.
- Take one LED matrix and mount 20mm screw sleeve spacers on bottom and 10mm on top of the board.
- Connect this board with cable to the minutes pins of Arduino board (pins from 34 to 43, if needed check diagram from previous step).
- Calibrate glowing diode by bending it like on the pictures. Light beam should be focused on center pin.
- After bending first one use switch by pushing it once and switch light to another LED. Calibrate all 60 LEDs.
- Disconnect cable from Arduino board
- Mount second PCB on first one and connect this board with cable to the minutes pins of Arduino board. Calibrate it.
- Disconnect cable from Arduino board
- Mount last PCB, connect it to minutes pins. of Arduino board and calibrate it.
- Connect all matrixes to Arduino board as on a diagram from previous step. Bottom PCB is for seconds, middle for minutes, top for hours.
Downloads
Enjoy It!
For those who are looking for more... if you will like it in my next instructable I will present possible variations of this clock with full description of source code.
English isn't my native language so sorry if there are some language mistakes.
If you have any questions just leave a comment or message me.
This was my first instructable. If you enjoyed it please vote for me :)
Thanks!
Sebastian aka Protonik