Issues with EasyDriver Stepper Motor Driver breakout board

Hi,

I recently purchased an EasyDriver Stepper Motor Driver breakout board, and I’m having some trouble getting it to work. I uploaded a PDF of some oscilloscope waveforms to http://www.zachrattner.com/oscope.pdf, which I will refer to in this post.

I have an Arduino Uno generating a clock signal for STEP and holding DIR high. The GND on the same header is connected to the Arduino’s ground. Reset is pulled to +5 VDC coming off the Arduino. The four A, A’, B, B’ signals are going to the corresponding four lines on a six-wire stepper motor. The board is powered with a 9V battery.

When I have the motor unplugged from the driver and probe the output, I see a clean clock signal peaking at around 7V. This is the first image in the PDF. The motor I’m using claims to be 12V in the title of its Jameco page, but 7V in the specification section, so I’m not sure 7V is the correct voltage. (See http://www.jameco.com/webapp/wcs/stores … 171601-1.) However, I was able to drive the motor directly from the Arduino with 5V A, A’, B, B’ signals, so I don’t think the discrepancy between 7 and 12V would cause the issue I’m seeing.

As soon as I plug in the motor, the clean clock signal changes to the second image. The third image shows a close-up view of the noisy section of the second image. It almost looks like there’s some kind of feedback responding to the clock signal.

Does anyone have any ideas what the cause could be? I even tried a different stepper motor, and got the same result. When I bypass the stepper motor driver board and connect the motor directly to the Arduino, I can control the motor. However, I can’t draw enough current to make the motor really useful without the board.

Thanks,

Zach Rattner

Zack,

Thanks for contacting me at my e-mail addresses. I will answer your question here, so that as many people can see the answer as possible.

One quick question - when you say Reset line, which reset are you referring to? The one on the EasyDriver? If so, you do not need to connect it up as it has an internal pull-up resistor on the EasyDriver board.

Your motor has 120 ohm coils. The EasyDriver will be trying to put 7V across them, which should mean that the coil current is about 58mA. The EasyDriver draws about 70mA itself, and it will have both coils engaged, for a total power draw of about 190mA. Your Arduino will also add to that draw. That is, I believe, too much current to pull from a 9V battery.

I can see from your scope trace that when you have the stepper connected, the output of the driver dips to 5V, as compared to 7V without the motor. This tells me that your battery is really sagging under the load. The EasyDriver needs at least 7V or so at its input to operate, so you should put your scope on your 9V battery terminals and see what the voltage dips down to when it tries to power the motor.

As far as the very fast on/off in the scope shot - that is expected behavior. The EasyDriver is trying to regulate the current to the motor. It is a design called a chopper driver, and it ‘chops’ the voltage to the motor to limit the current. It does this to create the microsteps. Your input voltage is too low and your motor resistance is too high, so the EasyDriver won’t be able to effectively regulate the current to the motor, thus you will not get any microsteps. It will basically operate in single step mode, but you will need to send 4 STEP pulses for ever 1 step of the motor.

My suggestion is to try this same experiment but with a very nice bench top power supply set at 12V. See what you get then. If it still doesn’t work, send some more scope shots and we can diagnose from there.

If it does work, then you will need to figure out a new power supply system for you design, as a 9V won’t do the trick. Stepper motors are almost never used for battery powered designs because they are incredibly wasteful of power.

*Brian

Thanks for the quick response, Brian. I connected the motor to a steady 12 VDC signal, and it works perfectly now. Thanks for taking the time to explain what went wrong.

Zach