You need following parts for this beautiful clock:

- Arudino Mini Pro

- digital RGB LED-Stripe (1m, 60 LEDs)

- Bamboo pizza plate (32cm circumference)

- RealTimeClock Module for Arduino

- 3,3v Voltage regulator (for the RTC module)

Just stick the LED-Stripe around the pizza plate and connect the RTC and the LED-Stripe to the Arduino Mini Pro.

The hour indicator is red, the minute indicator is cyan.

You can find Information about the LED-Stripe Arduino connection at Adafruit (https://learn.adafruit.com/digital-led-strip/overview).

You can find the Arduino code here: https://dl.dropboxusercontent.com/u/2711220/Mikrocontroller%20Sourcecodes/LEDStripClock.ino

<p>Looks great; I had also made a similar clock some time back. </p><p><a href="http://www.instructables.com/id/Charliexplexed-LED-Clock-Arduino/" rel="nofollow">http://www.instructables.com/id/Charliexplexed-LED...</a></p><p>You can see version 2 of the code here:</p><p><a href="https://github.com/dushyantahuja/LED-Clock/tree/Analog-Clock-v2" rel="nofollow">https://github.com/dushyantahuja/LED-Clock/tree/An...</a></p><p>This code can be used with your clock with minor variations to adjust for the pin you have used and the type of your LED strip. The differences in code are:</p><p>1. The hour hand also grows - so if it is 6:30 - the 3 LEDs from the 6 hand half-way up to the 7 hand will light up - make it easier to &quot;read&quot; the time</p><p>2. Shows a rainbow every 15 minutes - just some zing</p><p>3. Have attached a bluetooth module to the RX and TX ports - so you can actually set the time, colours, brightness, etc via bluetooth. It also works as a &quot;missed call notifier&quot; - similar to this: <a href="http://dushyant.ahuja.ws/2013/11/physical-android-notifier/" rel="nofollow">http://dushyant.ahuja.ws/2013/11/physical-android-...</a></p><p>4. Have attached an LDR to an analog pin so that the brightness of the strips adjusts to the ambient light</p>
Hi dushu,<br><br>Wow, your clock looks great, too.<br>The Bluetooth Module to edit the settings is a great idea. Originally i wanted to add some buttons to edit things, but I think, I'm going the bluetooth way.<br><br>Thanks for sharing your code!
You're welcome. I'm thinking of adding a couple of touch switches - but not sure yet.
<p>Hello MacManus,</p><p>I've been looking for the perfect use for my LED strip and I think this is it. Also the Bamboo Plate looks like a great piece of blank space for some artwork when the clock is all done. My question is if you can re post the link to the arduino code in the comments because it appears cut off or something and I can't get to it. I'd like to hold onto the code in case you take it down before I get around this project.</p>
Hello waltassault, Here's the code:<br> <br> // Digitale Uhr mit LED-Strip<br> // Pascal K&ouml;nig, Mai 2014<br> // http://www.pascals-koenigreich.de/<br> <br> //F&uuml;r Strip<br> #include &quot;LPD8806.h&quot;<br> #include &quot;SPI.h&quot;<br> <br> //F&uuml;r RTC<br> #include &quot;Wire.h&quot;<br> #define DS1307_ADDRESS 0x68<br> <br> int nLEDs = 60;<br> <br> int dataPin = 4;<br> int clockPin = 5;<br> <br> LPD8806 strip = LPD8806(nLEDs, dataPin, clockPin);<br> <br> int hour_global = 0;<br> int minute_global = 0;<br> int minute_global_old = 0;<br> <br> int hour_pin = 0;<br> <br> void setup() {<br> &nbsp; //RTC<br> &nbsp; Wire.begin();<br> &nbsp; Serial.begin(9600);<br> &nbsp; Serial.println(&quot;Setup...&quot;);<br> &nbsp;<br> &nbsp; //Strip<br> &nbsp; strip.begin();<br> &nbsp; strip.show();<br> }<br> <br> void loop() {<br> &nbsp; getDate();<br> &nbsp; Serial.print(hour_global);<br> &nbsp; Serial.print(&quot;:&quot;);<br> &nbsp; Serial.println(minute_global);<br> &nbsp;<br> &nbsp; if (hour_global == 0 | hour_global == 12 | hour_global == 24) hour_pin = 0;<br> &nbsp; else if (hour_global == 1 | hour_global == 13) hour_pin = 5;<br> &nbsp; else if (hour_global == 2 | hour_global == 14) hour_pin = 10;<br> &nbsp; else if (hour_global == 3 | hour_global == 15) hour_pin = 15;<br> &nbsp; else if (hour_global == 4 | hour_global == 16) hour_pin = 20;<br> &nbsp; else if (hour_global == 5 | hour_global == 17) hour_pin = 25;<br> &nbsp; else if (hour_global == 6 | hour_global == 18) hour_pin = 30;<br> &nbsp; else if (hour_global == 7 | hour_global == 19) hour_pin = 35;<br> &nbsp; else if (hour_global == 8 | hour_global == 20) hour_pin = 40;<br> &nbsp; else if (hour_global == 9 | hour_global == 21) hour_pin = 45;<br> &nbsp; else if (hour_global == 10 | hour_global == 22) hour_pin = 50;<br> &nbsp; else if (hour_global == 11 | hour_global == 23) hour_pin = 55;<br> &nbsp;<br> &nbsp; hour_pin = nLEDs - hour_pin;<br> &nbsp; minute_global = nLEDs - minute_global;<br> &nbsp;<br> &nbsp; for(int i=0; i&lt;strip.numPixels(); i++) strip.setPixelColor(i, 0);<br> &nbsp; for (int i = nLEDs-1; i &gt; minute_global; i--) strip.setPixelColor(i, strip.Color(0, 127, 127));<br> &nbsp; strip.setPixelColor(hour_pin-1, strip.Color(127, 0, 0));<br> &nbsp;<br> &nbsp; if (minute_global != minute_global_old) {<br> &nbsp;&nbsp;&nbsp; strip.show();<br> &nbsp;&nbsp;&nbsp; minute_global_old = minute_global;<br> &nbsp; }<br> &nbsp; delay(1000);<br> }<br> <br> byte bcdToDec(byte val)&nbsp; {<br> // Convert binary coded decimal to normal decimal numbers<br> &nbsp; return ( (val/16*10) + (val%16) );<br> }<br> <br> void getDate(){<br> <br> &nbsp; // Reset the register pointer<br> &nbsp; Wire.beginTransmission(DS1307_ADDRESS);<br> <br> &nbsp; byte zero = 0x00;<br> &nbsp; Wire.write(zero);<br> &nbsp; Wire.endTransmission();<br> <br> &nbsp; Wire.requestFrom(DS1307_ADDRESS, 7);<br> <br> &nbsp; int second = bcdToDec(Wire.read());<br> &nbsp; int minute = bcdToDec(Wire.read());<br> &nbsp; int hour = bcdToDec(Wire.read() &amp; 0b111111); //24 hour time<br> &nbsp; int weekDay = bcdToDec(Wire.read()); //0-6 -&gt; sunday - Saturday<br> &nbsp; int monthDay = bcdToDec(Wire.read());<br> &nbsp; int month = bcdToDec(Wire.read());<br> &nbsp; int year = bcdToDec(Wire.read());<br> <br> &nbsp; hour_global = hour;<br> &nbsp; minute_global = minute;<br> }
<p>This looks really cool! I'd love to see a step-by-step......</p>
<p>Hi craftclarity.</p><p>It's really simple, you just have to glue the LED-Stripe on the bamboo plate, program the Arduino and connect everything.</p><p>But maybe i find a little bit of time in the next Weekend to write a step-by-step guide.</p><p>Greetings</p>

About This Instructable




More by MacManus88:Bamboo digital clockWooden Magnetic Key Board
Add instructable to: