Two stepper motors and arduino setup. Linear Actuators... Suggestions?

I got an Arduino Uno Rev3 and Adafruits Motor Shield V2. I also got two RepRap stepper motors:
Frame size 42 x 42mm - NEMA 17
1.8 degree step angle
Length 47mm
Holding torque 44 N.cm (4.4kg.cm, 62oz.in)
Voltage 2.8V
Current/Phase 1.68A
Resistance/Phase 1.65ohm
Inductance/Phase 2.8mH
Inertia 68g.cm
Bipolar, 4-wire

The problem is that these doesn't seem compatible. Adafruits page it says: "MOST 1.5-3V MOTORS WILL NOT WORK" -> Powering Motors | Adafruit Motor Shield V2 | Adafruit Learning System

I'm building two of these:

Linear Actuators.

I don't know which stepper i should choose, or if there is any other motor drivers/shields i could use. Preferable with some kind of tutorial or guide... And what power supply i should use? Atm i got 3A 12V adapter connected to the adafruit shield.

What motor specs should be good for this kind of linear actuators?

Thanks!

That motor shield is not a good choice for driving a stepper motor - it is primarily for regular DC motors. You should use proper stepper motor driver boards such as the Pololu A4988. These will allow you to run the motor at a high voltage (up to 35v) for better performance. Just be careful to set the current limiter on the board to match your motor. Your 12 supply should be OK but a higher voltage would probably be better.

The voltage mentioned for stepper motors is pretty much irrelevant. What matters is the current.

I have no idea whether those motors are suitable for your project. That will depend on the required torque and speed.

What exactly are you trying to do?

...R

Thanks so much for a good answer! On my adapter i can set higher voltage... I'm going to build a X Y motion. One of the linear actuators are going to on top of the other one. The top one is going to have a flexible 5mm tube attached. So there is not going to be much weight or need for torque. Most important is precision and then speed.

I'm driving another project with the same motor shield but with a 15V stepper motor (https://www.sparkfun.com/datasheets/Robotics/SM-42BYG011-25.pdf)
Sometimes it stutters, I trying to figure out why, but it seems to stutter easier on higher speeds. Maybe I should try another driver for that stepper also...

The limiter on the board should be set to -> Current/Phase 1.68A? Or 3,36A (for two phases)?
Is it easy to setup the "Pololu A4988"? Do you know any guide that can help me get started?

Thanks again :)!

Set the current for a single phase - i.e. 1.68 amps. The Pololu web page explains how.

I have the motors you linked to. They are nominally 12v motors but they really need a higher voltage - 20v or more. I am using Pololu A4988 stepper drivers with them. What do you mean by high speed - how many steps per second?

Generally speaking the motors with lower nominal voltages are better for higher speeds. Though I guess with a suitable driver the 12v motor could be powered with 60v or more.

...R

Ok, I will check it out! What is a good way to power the driver boards? Right now I have an adapter. Maybe would be better with some kind of power supply since i'm going to need power to more than one motor...

What does the "nominal voltage" mean?

Why is the adafruit shield not a good choice for steppers? Is it because I can't set higher voltages?

Hum, not that fast... Maybe something like this: eBelt Long Travel XY Linear Slide - Newmark Systems, Inc. - YouTube

Thanks :slight_smile:

eleison:
Right now I have an adapter. Maybe would be better with some kind of power supply

What is the difference?

What does the "nominal voltage" mean?

Why is the adafruit shield not a good choice for steppers? Is it because I can't set higher voltages?

See this new Thread

Hum, not that fast... Maybe something like this:

The video gives me no idea of how many steps per second are required. In any case I was asking you about the speed at which you have a problem with your existing motors skipping steps.

...R

What is the difference?

Right now I can plug my adapter into the arduino. Using the Pololu driver boards I need one for each motor right? And I need to solder on the power cables? So my thought was if it is easier with some power supply that has multiple output cables.

See this new Thread

I did see the thread :slight_smile: It's great! Thank you. I did not read carefully enough to see this:

Datasheets normally quote the coil current, coil resistance, nominal voltage and holding torque and steps per revolution. For example, for this motor the values are 1 Amp, 2.7 Ohms, 2.7volts, 1.4Kg-cm and 200 steps/rev.

Can you explain further what the nominal voltage means? So my 12V stepper is not that good for higher speeds?

The video gives me no idea of how many steps per second are required. In any case I was asking you about the speed at which you have a problem with your existing motors skipping steps.

Ok, sorry, i misunderstood you! I don't know exactly, I will look it up during the day... I remember that i changed the hz though: In the bottom of this page it says:

Why won't my stepper motor go any faster?
Since the shield is controlled by i2c, the maximum step rate is limited by the i2c bus speed. The default bus speed is 100KHz and can be increased to 400KHz by editing the library file in your Arduino installation folder. The file can be found in hardware/libraries/wire/utility/twi.h.

Find the line with: "#define TWI_FREQ 100000L"
and change it to "#define TWI_FREQ 400000L"

Or, you can add the following code to your setup() function:

TWBR = ((F_CPU /400000l) - 16) / 2; // Change the i2c clock to 400KHz

Could this cause any problems?

eleison:
Can you explain further what the nominal voltage means?

This is the number you get when you multiply the coil resistance by the rated current.

So my 12V stepper is not that good for higher speeds?

In general, yes. Because you are starting at a relatively high voltage you will need a much higher voltage if you need high speed. High voltage motors have coils with large numbers of turns which means a higher inductance to be overcome.

In the bottom of this page it says:

I think that is only about the speed of communication between the Arduino and the shield.

Your motor pulse frequency won't be remotely close to 100kHz, never mind 400kHz. More like 1kHz.

...R

Ok, thanks for all the answers! I think I have kinda understood the basics now :slight_smile: I just need to figure out how to mount/put together everything in a proper way... I will post some pictures later :slight_smile:

So i've been looking around for different stepper drivers. My steppers have "Current/Phase 1.68A" and when I look at different driver boards they can't go that high without overheating. What's your experience with this? Is it bad to give the motors for example 1.4A?

Thanks :slight_smile:

The Pololu A4988 should be able to deal with that and the Pololu DRV8825 can manage a little more current. You may need to add a heatsink.

The only problem with setting a current limit below the motor's maximum would be less torque.

...R

Thanks for a great answer! How much do you think that small current difference could effect the performance?

I also looked at these kinds of drivers: http://www.makeblock.cc/me-2h-microstep-driver-v1-0/

Maybe that's a good alternative too...

So what's the difference between "Pololu DRV8825" and "Big Easy Driver"? I'm thinking more of practical than specs, can I use the accelstepper library for the Pololu one?

Sorry for stupid questions :X, you've given great help!!

I have no idea how much the small difference in current will make.

The BigEasydriver uses the A4988 chip.

You can use Accelstepper with any of them. However if you don't actually need the acceleration feature it hasn't much to offer. Be careful to choose the correct option when initializing your Accelstepper instance. I think it is called DRIVER.

...R

If i go with the chip I need to set max current manually but if I go with the easydriver I don't? Is that correct?

I was thinking to use the Accelstepper cuz I can run two motors at the same time and remember position. Then I don't need to program this my self...

Ok, I will be careful!

eleison:
If i go with the chip I need to set max current manually but if I go with the easydriver I don't? Is that correct?

Where did you get that idea?
How could the Easydriver know what current your motor needs?
What, exactly, do you mean by "go with the chip"?

By the way you need a BigEasydriver, not an Easydriver.

...R

I don't know where I got that, I probably got confused searching around :slight_smile: Im curious though whats the difference between a "motor driver board" (big easydriver) and a "carrier board or breakout board" (A4988).

Sorry for my bad english, I meant -> "If I buy"...

:slight_smile:

eleison:
Im curious though whats the difference between a "motor driver board" (big easydriver) and a "carrier board or breakout board" (A4988).

The typist.

...R

A break out board is for running more than one stepper. you would use this in a cnc project. You would be running it from a pc not arduino.

weldsmith:
A break out board is for running more than one stepper.

There is no standard jargon for this. Pololu describes their A4988 boards as "breakout boards" - which is what gave rise to the question.

In my experience a breakout board is just a board to make a surface-mount IC accessible to hobbyists.

...R