So not too long ago I came across this domino clock that was featured on Hackaday. [ http://www.yankodesign.com/2010/12/14/domino-clock/ ] Now I figured that would be cool and I'm trying to figure it all out at once, so I decided to use shift registers to shift leds for the dots. Now I have read the shiftout tutorial a few times but still have some questions.

So if I'm correct for one register the binary value 100000000 will turn on the first pin of the register. But say I have 9 registers, my guess is I'll have a 71 bit value...

And using the internal clock instead of a real time clock. How could I have the time trigger the LEDs.ie.while(mins == 09) { digitalWrite(..... , HIGH);}

The only problem with doing this is that i have to write conditions for all 60 minutes and 12 hours. Is there an easier way to do this?

So no matter whether it would work or not, I had too much time so finished the code with a little bit of explanation.I decided to use three shift register arrays so i can independantly change the displays.The minute part is fairly long

if (elapsedmicros >= interval) // 10 milliseconds have gone by { previousmicros = previousmicros + elapsedmicros; // save the time for the next comparison time_update = 1; // set flag to shift out the new time }

if (time_update == 1){ // no updating if not at 10ms interval, skip this whole section // increment the counters, roll as needed, shift the digits out

No, the shifting out probable needs some adjusting.Shiftout sends out one byte of data one bit at a time. If you are sending 3 bytes, 10110110 11011011 01000000 data array 12 for example you will need three shiftout commands

Modifying the shiftout example from 2 bytes to 3 would yield something like this:

Why not simply the code for writing out the display? You are only updating once a minute and once an hour, right?So keep track of when the minute changes or when the hour changes and then send out an update.It looks likeif (hourFormat12() == 11)& if (minute() == 0)do the time tracking for you.Just sit in a loop, and when you detect a difference, then do the shiftout commands

Cool I'll start adjusting the shiftout first and use that with the original code and as soon as thats working then ill try to implement some math to it. Although it surprised me that the difference between shifting out the first and second byte is only a space.

So I got all the parts in and started on the boards for the shift registers.The first one is a bit of a mess as i designed the layout on the go.

And two more of these

So I have my main board in the middle stone together with the arduino and through the 5 pin sockets it sends the clock, latch, data and power the the other two.I should get started on the housing this weekend so more to come.

Im from Holland and the easiest place to get everything is a place called Conrad. Bit over priced but they have most things you need. Heres a link to it, it's called a euro processor circuit board: http://www2.conrad-uk.com/goto.php?artikel=527831

You should update your profile to show that, there are others from Holland who could provide local help if needed, or suggest sources, etc. Must be like 2:30 AM there? While for me is just 8:30PM on a chilly winter night (and colder tomorrow, -7F tomorrow night!).