Greetings to all.
I'm new to electronics, but an old hand at tinkering and fabrication. In my current project I need a small Nema 17, 200 step stepper to "jog" 12 even steps to a total of 360 degrees. I've tried two Arduinos and two motor shields and 3 libraries (at least). So far, no matter what I try, I cannot make the 200 step motor (actually have 2 motors, tried them both) move 12 times at 16.67 steps per jog, with long delays, and various voltages and have it come out to exactly 360 degrees. It always comes up noticebly short in just a couple revolutions. The 48 step motor does it perfectly, every time, of course, but doesn't have enough muscle for the job. I've been working on just this issue for a week now. I give up!
Thanks in advance.
Hi,
How are you getting 16.67steps?
Tom.......
Has it not occurred to you that 200 is not an even multiple of 48? Or of 12.
You cannot get a 200 step motor to move 1/12th of a revolution.
...R
Use microsteps for better accuracy? - even so there won't be an integral number of steps per jog
so you have to calculate the nearest step number for each position and use differences:
So rather than:
for (int i = 0 ; i < 12 ; i++)
step (200/12);
you do:
int position = 0 ;
for (int i = 0 ; i < 12 ; i++)
{
int new_pos = 200 * i / 12 ;
step (new_pos - position) ;
position = new_pos ;
}
Then errors cannot accumulate.
Thanks for the replies,
Well, I tried the "Custom Stepper" library this morning, and so far, it is dead on. There might be issues later on, but right now it is promising. Just thought you'd like to know. The microstepping suggestion would probably work, but getting the stepper to do the 12 jogs in 3.5 seconds is unlikely I think.
thanks again.
I knew it was too good to be true --- yeah,
customStepper will do the job, but not with any power. So far,
i've not found any way to run that library thru a motor shield.
Back to square one. Any more suggestions, anyone?
Thanks again.
How accurately do you need to position things. 200/12 gives 16.667. Would it be sufficient to move 17 steps some of the time and 16 steps on other occasions ? 12 * 17 = 204 so you would have 4 steps too many. That would mean that 4 of the 12 intervals should only have 16 steps.
...R
If you want speed from a bipolar stepper, you will need to use a chopper driver and a higher supply voltage.
100--200rpm may be achievable with a dual motor shield and a bipolar stepper with a high resistance
winding, but if you want 500rpm or more you don't have any option but a low-impedance stepper and
a chopper-driver like a DRV8825.
Thanks again, to all.
Robin, I thought of that already, but
i would have to redrill the pieces that are now 16.67 degrees apart. Really rather just solve the issue electronically. The more exact I can be, the better for this application. Sure wish my brain would wrap around coding better.
I've got some bigger 48 steppers on the way and if they've got enough power -- problem solved"
Fyi, the project is a super precise seeding machine, and it is a moving target.
Seeder:
Robin, I thought of that already, but
i would have to redrill the pieces that are now 16.67 degrees apart. Really rather just solve the issue electronically.
You could add some gears or a toothed belt drive to give you the necessary number of steps per revolution from the 200 step motor.
...R