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.

Speeding Up My Stepper

Status
Not open for further replies.

herring_fish

New Member
I can’t get my stepper motor to go very fast. The actual application description is listed here but it is not important.
View topic - 2 Axis Plankton Feeder • adafruit industries • Customer Support Forums, DIY Electronics, Open Source Hardware, Arduino

I have a very low mass to move but I need printer level speeds. I am using a 1A wall wart so that might be the problem but right now, I’m just pushing a piece of tape around. How do I get it to go faster?

The simplified code and result of the different setting that I used are listed below and the hardware that I have is all listed below that.

Code: Select all
Code:
    #include <Stepper.h>

    #define EN1_PIN 3
    #define DIR1_PIN 12
    #define EN2_PIN 11
    #define DIR2_PIN 13

    const int stepsPerRevolution = 200;         // change this to fit the number of steps per revolution for your motor
                                                                 // initialize the stepper library on pins 12 and 13
    Stepper myStepper(stepsPerRevolution, DIR1_PIN, DIR2_PIN);

    void setup() {
     
      analogWrite(EN1_PIN, 255);                 //>>>>>>With the other motor I bumped the voltage up to 9 and set these to 10 - 66
      analogWrite(EN2_PIN, 255);                 //>>>>>>per product support

    myStepper.setSpeed(150);                    // Example sets the speed at 60 rpm. >>>>>>>My max is 150
                                                               //>>>>>>>after that, it buzzes
      Serial.begin(9600);   // initialize the serial port
     
      // Change from divide-by-64 prescale on Timer 2 to divide by 8 to get
      // 8-times faster PWM frequency (976 Hz --> 7.8 kHz). This should prevent
      // overcurrent conditions for steppers with high voltages and low inductance.
      TCCR2B = _BV(CS21);                         //>>>>>>>Tried with and without this line
    }

    void loop() {
      // step one revolution in one direction:
      // Serial.println("clockwise");
      myStepper.step(stepsPerRevolution);
    }


I have currently:
>Arduino Mega 2560 >Rugged Motor Driver >Breakout Board Shield (Assembled) >BNC Sensor Shield (Assembled) >RTC/EEPROM board

>57BYG084/1.8 Step Angle/12V/4 phase/0.6A per/100ohm(500VDC)/20ohm per/Class B/25mH Inductance per/Rotor inertia 38g.cm2/holding torque 6Kg.cm
Spec. Sheet https://www.electro-tech-online.com/custompdfs/2011/04/162027.pdf
I also have this motor. I bought this because the driver board manufacture said that it was a good match for the price but I could get it to work. I don’t know what I was doing wrong. That is when I pulled out the motor above.
>23KM-K213-P7V/ 1.8 DEG./COIL: 3VDC/1.8 ohms/2.6mH,TYPE: 2 Phase Uni-Polar, 6 lead
Address of motor: 1.8 DEG. STEPMOTOR-MPJA, Inc.
 
Last edited:
To get the motor to go "fast" you need a good constant current stepper motor drive, preferably a microstepping one.

Then you need a reasonably high PSU voltage for the stepper driver and a resonably low inductance motor.

You probably also need a motor with excess torque to cover some of the torque drop off you will get at higher revs.

Also mechanical design is important.

Do you have any photos of your motor, driver and the mechanical device it is driving?
 
I'm sorry. One of the links had a return on it so it didn't work. I fixed it but here they are again.
**broken link removed**
This is the spec. sheet
https://www.jameco.com/Jameco/Products/ProdDS/162027.pdf
I was using 12 volts for this motor. Since it turns, I guess that I have it hooked up correctly. It turns about 120 rpm but when I set the speed higher than 150, it stops and just buzzes. (Please see code)


**broken link removed**
This is the link to the motor that I bought.
1.8 DEG. STEPMOTOR-MPJA, Inc.
This the motor pin out.
https://www.mpja.com/download/17276ms.jpg


This the link to my Rugged Motor Driver Shield.
Rugged Motor Driver
This is the board layout.
**broken link removed**

This motor was hooked up this way:
I went from left to right on the layout.
J1+ was Red
J1- was Yellow
J2- was Orange
J2+was Blue
I didn’t use Black or White
I ran it at 9Volts
I just hooked it back up and it makes a plus (but doesn’t go anywhere) about very second and a half.
 
As RB says, you need a high voltage supply. 24 V is often used. You then need to limit the current. That is often done with current feedback and PWM control of a full bridge for each phase.

You also need to accelerate and decelerate the motor. Your code is just starting at full speed.
 
Thank you,

So if i up the voltage from 12 to 24 should my RPMs go from 120 to 240? If so, that would probably be enough.
 
Well I found a Delta ADP-25HB AC adaptor. It says that it is:

30V=-=-=0.83A
That^^^is an approximation of the symbol linked below.
https://t0.gstatic.com/images?q=tbn:ANd9GcQtz2ElOjR32OD_Vxk31J_sVfS2IZ-KdI9V9AM0vfwN5bUC8xRngg

**broken link removed**

I also looked at several sights and finally found one that says that is was a 30VDC0.83A unit. So I guess that this is what I need? I sure hope so.

Oh! and when you say "...cut jumper J21...", do you mean drag something over the solder connector or cut it with a shape knight or something like that?
 
Last edited:
I read through the web page for your driver board and checked the schematic. I can't really tell whether (in stepper motor mode) it provides the feature of constant current or how many microsteps (if any).

I have the feeling it might just be a full step driver.

Have you checked how many STEP pulses it takes to make your motor do one revolution?

And like Diver300 said you really need to accelerate the motor speed to get it up to full speed. You can't just start it turning at top speed!
 
Having a higher voltage on its own will either burn the motor out, or if you use a higher voltage motor, that it will not be able to turn as fast as a lower voltage one.

To get a stepper motor to rotate quickly, the current in the coils has to start and stop quickly. That is done with a combination of low inductance windings and high voltages.

Low inductance windings have lower numbers of turns, so more current is needed. Also the voltage drop is smaller. That is why some stepper motors have very low voltages. However, that is the average voltage when the current is on, not the power supply voltage, which is a lot higher. Those motors are made for PWM (also known as chopper) power supplies.

https://ams2000.com/pdf/step101.pdf

That is worth a read if you want to understand stepper motors.
 
Status
Not open for further replies.

Latest threads

New Articles From Microcontroller Tips

Back
Top