One of my clocks stopped working – and it happened to be a clock my wife likes a lot. Went to the repair shop and the guy said that he didn’t have the spare parts and could not repair this. So – I thought – why not build an LED clock – I had tons of LEDs and an RTC module just waiting to be used.

The original plan was to make a charlieplexed LED clock – 60 LEDs working off 9 pins and 12 LEDs working off 4 pins – so doable with a standalone arduino. This was to be powered off 4 AA cells.

However, before the clock was finished – a couple of rolls of WS2812B RGB LED strips came – I had ordered these a couple of months ago – and they came at the perfect time. When my wife saw the effects that could be generated using these, there was no going back. Now, we had spent considerable amount of time sticking the charlie-plexed LEDs and soldering them – so I was unwilling to give them up. Finally, we used the white LEDs to show seconds, and a strip of 60 RGB LEDs for the minutes and hours. Currently the code runs a rainbow every minute, shows a RED dot for hours and colours all the LEDs from 0 to the minute purple. It was a pain creating this, but the end result is amazing.

Step 1: Hardware

  1. A standalone arduino
  2. 60 White LEDs – 5mm
  3. 9 resistors – 110 Ω
  4. WS2812B RGB LED strip - 60 LEDs
  5. RTC Module – DS1307
  6. Some headers, wires, capacitors, etc
  7. 12V – 800mA adapter
  8. CP2102 USB-to-TTL (the RST pin on the CP2102 is not for resetting the arduino – you have to solder a wire to the DTR pad on the PCB – which sends a reset signal to program the arduino. This has to be connected to the reset pin through a 104 capacitor) or Arduino to program the standalone processor as discussed in the previous post.
<p>Made some changes:</p><p>1. The rainbow effect every minute is a bit too distracting, hence changed it to every five minutes.</p><p>Change: </p><p>if(( now.second() == 0)){ <br> effects(); <br> }</p><p>To:</p><p>if(now.second() == 0 &amp;&amp; now.minute() % 5 == 0){ <br> effects(); <br> }</p><p>2. Reduced the brightness of the LEDs - full brightness was killing my 800 mA power supply - should have used a 1.2 A / 1.5 A power supply</p><p>Change:</p><p>LEDS.setBrightness(128);</p><p>To:</p><p>LEDS.setBrightness(100);</p><p>3. Installed a heatsink on the LM7805 - as that was heating up a lot. Probably should have used a 9V adapter instead of a 12V one. </p><p>4. Changed the colour of the hour LED to Blue instead of Red - gives more visibility</p>
<p>I have been trying to find this section of code to adjust the rainbow but can't figure out where it is in the V2.2 code and I don't have bluetooth setup on my Nano. Also is there a way of making last longer then a few seconds?</p>
<p>very impressive. hats raised.</p>
wow beautiful!!<br>
<p>Updated code for v2 - this one allows you to change settings (colours, brightness, etc) via bluetooth:</p><p>https://github.com/dushyantahuja/LED-Clock/tree/Analog-Clock-v2</p>
To strip off easily the enamel insulation from wires, just put the tip of the wire on a cigarette lighter flame for a second.
<p>Thanks - will keep that in mind next time</p>
<p>Great result :) Regarding your 2nd conclusion (...do not use enameled wire), I used ethernet cable <br> wires (there are 4 pairs) for some epic soldering work :), they are <br>just fine, you can melt the insulation with your soldering tip and put a <br> blob of solder and you have a connection between 2 wires. If you can run a trial in <br>advance, you'll discover if it is possible or not to use a certain <br>insulated wire.</p><p>In the past I used enameled wire too for RF works and used a piece of aspirin to remove insulation: put the wire on top of the aspirin, push the wire with your soldering tip into the aspirin until it will sink in the aspirin (it will become liquid) and the aspirin will remove the coating. (I think this is due to the fact that it is acid,<em> acetylsalicylic acid</em>). Make sure you are working in a well ventilated area.</p>
<p>Good idea - will probably try ethernet cable next time. </p>
<p>Actually it's realy easy to burn away the resin with a soldering iron. Just set the iron to 350-400&deg;C, apply a generous amount of solder to the tip and stick the wire in the molten drop of solder. After 3-5 sec the wire should be tinned evenly.</p><p>Burning the resin with a flame will leave a layer of oxide (or whatever) behind which makes it harder to solder. This is especially noticeable when you try burning the resin on very thin wire (eg. wire used in headphone cables), soldering will become allmost impossible.</p>
<p>Well, enameled headphone wires are exactly the ones I solder most of the times (I repair them for friends). Charred residues are very easily removed with the finger's nail, if you leave the wire into the flame for the right amount of time... </p><p>(Anyway you're right, the &quot;pro&quot; way to do it is to have a molten poodle of soldering alloy at more than 450&deg;... just dip the tip of the wire in the poodle, and what you get is a clean and tinned wire) </p>
<p>Very Nice, Would you post the squematic for beginners ?</p><p>please, Thanks.</p>
<p>Here's a simple schematic. I would suggest you see http://dushyant.ahuja.ws/2013/10/standalone-arduino/ for schematics and instructions on creating a standalone arduino</p>

About This Instructable




More by dushyantahuja:Programming the Electrodragon IoT Relay Wifi Calendar The Ultimate Child Tracker 
Add instructable to: