Continue to Site

Welcome to our site!

Electro Tech is an online community (with over 170,000 members) who enjoy talking about and building electronic circuits, projects and gadgets. To participate you need to register. Registration is free. Click here to register now.

  • Welcome to our site! Electro Tech is an online community (with over 170,000 members) who enjoy talking about and building electronic circuits, projects and gadgets. To participate you need to register. Registration is free. Click here to register now.

Question about stepper motors, controlling and control

Jimmy 25

New Member
Hello,

For example, I would like to use a NEMA17 stepper motor for various handicrafts. Matching drivers. But I have problems with the current and voltage information.

I find the voltage for the motors to be 3 to 12 volts and the current to be 0.3 to 2.5 amps in the sales information at the large dealers.

And there are the well-known small drivers, such as DRV8825, right through to larger modules with multiple outputs.

For some of these motors I find information in the instructions from 3 volts up to 2.5 amps and fed with 12 volts in conjunction with a DRV8825. That doesn't fit, does it? Ok - with PWM you can also control high _performances_ with "small" chips. So it's still not clear to me how to interpret this engine information.

The providers may mean that you should set the driver to 3 volts if they specify 3 volts for the motor. Or is this the real voltage for the engine? In the test, one of my motors draws over 2 amps from the power supply at 3V DC when I "energize" a winding.

I guess I can't hang it on a driver powered by 12 volts? The same motor in my Mega This stepper motor matter is still a bit of a mystery to me.
What do I have to pay attention to now? Apart from dimensions, power, torque, etc. I'm just interested in very simple testing using Arduino and the usual small drivers.
 
Stepper motor drivers will use PWM to limit the voltage. It is perfectly possible to drive a 3 V stepper motor with a 12 V supply as the PWM controller will not provide more than 3 V on average.

This is often done because the 12 V (or higher) supply will make the current change faster, allowing the steps to happen faster and the motor to turn faster when required.
 
The motor winding current is controlled, rather than voltage.
If the current is limited appropriately, the voltage takes care of itself.

If you look at stepper driver modules, all the settings and calibrations for motor power relate to current. The maximum current should be specified in the data for any decent quality stepper - you can run it any anything up to that, but lower current keeps the motor temperature down.

The maximum supply voltage is pretty much only limited by the driver circuit safe working voltage.

If you want to control a stepper with simple transistor switches or darlington drivers, then you can use a ballast resistor from each winding centre tap to the positive power. The resistor value should be calculated to give an appropriate current - however this method means the resistors are dissipating (and wasting) a lot of heat & power..

Proper PWM drivers act like switch-mode PSUs, and dissipate a fraction of the power ballast resistors would.
 
The Arduino family has a CNC shield with sockets for DRV8825 sub-boards with heatsinks for 3 or so channels. The shield then uses a common trim pot to limit current. 2A is about right and sometimes the boards squeal in the magnetics or overheat so don't under-design the thermal heatsinks and pay attention PE GND for USB interference. I wasn't fond of the 2 wire cables and wondered about EMC issues. But for a $250 CNC kit, Banggood has some nice options mostly using STM32's with Gcode over USB.

I swapped out their STM32 card for an UNO+CNC shield and found GRBL Panel open software very remarkable.

It's hardly worth the effort to bit bang the stepper motors.
 
Stepper motor drive now traditionally use a Voltage supply quite a bit higher than the motor plate rated value, the important thing with steppers is to maintain the exact plate rated current throughout the rpm range.
This can be done with a translator IC before the drive. such as a L297.
 
DRV8825 regulates the current flowing through the motor windings and controls the motor's movement. The voltage supplied to the motor by the driver can be higher than its rated voltage. If you have a NEMA17 stepper motor with a rated voltage of 3 volts and a current rating of 2.5 amps, you can still use it with a driver powered by 12 volts. For further clarification, please take a look at the DRV8825 datasheet.

By the way, if you ever wonder when to choose a stepper and when to choose a servo, this write-up may help you: https://www.nextpcb.com/blog/stepper-vs-servo-motors-a-comprehensive-comparison
 
The Arduino family has a CNC shield with sockets for DRV8825 sub-boards with heatsinks for 3 or so channels. The shield then uses a common trim pot to limit current. 2A is about right and sometimes the boards squeal in the magnetics or overheat so don't under-design the thermal heatsinks and pay attention PE GND for USB interference. I wasn't fond of the 2 wire cables and wondered about EMC issues. But for a $250 CNC kit, Banggood has some nice options mostly using STM32's with Gcode over USB.

I swapped out their STM32 card for an UNO+CNC shield and found GRBL Panel open software very remarkable.

It's hardly worth the effort to bit bang the stepper motors.

Curious, the GRBL panel SW has not had any releases since 2018, I am newbee to
CNC, is there any other folks with more enhanced active work going on that you may
be aware of ?


Regards, Dana.
 
The Duet3D reprap-based firmware is very actively updated. That supports CNC & Robotics modes as well as all common 3D printer mechanics.

 
Curious, the GRBL panel SW has not had any releases since 2018, I am newbee to
CNC, is there any other folks with more enhanced active work going on that you may
be aware of ?


Regards, Dana.
GRBL Panel was flawless for what I needed when I used it then with high level macros and low level acceleration and velocity max constants with curve fitting, jog and Absolute or relative motion code.
 
But if want to go from CAD to Grbl that’s a file import from a higher level App. Grbl code is similar to Gerber code for PCB. It all depends what user interface you want. You don’t want to control lowest level stepper codes, rather absolute position and seek profile for the entire routing path.
 
Sir, could you just write in short about the problems?
Just a couple of issues the statement that servo's have lower torque at low speeds is false, as the typical Servo with PID feedback and transconductance mode drive, The torque is typically maximum at zero RPM's.
The term servo's are small devices?
They go to typically as high as 5hp and higher in some industrial CNC M/C's ?
No real description of the similarity of AC 3ph PM motors and BLDC, with the only difference being commutation.
Description of a BLDC motor lacking.
There were a couple of others!
 

Latest threads

New Articles From Microcontroller Tips

Back
Top