Arduino Motor Shield,Nema 23 and Heat Problem

Hi, I connected Ardunio Uno 3 and Arduino Motor Shield Rev 3. And then I connected a female jack to Vin and GND part of the shield to use 12V 2000 mA external power supply via adapter. Then connected 4 wired Nema 23 ( 360/1.8=200 steps, 2.3V and 2.8 A , 0.83 Ω motor) to motor shield (Red=A+, Blue=A-,Green=B+ and Black=B-)

It works few seconds then goes crazy and Motor shield gets hot even cant touch it. What would be the problem? All helps will be much appreciated

#include <Stepper.h>

const int stepsPerRevolution = 40; // change this to fit the number of steps per revolution
// for your motor

// initialize the stepper library on the motor shield
Stepper myStepper(stepsPerRevolution,12,13);

// give the motor control pins names:
const int pwmA = 3;
const int pwmB = 11;
const int brakeA = 9;
const int brakeB = 8;

int previous = 0;

void setup() {
Serial.begin(9600);
// set the PWM and brake pins so that the direction pins // can be used to control the motor:
pinMode(pwmA, OUTPUT);
pinMode(pwmB, OUTPUT);
pinMode(brakeA, OUTPUT);
pinMode(brakeB, OUTPUT);
digitalWrite(pwmA, HIGH);
digitalWrite(pwmB, HIGH);
digitalWrite(brakeA, LOW);
digitalWrite(brakeB, LOW);
// initialize the serial port:
Serial.begin(9600);
// set the motor speed (for multiple steps only):
//myStepper.setSpeed(500);
}


void loop() {

//Get Motor up to 500 speed and turn 300 steps / Total steps 350
myStepper.setSpeed(400);
myStepper.step(30);
myStepper.setSpeed(500);
myStepper.step(300);
//Slow Motor down and stop
myStepper.setSpeed(300);
myStepper.step(10);
myStepper.setSpeed(200);
myStepper.step(10);
//myStepper.setSpeed(100);
//myStepper.step(10);
//delay(1000);

//Get Motor up to 500 speed and turn 300 steps / Total steps 350
myStepper.setSpeed(400);
myStepper.step(-30);
myStepper.setSpeed(500);
myStepper.step(-300);
//Slow Motor down and stop
myStepper.setSpeed(300);
myStepper.step(-10);
myStepper.setSpeed(200);
myStepper.step(-10);
//myStepper.setSpeed(100);
//myStepper.step(-10);
//delay(1000);

//////////////////////////////////////////////////////

//Get Motor up to 500 speed and turn 200 steps / Total steps 250
myStepper.setSpeed(400);
myStepper.step(30);
myStepper.setSpeed(500);
myStepper.step(200);
//Slow Motor down and stop
myStepper.setSpeed(300);
myStepper.step(10);
myStepper.setSpeed(200);
myStepper.step(10);
//myStepper.setSpeed(100);
//myStepper.step(10);
//delay(1000);

//Get Motor up to 500 speed and turn 200 steps / Total steps 250
myStepper.setSpeed(400);
myStepper.step(-30);
myStepper.setSpeed(500);
myStepper.step(-200);
//Slow Motor down and stop
myStepper.setSpeed(300);
myStepper.step(-10);
myStepper.setSpeed(200);
myStepper.step(-10);
//myStepper.setSpeed(100);
//myStepper.step(-10);
//delay(1000);

}

Also this is the program

You can't drive a 3A 0.83 ohm motor from a 2A motor shield, you really need current-control for low-impedance stepper motors.

Think about it, you are trying to put 12V across 0.83 ohms and get 2.8A - doesn't have a hope of a good outcome.

Thank you . If I dont bother you I have 2 more questions.

1- Can I use 2 channel Relay module instead of Motorshield with Arduino Uno R3? And I only want few controls from stepper motor. For instance ; few rounds forward and then few rounds reverse. 2- Is there any product(current-control) that I can easily assemble to Uno without losing torque or speed?

This is a forum - many eyes to help solve problems, so you ask everyone, not one person.

You appear to have a high performance large bipolar stepper motor without any idea of what they involve. What are you actually trying to do? Have you estimates of speed torque precision and power? Have you sized the motor or just guessed what you need? Why a stepper at all - is open-loop motion control what you need?

Once you get to the 2A+ range or bipolar steppers then the options are industrial stepper drivers, which are more expensive than the motor itself.

I am sorry for causing problems. Of course I appreciate alot all helps. There is a project we are dealing with. It is all about mixing solutions. It needs torque around 1 nm . And this solution mixing procedur should not have steady rotating. I am posting a video of this motor while it is fed by my laptop's USB 3.0 port. I hope it will give an idea about what we are in need of.

View My Video

This is the correct video

View My Video

A smaller gear motor will give lots more torque at that sort of speed, for less power and size. Stiring solutions is not motion-control.

Ok, but I have last question. In this link a guy using Nema 23 3.2V 2.8A 1.1 Ohm 1.2 Nm 200 steps stepper motor with Arduino Uno+Motor Shield Rev 3 without problem.

http://www.reefcentral.com/forums/showthread.php?t=2416563

But I have this question appears in my mind. The only 2 differences with this guy we are usin 12v 2A power supply which is lower Amper than our motor and our motor has 0.83 Ohm . If we use 12v 3A external power supply can we get over this heating problem?

Can't be using a 12V supply(*), that would fry the motor and the motor shield. That site only mentions that you can use upto 12V with the shield, not that its being run at 12V.

And we don't know what actual current is being used either.

The way to sort out a motor drive system is this:

1) determine the mechanical load and requirements 2) size the motor - means work out what power and spec is needed, including gearing 3) find a suitable motor driver for that motor.

Often people just buy a motor and a motor driver first and run into problems...

(*) You can prove this easily: voltage to shield = 12V, voltage out to motor = 9V (L298 drops about 3V at full load current), therefor current in motor = 9/1.1 = 8A, but the L298 is only rated to 2A max with full heatsink, and motor rated at 3A - so something has to give.

Maybe you will get some useful information from stepper motor basics.

Simple advice - don't use an L298 based driver to control a stepper motor.

...R

Thank you for all your help. I removed MotorSHield REV3 and am looking for more suitable driver. I found this. Will it be able to work with 4 wire stepper motor smoothly without any heat problem?

This is a MOSFET Motor Driver with 3-12V 50 A.

No.

Did you read my postings? Particularly #2, #7?

You need either a current-controlling stepper driver capable of 3A (aka chopper driver), or a different motor.

I read and got new motor better suits this configuration. And I have few friends who hand me this kind of equipment after I asked them for whatever they ve got.

I used different motor. But I got this driver unit and wondered wheter it can be used with my stepper motor that you suggested to me to change. Now you answered as it cant be used so I will not. Thanks for your patience coz I couldnt have dealt with my kind :)

The way to approach choosing a motor is to determine the speed torque and power needed and other requirements, then choose the motor. There are lots of gear motors that will develop the torque you need and they can be switch on and off in either direction really easily.

So what are you requirements? Max torque, max rpm, duty cycle, etc etc...

Hi, I need at least 1 Nm torque and 200-400 rpm. This motor will work every 3 hour for 5 mins top.

I received a HY - DIV268N - 5A driver. Google says it is a chopper driver.

I am a ex-mathematician . If logic dont accept it then I wont too :) Programming an learning to write a program not so difficult for me but technical stuff hurts my brain :)

And I found something may be related to how that guy in the video succeeded to work with Uno+Shield+3.3V 3A stepper motor. For only learning reason, could it be choosing High SMPS power supply adapter helped him ?

Well if he used a MOSFET H-bridge and 3.3V computer high-current supply then yes, you could get it to rotate, albeit pretty slowly. But that's a very expensive way to get poor performance from an expensive motor when a $10 gear motor will be perfectly adequate to the task.

The only advantage to a stepper motor here would be the longevity (no brushes to wear out) and if there were an explosion hazzard (steppers don't generate sparks, DC motors do). Still a BLDC would probably do better in that case.

For 200rpm at 1Nm you need a 20W gear motor, likely 12V or 24V supply. With 24V motor you'll probably easily be able to drive if from most H-bridge boards.

This is the sort of thing (this is a little under-powered, but its not far off the spec). 1.5A at 24V, 200rpm (no-load), 0.9Nm:

http://www.ebay.de/itm/24V-DC-200-RPM-hohe-Drehmomente-Getriebe-Box-Elektromotor-Drehzahlreduzierung-/181633421417

You have had a calculation as 12/0.83 and the result was something close to 14A . I wonder if this result is the amperage of this motor's need at take off or it will be using this amount of amperage whole time while working?