First Project - The 13 Hour Clock - Request for Some Guidance

Good Morning Everyone,

Quick intro, I’m Steve and I’m getting started in the world of Arduino. I’m a techie by background with reasonable programming experience and enough basic electronics knowledge that I can get by.

The Project

A friend of mine is hosting a Farie Market themed party and wants a clock that counts 13 hours, it needs to be analogue and it actually needs have the numerals 1 through to 13 on the clock face but it doesn’t need to be real time sync’d it just needs to move the single clock hand from one number to the next over the course of an hour 13 times.

Now, my thought here is that it shouldn’t be too hard to count an hour, some preliminary research shows that there a number of methods for doing that already. I also figure that dividing the clock face into 13 segments isn’t going to be too hard, just 360 degrees / 13 and then use a laser cutter to cut the numbers out of some laser ply.

Code wise my thought is that we can have a timer count say 10 minutes of time and then advance a motor by a pre-determined amount; needing to move roughly 4.61 degrees every 10 minutes, giving 27.7 degrees to each hour which gives us one revolution of 360 (actually 360.1 but it doesn’t have to be perfect) in 13 hours.

My question here is what kind of motor am I best using to drive this thing?

We’ll have all the dimensions for the clock face worked out ahead of time so is there a motor anyone can recommend that I can instruct it to move a certain amount per loop, is the one in the starter kit fine for this kind of work or do I need something with a bit more power to move the clock arm?

Is there a better way of doing this that I’m missing?

Thank you for reading and hopefully offering some suggestions/assistance.

Hardware

Arduino UNO board & all the components of the starter box.

Additional Breadboard and grab bag of other electronics components (Mostly vaying kind of resistors but with some other components left over from other projects).

Electrontics kit, including a good soldering iron.

Yes a stepping motor looks good but the problem is that most motors have only 300 steps per revolution. Therefore look for one with a gear box attached to it so you can get more precise movement. Do not move it every ten minutes but work out the gap you need between pulses.

There are lots of different starter boxes so we don't know exactly what parts you have. I would think that any stepper Motor can turn the Hand of a clock. The Hand probably only weighs a few grams and has almost no resistance unless your clock happens to be sitting in a hurricane.

Most Motors turn in steps of 2 degrees. You can change that to anything you want using the right gear ratios but I think that for this Project I would simply connect the clock Hand directly to the Motor shaft and manipulate stepping one step more every now and then to make it come out mathematically.

Thank you very much that very helpful.

The start kit I'm talking about is this one: Arduino Starter Kit with UNO Board (Link to the Amazon Page I purchased the kit from)

Hi, Don't you just love it when the seller offers other pictures of the product, and most of them are the outside of the box, not what they are selling inside.

You will need a driver board for the stepper but this depends on what you get, a very simple transistor type would do for your application.

Tom.... :)

Grumpy_Mike: Yes a stepping motor looks good but the problem is that most motors have only 300 steps per revolution. Therefore look for one with a gear box attached to it so you can get more precise movement. Do not move it every ten minutes but work out the gap you need between pulses.

So basically:

...

loop() {

  if (!(millis() % 288000UL)) { // 300 steps / (24hr * 60 min/hr * 60 sec/min * 1000 ms/sec)
    // move motor 1 step forward (assumes 300 steps per rotation. Your motor may vary.)
  }

 // ...
}

...

This will move the spindle one revolution per day. Now just put the 13 numbers around the circle. You can also make a clock that runs backward this way.

ChrisTenone:   if (!(millis() % 288000UL))

@ChrisTenone: Keep in mind that millis() skips numbers. https://ucexperiment.wordpress.com/2012/03/16/examination-of-the-arduino-millis-function/ So don't rely on it to hit every multiple of whatever magic number is chosen.