Step motor clock .... confused!

xtal_01

Joined May 1, 2016
118
OK, I have now read a dozen posts on the subject and am still confused. I must be missing something.

I am thinking about a Arduino to control a step motor clock.

Most of it makes sense.

Problem .... 200 steps seems to be the typical step motor.

How do you get 60 steps (for 60 seconds or minutes) out of it??????

If I use 3 steps per second (or minute) I get 180 steps

If I use 4 steps per second (or minute), I get 240 steps.

Either way I get a large error on each revolution.

The only solution I came up with is step 3 then 3 then 4. This would give 10 steps per 3 seconds (or minutes) which equals 200 steps per rev.

This can't be the best way to do it though!

Can someone please explain what I need to do.

Thanks .... Mike

DNA Robotics

Joined Jun 13, 2014
611
I think I remember the first stepper motors that I played with had 180 steps per rev. They were salvaged from printers. Maybe Epson?

panic mode

Joined Oct 10, 2011
1,889
360deg / 200 steps = 1.8 deg/step

you could add gearing for example, with 3:1 reducer you get 600 steps per revolution. how does that sound?

another option is microstepping...

Last edited:

atferrari

Joined Jan 6, 2004
4,438
OK, I have now read a dozen posts on the subject and am still confused. I must be missing something.

I am thinking about a Arduino to control a step motor clock.

Most of it makes sense.

Problem .... 200 steps seems to be the typical step motor.

How do you get 60 steps (for 60 seconds or minutes) out of it??????

If I use 3 steps per second (or minute) I get 180 steps

If I use 4 steps per second (or minute), I get 240 steps.

Either way I get a large error on each revolution.

The only solution I came up with is step 3 then 3 then 4. This would give 10 steps per 3 seconds (or minutes) which equals 200 steps per rev.

This can't be the best way to do it though!

Can someone please explain what I need to do.

Thanks .... Mike
I suspect you are confusing the amount of steps in one revolution, steppers could make. That is a fixed number for a certain model.

Yes, 200 steps per revolution seems quite common like in printers.

Now, how fast you make it turn is about turns/sec or if you like, steps/sec.

Just prior starting to dig deeper, google jones steppers and read about critical speed.

If you never used steppers, just to grasp the most basic, learn how to make them turning using simple wires in a breadboard.

xtal_01

Joined May 1, 2016
118
Thanks for all the advice!

I have been thinking about gearing.

I get the same problem with micro steps ... 200, 400, 800 per rev ... nothing that divides by 60.

I am just about to order a couple since I have never played with one.

Just the idea of figuring out how to move in 1 second (or 1 minute) jumps when the motor steps at 1.8 deg (or 0.9 or 0.45 ) does not make sense to me.

Maybe I am on completely the wrong track? Maybe some type of servo motor with an encoder would be better?????

All new to me and just trying to wrap my head around it.

Thanks .... Mike

Joined Jul 18, 2013
23,778
To implement a servo with encoder involves far more than a stepper, why not just implement suitable gearing between motor and clock? Presumably you would need it if using sec/min/hours indicators?.
Max.

DNA Robotics

Joined Jun 13, 2014
611
A 7.5 degree, 48 steps per revolution motor may do it.
ROB-10551

360 / 7.5 = 48 steps per revolution.

60 / 48 = 1.25
Each step is 1 1/4 second.

Step 4 times, every 5 seconds for the second hand.

Step 4 times, every 5 minutes for the minute hand.

48 / 12 = 4
1 step every 15 minutes for the hour hand.

Last edited:

crutschow

Joined Mar 14, 2008
27,890
Use a 100kHz crystal oscillator with a divide by 10k decade counter followed by a divide by 3.
That will give a 1/0.3 Hz pulse rate for 200 pulses in 60 seconds.

xtal_01

Joined May 1, 2016
118
Hey!

All great ideas.

Guess my next step it so get some parts and start wiring.

This is just a project I have had on my mind for a few years now.

My long term goal is to build a clock tower on the top of my workshop. I am a machinist so shafts, bearings and such ... as simple. I wanted to avoid a lot of gearing (though I don't mind a few if needed ... just don't want to go nuts).

After repairing a friends CNC plasma cutter, I got the idea of using step motors to drive the clock.

This I think would work great because I could make it auto correcting from a GPS signal. If it looses power, it would self set on start-up. Just seems a reasonable long term project.

Thanks .... Mike

AlbertHall

Joined Jun 4, 2014
11,524
I get the same problem with micro steps ... 200, 400, 800 per rev ... nothing that divides by 60.
From the link I posted earlier:
"There are a lot of different microstepping modes, with step lengths from 1⁄3-full-step down to 1⁄32-full-step—or even less."
So 1/3 would give you 600 steps.

xtal_01

Joined May 1, 2016
118
Awwwwwwww!

I am off to work but I will take a good look tonight.

I thought microsteps were only in 1/2, 1/4 and 1/8

I completely missed in my reading there was 1/3 !!!!!!!!!!!

That is awesome!

Thanks so very much .... Mike

xtal_01

Joined May 1, 2016
118
OK, I must be dumb as dirt.

I just looked for a half hour at step motor drives (I did read the information on the link).

All the drives I found say 1/2, 1/4. 1/8, .... steps. No 1/3 step drives!

Does anyone know of any that are relatively cheap?

Thanks so much again!

Mike

xtal_01

Joined May 1, 2016
118
Sorry, should have been more specific.

I am looking at "packaged" drives. Unless it's a simple 555 circuit it is beyond my capability (I know you guys would laugh but I just built a missing pulse detector for a client to test a welder ... worked first try ... not too bad for a machinist who build industrial control panels). I would never attempt a surface mount chip or designing a complete circuit.

I see lots of drives from $10 to say$50.

This is just a toy I am playing with .... figure it is a good project to learn about Arduino's and step motors.

Thanks .... Mike

Flemo

Joined Oct 23, 2016
2
What you are trying to do with the 200 step mode stepper motor is quite simple as you are going to be sending your "Step" pulse from your Arduino at a given time based rate. What I would do if I was writing the code to step the stepper motor is to generate the high and the low output steps with equal duration at 0.01875 second intervals. This can be coded as;

int MotorSpeed = 18750;
digitalWrite(Step, HIGH); delayMicroseconds(MotorSpeed);
digitalWrite(Step, LOW); delayMicroseconds(MotorSpeed);

This way you will have a constant and smooth moving second hand on your clock as it would take 53.333 steps during each full second. You would also set the Mode Pins on the stepper driver chip so that you are using 1/16 step, this means that 1 full stepper motor revolution will require 3,200 steps to complete (16 x 200 step motor). you will not have to correct for any 1/60 division missalignment, you are going to drive the stepper at 3200 full pulses per minute which will give a smooth operation. You could try other mode resolutions but I reckon approx 50 steps per second would be very smooth and your stepper torque would be there as well. Lastly, I would buy the following demo board which is already built for tinkering;
DRV8886ATEVM EVAL BOARD, STEPPER MOTOR DRIVER
From memory it will cost about AUST \$70 and when I started playing around with Steppers it was really easy to hook up to and performed very well. Element14 can supply this product (2752498) along with all the spec sheets and operation sheets you could ever need.

Good luck

crutschow

Joined Mar 14, 2008
27,890
Okay here's my latest thought on using a frequency divider circuit.
The simple circuit below uses one CD4029 IC counter and one CD4013 IC flip-flop to form a divide by 18 counter.
Thus a 60Hz clock pulse will give a 60/18 = 3.3333 Hz (steps per second) output as shown in the simulation below (bottom of small window).
That gives 200 counts in 60 seconds as desired for driving the second hand, no microstepping needed.
Dividing that by 60 will give the desired pulse frequency for the minute hand.
Dividing that by 12 will get the desired pulse frequency for the hour hand.

For this you will need a circuit to generate 60Hz pulses from the power line.
That could be done with an optocoupler for isolation, used as a zero-crossing detector.

Last edited:

John P

Joined Oct 14, 2008
1,910
This question has come up before, and I was interested enough to build a setup to do it. For that project, the motor was a 48 steps/rev type, so most moves had to be from one microstepped location to another. With 200/rev, you'd be doing 2 or 3 full steps as part of every move, but the technique would be similar. Here's a video of the motor in operation:

xtal_01

Joined May 1, 2016
118
I learn soooo much from you guys.

Both these ideas might be something I want to try.

I've got some time this weekend so I want to get some "stuff" on order so I can get my hands into this.

I'm sure I will have a bunch more questions after I get some hands on experience.

Thanks so much again!