Motor Shield V2 High Current

Adafruit Ethernet, Motor, Proto, Wave, Datalogger, GPS Shields - etc!

Moderators: adafruit_support_bill, adafruit

Please be positive and constructive with your questions and comments.
Locked
ChrisBTW
 
Posts: 4
Joined: Fri Apr 04, 2014 6:10 am

Motor Shield V2 High Current

Post by ChrisBTW »

I am trying to control a NEMA17 stepper using the V2 motor shield. The Adafruit shield draws over 1.7A (I have limited the current to 1.7A, but it wants to draw more!) during operation, whereas the Arduino motor shield only draws around 800mA using the same stepper.

I need to use the Adafruit shield as I want to control 4 steppers.

Any ideas why the current is so high?

Current Code: Straight forward code to run stepper fwd/bkw a set number of steps and release in between. Just draws loads of current?


AF_Stepper motor(200, 2); // Connect a stepper motor with 200 steps per revolution (1.8 degree) to motor port #2 (M3 and M4)
const int switchPin = 9; // the number of the switch
const int yell_ledPin = 2; // the number of the LED pin
const int red_ledPin = 10;
const int grn_ledPin = 13;
int fwdstep = 1200; // set the number of steps forward
int bkwstep = 100; // set the number of steps backwards
int blinktime = 100;

void setup()
{
pinMode(yell_ledPin, OUTPUT);
pinMode(red_ledPin, OUTPUT);
pinMode(grn_ledPin, OUTPUT);
pinMode(switchPin, INPUT);
digitalWrite(yell_ledPin, HIGH);
digitalWrite(red_ledPin, HIGH);
digitalWrite(grn_ledPin, HIGH);
motor.setSpeed(150);
}

void loop(){
blink();
while(digitalRead(switchPin) == HIGH)
{
pump();
}
}


void pump()
{
digitalWrite(grn_ledPin, LOW);
motor.step(fwdstep, BACKWARD, SINGLE); //SINGLE, DOUBLE, INTERLEAVE or MICROSTEP
digitalWrite(grn_ledPin, HIGH);
motor.release();
digitalWrite(red_ledPin, LOW);
motor.step(bkwstep, FORWARD, SINGLE);
digitalWrite(red_ledPin, HIGH);
motor.release();
}

void blink(){
digitalWrite(yell_ledPin, LOW);
delay(blinktime);
digitalWrite(yell_ledPin, HIGH);
delay(blinktime);
}

User avatar
adafruit_support_bill
 
Posts: 88144
Joined: Sat Feb 07, 2009 10:11 am

Re: Motor Shield V2 High Current

Post by adafruit_support_bill »

The Adafruit shield draws over 1.7A (I have limited the current to 1.7A, but it wants to draw more!) during operation, whereas the Arduino motor shield only draws around 800mA using the same stepper.
What are the specs for your motor (NEMA17 only defines the faceplate dimensions - we need to know the electrical specifications)
What is the coil resistance and voltage rating?
What voltage are you running it at?
Is is bipolar or unipolar? 4, 5, 6, 8 wires?
How do you have it wired?

Please post a photo showing how you have everything connected.

ChrisBTW
 
Posts: 4
Joined: Fri Apr 04, 2014 6:10 am

Re: Motor Shield V2 High Current

Post by ChrisBTW »

Many thanks for your reply, I will send the info on Monday once I have all the data you asked for.

Chris

dblythe1
 
Posts: 1
Joined: Fri Apr 04, 2014 7:31 pm

Re: Motor Shield V2 High Current

Post by dblythe1 »

I was also having high current issues with my Motor Shield v2 and burned out a mosfet. It is possible to order a replacement TB6612 so I can get my second channel running again?

User avatar
adafruit_support_bill
 
Posts: 88144
Joined: Sat Feb 07, 2009 10:11 am

Re: Motor Shield V2 High Current

Post by adafruit_support_bill »

@dblythe1 - We do not stock these for individual sale, but you should be able to source one from Mouser of DigiKey.

ChrisBTW
 
Posts: 4
Joined: Fri Apr 04, 2014 6:10 am

Re: Motor Shield V2 High Current

Post by ChrisBTW »

OK, here are all the details for my setup.
Stepper Motor - 17HS19-1684S (200 steps, 4 leads, Bipolar)
http://www.omc-stepperonline.com/3d-pri ... -p-17.html
Connections - M3 Red+Blue M4 Green+Black
External PSU 12V

I have gone back to basics with the code and am testing the following;

Code: Select all

#include <Wire.h>
#include <Adafruit_MotorShield.h>
#include "utility/Adafruit_PWMServoDriver.h"

// Create the motor shield object with the default I2C address
Adafruit_MotorShield AFMS = Adafruit_MotorShield();  

// Connect a stepper motor with 200 steps per revolution (1.8 degree)
// to motor port #2 (M3 and M4)
Adafruit_StepperMotor *myMotor = AFMS.getStepper(200, 2);

void setup() {
  AFMS.begin();  // create with the default frequency 1.6KHz
  myMotor->setSpeed(300);    //tried all different speeds?
}

void loop() {
  myMotor->step(1000, FORWARD, SINGLE); 
  myMotor->step(200, BACKWARD, SINGLE);
}

When this code runs the motor does not sound healthy at all and the current goes straight up to the limit set on the PSU. I have had the same issue with the Adafruit V1 motor shield, but it's fine with the Arduino V3 motor shield?

There are no other connections to the Arduino, just 4 wires for the motor and 2 wires for the PSU.

Any help would be appreciated.

Chris

User avatar
adafruit_support_bill
 
Posts: 88144
Joined: Sat Feb 07, 2009 10:11 am

Re: Motor Shield V2 High Current

Post by adafruit_support_bill »

The published specs are somewhat non-standard. Typically the rated voltage is specified such that it will yield the rated current when applied as holding current. In this case, they specify a range of voltages - the lowest of which (12v) will draw more than 7A if applied as holding current.

This motor has a very low coil resistance (1.65 ohms) and appears to be designed for use with a chopper drive. You will not be able to drive it with our Motor shields (V1 or V2).

ChrisBTW
 
Posts: 4
Joined: Fri Apr 04, 2014 6:10 am

Re: Motor Shield V2 High Current

Post by ChrisBTW »

Many thanks for your reply.

I am also planning on using this;
http://www.active-robots.com/motors-whe ... epper.html

Will this work with your motor shield?
Recommended Voltage 12 V DC
Rated Current 1.6 A
Coil Resistance 1.7 Ω

I am not using the stepper in a 'holding torque' setting, as I am able to release between movements. So there is no prolonged current draw.

Many thanks,
Chris

User avatar
adafruit_support_bill
 
Posts: 88144
Joined: Sat Feb 07, 2009 10:11 am

Re: Motor Shield V2 High Current

Post by adafruit_support_bill »

I guess the UK conventions for stepper specifications must be different. That one also works out to be 7A (12v / 1.7ohms = 7A via Ohm's Law).

The Adafruit motor shields are of the "constant voltage" type. The load at the end of each step will be purely resistive and the current draw will be simply V/R. "Constant current" or "chopper" drives will start the step at a higher voltage, but limit the current to safe levels toward the end of the step.

We do carry the Synthetos "gShield" which has current limiting. https://www.adafruit.com/product/1750
www.pololu.com also carries a range of constant-current driver boards.

Locked
Please be positive and constructive with your questions and comments.

Return to “Arduino Shields from Adafruit”