I have a stepper motor with four wires coming out of it and its set up exactly like in this picture with a Big easy driver except I’m not connecting “En, M1, M2 and M3”:
I had it working like this yesterday and then I bought a bigger power supply and disconnected everything, and today when I’m trying to reconnect it again (with the original 12V power supply that I know should be working) I can’t get it to rotate, is simply makes a noise like it’s trying to go back and forth without succeeding.
The sound its making is quite similar to what can be heard in the first 10 seconds of this video I found when googling similar problems:
I feel like I have tried switching places on almost every wire and turned the current knob in every possible combination now almost. Does anyone recognize this problem and know what could be causing it? Is something short-circuiting on the driver? And in that case which two pins could cause this?
Sorry I’m a bit new to all of this so I’m not sure what vcc is, I have a 230V to 12V converter inserted into the Arduino through the connection next to the USB port, then I take the voltage from the Vin port of the Arduino and connect to M+ on the big easy driver if that is what you mean?
It would be very much better to draw (with pencil) a diagram of your exact set of connections (including how the Arduino is powered) and post a photo of the drawing.
You might try this simple stepper code. I believe the BigEasydriver defaults to microstepping so you will need to increase the numbers of steps to compensate.
Robin2:
It would be very much better to draw (with pencil) a diagram of your exact set of connections (including how the Arduino is powered) and post a photo of the drawing.
You might try this simple stepper code. I believe the BigEasydriver defaults to microstepping so you will need to increase the numbers of steps to compensate.
Ok I’ve tried to draw the situation now. Not sure if its helpful or not, its basically the same picture but drawn by me instead But the thing is: I don’t have any information about what the wires coming out of the stepper do. So all I’ve done is matched the colors of the wires to what I could see in the picture I posted, and they are all the same except the last one, I have a yellow wire and on the image they have a black one. So maybe I’m doing something wrong in the connection of these wires? I don’t think the code is the problem because I used the same code yesterday when it worked, and I’ve tried changing the step time up and down to see if it changes anything, but all that it does is change the sound a bit from the stepper.
Edit: I think I made a mistake. I have a black wire coming from the stepper, and in the tutorial image they have a yellow one! So the one I wrote yellow next to should be black
Hmm, sort of I guess. But I normally have less movement of the shaft, if I change the speed in the code and turn on the current knob sometimes I also have some movement like in the video, but mostly it just makes noises and vibrates without moving. And my motor is a bit bigger so I guess its natural if it makes slightly different sounds.
Update: I found a wire diagram for my motor, It seems black and green wire is on one coil and red blue is on another. Does that mean that black+green should be connected to the A slots on the driver and red+blue on the B slot?
Update again: I have a smaller easy driver that I tried to hook the motor into, and it works on that driver. But as soon as I hook it back into the big easy driver the shaking back and fourth comes back… So is the driver completely dead when this happens?
It looks as if you are trying to power the stepper from the Arduino Vin - don't do that. Give the stepper driver its own power supply. That may well be the reason why the BigEasydriver won't work - it draws too much current from the Arduino. It will quite likely damage the Arduino.
The wires for one coil should go to the A connections and the wires for the other coil should go to the B connections.
You have not posted a link to the datasheet for your motor. Be careful that it does not demand more current than the small Easydriver can provide.
It looks as if you are trying to power the stepper from the Arduino Vin - don't do that. Give the stepper driver its own power supply. That may well be the reason why the BigEasydriver won't work - it draws too much current from the Arduino. It will quite likely damage the Arduino.
The wires for one coil should go to the A connections and the wires for the other coil should go to the B connections.
You have not posted a link to the datasheet for your motor. Be careful that it does not demand more current than the small Easydriver can provide.
...R
Ok, I was under the impression that everything up to 12V through the Vin was ok, but maybe current also needs to be considered. Anyway, I’ve tried powering it externally now without Vin and it still won’t move. And I also have a smaller stepper motor which I tried plugging in to the big easy driver and it too won’t move – but will on the small easy driver. So sadly I strongly suspect that the big easy driver is broken.
So I’m thinking about buying a replacement for it today. I don’t have a lot to choose from in the stores around here but I did find this thing (VMA03 motor shield):
Do you think that would be better than a big easy driver? I don’t fully understand what the difference is between a motor shield and a motor driver which is a bit confusing, but is says in the text that it powers steppers so I guess it should work right? Or is there a benefit to the easy drivers?
The BigEasydriver would be far far better than that Velleman board which is just a h-bridge driver primarily for DC motors.
Get another BigEasydriver if you believe yours is broken. The Pololu A4988 and Pololu DRV8825 are alternatives. But make sure the board is suitable for the current required by your motor - you still did not post a link to the motor datasheet.
Ok, I was under the impression that everything up to 12V through the Vin was ok, but maybe current also needs to be considered.
For Vin, current is much more important than voltage - assuming that the voltage is within the Arduino's acceptable range.
Robin2:
The BigEasydriver would be far far better than that Velleman board which is just a h-bridge driver primarily for DC motors.
Get another BigEasydriver if you believe yours is broken. The Pololu A4988 and Pololu DRV8825 are alternatives. But make sure the board is suitable for the current required by your motor - you still did not post a link to the motor datasheet.
...R
Well that sucks since I actually just went out and bought the Velleman board! I have gotten it to turn the stepper motor (finally!), which I guess would confirm that the problem was in my big easy driver. But may I ask how you mean that the big easy driver is “far far better”? If it is possible to run and control the stepper motor, how can one be better than the other?
The thing I’ve preferred with the motor shield compared to the easy driver so far is that no soldering is required on it, and I suspect it was my sloppy soldering that somehow ruined the big easy driver. But I am also getting the feeling (not sure if its correct or not) that the stepper is weaker when connected to the shield compared to when it was working on the big easy driver, it stalls at a lot of speeds that worked on the easy driver.
The only data sheet/information I have on my stepper motor is the table on the add where I bought it and that it is a nema 23. Here is the link if you want to see:
petters:
But may I ask how you mean that the big easy driver is “far far better”? If it is possible to run and control the stepper motor, how can one be better than the other?
Answer
But I am also getting the feeling (not sure if its correct or not) that the stepper is weaker when connected to the shield compared to when it was working on the big easy driver, it stalls at a lot of speeds that worked on the easy driver.
As far as I can see that motor draws 2.8 amps per coil which is well beyond the capability of a BigEasydriver. You need to get a stepper driver that can provide 3amps or more per coil - unfortunately more expensive. You could try a TB6560 board but there are rumours of indifferent quality control.
As far as I can see that motor draws 2.8 amps per coil which is well beyond the capability of a BigEasydriver. You need to get a stepper driver that can provide 3amps or more per coil - unfortunately more expensive. You could try a TB6560 board but there are rumours of indifferent quality control.
...R
I’ve read it now, pretty great info!
But if the motor datasheet says 2.8 amps, isn’t that the maximum current that the motor can handle? It would be possible to run it at lower amps and just have it a bit weaker right? I’m pretty sure that is the case because the power supply I’m using can’t deliver 2.8*2 Amps and the motor appears to be working. Or could I be damaging something by not supplying enough power?
And I think the motor is quite overpowered to what I want to use it for anyway, I don’t need it to take much load I just need it to move and have good control over it at the moment. And it says in the datasheet for the Velleman board that it can handle up to 2.5 A per channel, to me that doesn’t sound too far away from the 2.8.
At the moment I’m supplying the power from a battery eliminator that only have fixed combination settings of voltage/current it can supply. So if I chose to deliver 12V it can handle up to 2.5A, but if I turn it up to 24V the maximum current is only 1.65 Amp (and there are a lot of settings in between). What would be most important to supply if I don’t need the motor to spin very fast or take a heavy load, just work as accurately as possible with high torque. High voltage+low current or the opposite?
Yes, you can probably run the motor with a lower current.
Stepper motors require pulses of current. The electrical characteristics (inductance and back-emf) mean that it takes time for the current to rise after a pulse is "switched on". For a given supply voltage at some speed the current will never reach its max because the pulse is too short. However, at slow speeds - with longer pulses - it will reach the max.
Stepper motors draw their full current even when stationary.
A specialized stepper driver can drive the motor with a very high voltage so that the current rises quickly to the full permitted level even in short pulses. It also has the ability to prevent the current rising beyond the set limit so that the high voltage does not damage the motor.
The h-bridge drivers like the Velleman do not have the ability to limit the current so they cannot be used with a high voltage power supply.
Separately, you cannot limit the current by using a low-current power supply. The motor will try to draw its full current and may damage the power supply. Or the power supply voltage will fall and won't be sufficient.
Robin2:
Yes, you can probably run the motor with a lower current.
Stepper motors require pulses of current. The electrical characteristics (inductance and back-emf) mean that it takes time for the current to rise after a pulse is "switched on". For a given supply voltage at some speed the current will never reach its max because the pulse is too short. However, at slow speeds - with longer pulses - it will reach the max.
Stepper motors draw their full current even when stationary.
A specialized stepper driver can drive the motor with a very high voltage so that the current rises quickly to the full permitted level even in short pulses. It also has the ability to prevent the current rising beyond the set limit so that the high voltage does not damage the motor.
The h-bridge drivers like the Velleman do not have the ability to limit the current so they cannot be used with a high voltage power supply.
Separately, you cannot limit the current by using a low-current power supply. The motor will try to draw its full current and may damage the power supply. Or the power supply voltage will fall and won't be sufficient.
...R
Did I understand you correctly if I think what you are saying is that if I am getting the motor to run on the Vallman shield regardless what power supply I’m using then the motor has to have drawn its full amp (2.8 + 2.8 Amps)? If so then that is more than the shield is rated to handle and it is much more than my power supply says it can deliver. Could I be damaging the shield or motor by doing this?
And if not, then I don’t understand why you say that the current cannot be limited by using a low-current supply, because unless the motor right now is drawing 2.8+2.8A then I am doing that right now am I not?
And if I buy a new big easy driver, will it automatically limit the current to 2amps per coil on my stepper so that it will be safe to use? Or could a too powerful motor destroy the driver? I did notice that when the big easy driver was working it got very hot, but maybe that’s normal since they sell heat sinks and so on for them.
It's not easy to answer your question because you don't seem to have a clear understanding of volts, amps and resistance. Ohms law says that volts = ohms * amps (V = RI).
You have a motor with a coil resistance of 0.83ohms and a maximum permitted current of 2.8amps. That means that you will get the full current with 2.3volts if the motor is stationary. A higher voltage will cause a greater current to flow and the motor will overheat. And stepper motors spend a lot of their time stationary.
That is one side of the picture.
Now look from the other side.
Suppose you have a 12v 1.5amp power supply. If the motor receives the full 12v it will try to take 14 amps - but they are not available. It will appear as if the power supply has been short-circuited. If the power supply has over-current protection it will probably shut down completely. If not it may be overloaded and let the smoke out.
Things may be a little more complex with the Velleman board as it probably "wastes" some of the voltage so that the voltage for the motor coming out of the board is not as great as the voltage going in from the power supply.
The purpose of specialized stepper drivers like the BigEasydriver (BED) is to keep things in balance. If the current to the motor rises above the set limit the electronics briefly cut it off - this happens thousands of times per second. On the BED there is a small potentiometer that you use to set the maximum current that it will allow in the motor coils. You can set that to 1.5amps (approx) and maybe that would be enough for your project. I don't know if the BED (or the Pololu A4988) can provide 2amps continuously without an added heatsink and fan.
Robin2:
The wires for one coil should go to the A connections and the wires for the other coil should go to the B connections.
Very helpful that you point that out, because Pololu shows the wiring wrong on some stepper motor diagrams(!) and so mine were just twitching around until I read your comment.