The Big Easy Stepper Motor Driver + Arduino

Discussions area for bildr's blog posts.
nice driver!
This is a 10 micro step driver. So these speeds would be too high. 1rps would be 2000 steps per second.

However that doesn't sound like your problem. Try this:

Code: Select all

//This is an example of how you would control 1 stepper

#include <AccelStepper.h>

int motorSpeed = 6000; //maximum steps per second (about 3rps / at 10 microsteps)
int motorAccel = 80000; //steps/second/second to accelerate

int motorDirPin = 2; //digital pin 2
int motorStepPin = 3; //digital pin 3

//set up the accelStepper intance
//the "1" tells it we are using a driver
AccelStepper stepper(1, motorStepPin, motorDirPin);



void setup(){
 stepper.setMaxSpeed(motorSpeed);
 stepper.setSpeed(motorSpeed);
 stepper.setAcceleration(motorAccel);
 
 stepper.moveTo(20000); //move 20000 steps (should be 10 rev)
}

void loop(){
 
 //if stepper is at desired location
 if (stepper.distanceToGo() == 0){
  //go the other way the same amount of steps
  //so if current position is 400 steps out, go position -400
  stepper.moveTo(-stepper.currentPosition());
 }
 

 
 //these must be called as often as possible to ensure smooth operation
 //any delay will cause jerky motion
 stepper.run();
}





gabriella levine wrote:My motor is running really slowly:
I'm using the gecko 251x motor driver and a gecko nema17 motor. the motor is spinning pretty slowly (1 rps) even when I set the speed to be super high: like...
long maxSpeed = 1000000;
long motorSpeed = 9000000;
stepper.runSpeed();

I'm using the accelstepper library. Everything seems to work but the speed is so slow. Is there any insight into what I might look into to run it faster?

thanks
ameyer
Founder
 
Posts: 3327
Joined: Thu Jan 21, 2010 11:59 pm
Location: The Bay Area

This stepper motor driver is getting very hot. i am following the wiring as you mention and using 30 V. However I tried with 20V, 18V, it is all making the chip pretty hot. is this normal? the amperage draw is between 0.3 and 0.7 for my motor. That is well within the big easy drivers rating
gabriella levine
 
Posts: 5
Joined: Thu Feb 12, 2015 7:27 pm

I thought you were using the gecko 251x motor driver. Did you change to the big easy driver? If so, make sure you adjust toe knob accordingly.

What do you consider "very hot"? Could it boil water? Or is it too hot to touch for 10 seconds?




gabriella levine wrote:This stepper motor driver is getting very hot. i am following the wiring as you mention and using 30 V. However I tried with 20V, 18V, it is all making the chip pretty hot. is this normal? the amperage draw is between 0.3 and 0.7 for my motor. That is well within the big easy drivers rating
ameyer
Founder
 
Posts: 3327
Joined: Thu Jan 21, 2010 11:59 pm
Location: The Bay Area

I switched to the big easy driver because my motor was running too slowly: I cant seem to adjust the gecko driver to do full resolution so I thought to use the big easy driver.

do you have insight if this is a good decision?

it's too hot to touch. I'll get a heat sink though.

I also am having trouble getting the motor to run as fast as I want . I’m using the sparkfun NEMA17 motors but have tried others too. My motors are rotating about 1-2 rev / sec. I’m using the accelstepper library code
stepper.setSpeed(20000);
but have also used just the stepper library.

I’m following the diagram for jumping the microstep pins to ground to set the resolution to FULL STEP (MS1, MS2, and MS3 jumped to Ground) assuming FULL STEP means quickest speed (right?)
the motors run really slow (like 10 RPM) , but when MS1 is jumped to ground and MS3 and MS2 are floating it seems to run about 1-2 rev/sec but that’s still too slow. I assume I can run these motors much faster and I’m not understanding something about the motor driver.
gabriella levine
 
Posts: 5
Joined: Thu Feb 12, 2015 7:27 pm

That other driver was probably better. I'd never used that one on its own, but other geko drivers that were very nice.

I'm not completely sure why it is getting so hot. How is the motor? (It should be hottest when moving slow)

You might be able to get about 5rps with this driver and code, but I would say 3RPS is more likely. Steppers are not designed to go very fast. They become very week at high speeds because of "back EMF". They are basically generating energy that fights them the faster they go. After a certain speed they will stall as they wont have the torque needed to continue. You can often get them to go faster by using acceleration however. But noting above 5rps I bet.

Full steps should get you the fastest speeds.

Is this the motor? https://www.sparkfun.com/products/10846 If so, this is a 400 step/rev motor so you need 2x the number of steps per second. If it is not this motor, disregard that.

As for "stepper.setSpeed(20000);" this is way too fast. That's like 50rps (if it is a 400 count motor). Also I just read that the library may not accurately not support speeds set above 1000

RPS = motor count / microsteps
So stepper.setSpeed(1000) with a 400 count motor and full steps would be 2.5 RPS. That same speed on a regular 200 count motor would be 5RPS

How fast does the motor move with this? How many rotations?

Code: Select all

//This is an example of how you would control 1 stepper

#include <AccelStepper.h>

int motorSpeed = 200;
int motorAccel = 2000; //steps/second/second to accelerate

int motorDirPin = 2; //digital pin 2
int motorStepPin = 3; //digital pin 3

//set up the accelStepper intance
//the "1" tells it we are using a driver
AccelStepper stepper(1, motorStepPin, motorDirPin);



void setup(){
 stepper.setMaxSpeed(motorSpeed);
 stepper.setSpeed(motorSpeed);
 stepper.setAcceleration(motorAccel);
 
 stepper.moveTo(400); //move 400 steps (should be 10 rev)
}

void loop(){
 
 //if stepper is at desired location
 if (stepper.distanceToGo() == 0){
  //go the other way the same amount of steps
  //so if current position is 400 steps out, go position -400
  stepper.moveTo(-stepper.currentPosition());
 }
 

 
 //these must be called as often as possible to ensure smooth operation
 //any delay will cause jerky motion
 stepper.run();
}






gabriella levine wrote:I switched to the big easy driver because my motor was running too slowly: I cant seem to adjust the gecko driver to do full resolution so I thought to use the big easy driver.

do you have insight if this is a good decision?

it's too hot to touch. I'll get a heat sink though.

I also am having trouble getting the motor to run as fast as I want . I’m using the sparkfun NEMA17 motors but have tried others too. My motors are rotating about 1-2 rev / sec. I’m using the accelstepper library code
stepper.setSpeed(20000);
but have also used just the stepper library.

I’m following the diagram for jumping the microstep pins to ground to set the resolution to FULL STEP (MS1, MS2, and MS3 jumped to Ground) assuming FULL STEP means quickest speed (right?)
the motors run really slow (like 10 RPM) , but when MS1 is jumped to ground and MS3 and MS2 are floating it seems to run about 1-2 rev/sec but that’s still too slow. I assume I can run these motors much faster and I’m not understanding something about the motor driver.
ameyer
Founder
 
Posts: 3327
Joined: Thu Jan 21, 2010 11:59 pm
Location: The Bay Area

Ok thanks for the help - I agree the gecko driver is probably good but how can i do "full steps" ? it seems it is only set to micro steps, whereas the easy driver I'm able to jump MS1, MS2, MS3 to ground to do full steps.

I'm actually using this motor http://www.geckodrive.com/g717-90-4.html which is 200 steps per rev

The motor does not seem too hot, even when going slow speeds. I'm just going to add a heat sink and not worry about the heat.

I'll try that code specifically just to see, but I dont think it's nearly getting to be 5rps, it's more like 1rps.
gabriella levine
 
Posts: 5
Joined: Thu Feb 12, 2015 7:27 pm

That gecko driver is set to 10 microscopes. It can't do full steps that I can see.

If the motor is not getting hot when running it at slow speeds for a while then you have a current problem. Steppers should get hot when connected to this driver.

On the bigEasy driver is a mini potentiometer to control the current to the motor. This varies between 0ma and 2A (2000ma). You want to set it to whatever your motor is rated to. Too high, and you could burn the motor up, too low, you wont get all the power out of your motor. Note: The arrow indicators on the current adjustment potentiometer are backwards. Keep this in mind when adjusting the current limits. If you are running a higher power motor, you will probably want to put a heat sink on the driver as well.


That code should do exactly 1 rps
Change
int motorSpeed = 200;
to
int motorSpeed = 800; //4rps

gabriella levine wrote:Ok thanks for the help - I agree the gecko driver is probably good but how can i do "full steps" ? it seems it is only set to micro steps, whereas the easy driver I'm able to jump MS1, MS2, MS3 to ground to do full steps.

I'm actually using this motor http://www.geckodrive.com/g717-90-4.html which is 200 steps per rev

The motor does not seem too hot, even when going slow speeds. I'm just going to add a heat sink and not worry about the heat.

I'll try that code specifically just to see, but I dont think it's nearly getting to be 5rps, it's more like 1rps.
ameyer
Founder
 
Posts: 3327
Joined: Thu Jan 21, 2010 11:59 pm
Location: The Bay Area

ok i'll try that shortly - but if the gecko driver is set to 10 microsteps wont int motorspeed = 800 set the speed not to 4 rps but 0.4 rps
gabriella levine
 
Posts: 5
Joined: Thu Feb 12, 2015 7:27 pm

Correct. Use the big easy driver for now.

gabriella levine wrote:ok i'll try that shortly - but if the gecko driver is set to 10 microsteps wont int motorspeed = 800 set the speed not to 4 rps but 0.4 rps
ameyer
Founder
 
Posts: 3327
Joined: Thu Jan 21, 2010 11:59 pm
Location: The Bay Area

Previous

Return to Blog Posts

Who is online

Users browsing this forum: No registered users and 1 guest

cron