or a link to the datasheet for your stepper motor
or the type of stepper motor driver you are using
or details (volts and amps) of the stepper power supply
Is your program accelerating the stepper motor, or expecting it to jump from zero to full speed?
this is the programme we are using right now to test different speeds:
#include <SpeedyStepper.h>
const int MOTOR_STEPPER_PIN = 3;
const int MOTOR_DIRECTION_PIN = 2;
const int STEPPER_ENABLE_PIN = 7;
SpeedyStepper stepper;
void setup() {
// put your setup code here, to run once:
pinMode (STEPPER_ENABLE_PIN, OUTPUT);
digitalWrite (STEPPER_ENABLE_PIN,LOW);
stepper.connectToPins(MOTOR_STEPPER_PIN, MOTOR_DIRECTION_PIN);
Serial.begin(9600);
}
void loop()
{
// put your main code here, to run repeatedly:
stepper.setSpeedInStepsPerSecond(400);
stepper.setAccelerationInStepsPerSecondPerSecond(400);
stepper.moveRelativeInSteps (400);
while(true);
}
We’ve also tested a lot of different programmes, and we always get the same problem with the speed…
The current is 2A
The volts is 24V
The motors start to vibrate and the output axel stops spinning at 1.3 kHz on 400 steps per revolution
I will provide links with the where we bought all the different components and look through the specifications so you can create your own picture about it:
We can try changing the speedystepper library, but we've tried several different ones and it's still doesn't work.
We are also trying with an oscilloscope, and when we produced over 1.3 kHz it started vibrating, and that's the steps per second.. and I guess 400 is 2x microstepping.
We want to be assured that the motor is able to make 1000 rpms, as the specifications says, but what we need it to do for our project is around 550-650 rpms.
bergan:
We want to be assured that the motor is able to make 1000 rpms, as the specifications says,
For high speeds you should use single stepping, not microstepping.
You have not said what happened when you tried a slower acceleration rate, or when you attached a load to the motor (for example a flywheel) to damp any resonances.
Flywheels don't normally damp resonances, just lower their frequency. Rubber belts damp resonances, rubber-padded couplers damp resonance, physical damping requires a mechanically lossy material or friction.
Microstepping reduces resonance and vibration and is normally much better - however if you can't generate
pulses fast enough you may be forced to use full steps, which will be a problem with resonance, typically limiting real-life performance.
The normal limiting factors for performance with a stepper driven from a proper driver is the supply voltage
to the driver and the inductance of the motor. Lower inductance motor better, higher supply voltage better.
And don't use fullsteps if you want performance unless the system is very well damped mechanically.
An unloaded stepper is the worst case for resonance, note, and I would expected such to stall or stutter on
full steps at its resonant speed.
Are you using using MOSFET outputs to drive the motors? If not you should consider them, you are probably loosing about 2.8 volts because of the darllington outputs in the drivers. More information would be helpful. NEMA 23 and NEMA 17 are frame sizes, that tells us nothing about the power requirements.
We tested a lot of different acceleration rates, different kind of steps and so on, and still, it starts vibrating and stops turning
We measured the pulses with two different oscilloscopes, and we could see that the signal into the driver is perfectly fine, with perfect squares as we want it
But the output signal from the driver towards the motor is unbelievable ugly.. it's everywhere and you can see the pulses flipping all the time plus that the frequency grows and shrinks all the time
They are wired from the arduino through different drivers because of two different kind of motors..
In this case, you don't need to know the code... it doesn't matter which code we are trying, motors still starts to vibrate when they come up to the speed of 120 rpms..
The speed can increase, and you can hear the frequency increase, but the motor starts spinning in that case
We simply do not believe that you have "right amount of current, voltage and frequency", nor do we believe that the mysterious code you tried should have worked, or that you wired everything correctly, or used the right motors, right motor power supply, right motor drivers, etc.
For informed help, please read and follow the directions in the "How to use this forum" post.
So I'm gathering you can get the motors to spin slowly, but as the speed increases the motor eventually stalls and just sits and buzzes annoyingly... If I'd put in my 2 cents. not enough voltage... as you spin a stepper faster and faster it's back EMF increases to the point you can't make torque anymore and it stalls... Additionally if you're going straight from no speed to 120rpm that'll not work there needs to be a ramp up of speed over time.
Cheetor:
So I'm gathering you can get the motors to spin slowly, but as the speed increases the motor eventually stalls and just sits and buzzes annoyingly... If I'd put in my 2 cents. not enough voltage... as you spin a stepper faster and faster it's back EMF increases to the point you can't make torque anymore and it stalls... Additionally if you're going straight from no speed to 120rpm that'll not work there needs to be a ramp up of speed over time.
That's a good idea, but the thing is that we measured all the voltage and current, and we have the right amount for that motor.. we have also measured the frequency, and that's what it's supposed to be.
We have measured a lot, and also tried with different amounts of voltage, current and frequency, and nothing works. Our conclusion is that there is something wrong with both our drivers.. The signal output from these is everywhere. They don't follow the right pulses it should and so on
What type of driver are you trying to use?. Some can be really tricky to get set up just right...
Additionally a current and voltage waveform from one of the phases of the stepper would be super handy.
Cross-posting is against the rules of the forum. The reason is that duplicate posts can waste the time of the people trying to help. Someone might spend 15 minutes (or more) writing a detailed answer on this topic, without knowing that someone else already did the same in the other topic.
Repeated cross-posting will result in a suspension from the forum.
In the future, please take some time to pick the forum board that best suits the topic of your question and then only post once to that forum board. This is basic forum etiquette, as explained in the sticky "How to use this forum - please read." post you will find at the top of every forum board. It contains a lot of other useful information. Please read it.