When working with dev boards, such as those made by Arduino and the like, working with hobby style servos is quite straightforward. DC motors, while they will need some intermediate relay/transistor/opto-isolator for control, still only require a single output from your Arduino. Steppers, however, require a bit more hardware and programming to get them to work correctly. You can see some of their capabilities, as well as my struggle to get a 28BYJ-48 motor to work with a ULN2003A driver in this post.
While not exactly an apples-to-apples comparison—as the 28BYJ-48 is a unipolar motor—in order to drive NEMA 17 4-wire bipolar stepper motors that I’d purchased for another project I decided to try out the A3967 Easy Driver board version 4.4. These boards can work with motor voltages of up to 30V, and a microcontroller input can be set to 3.3V or 5V depending on your needs. There are quite a few input pins, but some can be set and left at certain states as needed, and the pins’ binary nature means that it can be controlled by nearly any microcontroller.
The newest 4.5 version is available here on Sparkfun, however, I purchased a 4.4 board off of eBay. While much cheaper, I had some trouble setting it up and initially questioned this decision. As you’ll see further into the article, it wasn’t the board at all, but it’s very easy to blame the new part for your problems!
Setup and Troubleshooting
I set the board up per instructions found here, using an Arduino Nano instead of the Sparkfun RedBoard. Feeding the motor input was a 12V, 2A supply that I had left over from another project via a breadboard. Nothing, however, seemed to happen, and after attempting to correct my apparent error I ended up damaging my Arduino Nano. I then switched to an Arduino Uno, and even tried a new Easy Driver board with no better results.
I did measure the input voltage going to the board, which read at 12V when disconnected, and at nearly 0 when connected, varying quite a bit. I thought this might have something to do with the circuitry onboard, but when swapped out for a 6V, 2A supply, all of a sudden, a red light on the board came on and things worked correctly. I tested it with the tutorial’s sample code and it did indeed rotate as commanded through the serial interface.
The stepper did seem to stutter somewhat when stepping. This type of behavior is supposedly addressed by the adjustable potentiometer on the board, which sets the current output to the motor at between 150mA and 750mA. My particular stepper is spec’d at 400mA, which works out to 250 mA from the minimum pot value, or 42 percent of the maximum rating. I placed the pot at a roughly 50 percent value—close enough it would seem—and also obtained a power supply that could distribute 12V at 10A if needed. “Magically,” the stepper worked very smoothly in default stepping mode, though the 1/8 stepping setting still seemed a bit to vibrate.
After some more experimentation, I found that with this good 12V supply, whether the output was at 50 percent, or even one of the extremes, the stepper worked quite well. I suppose the lesson here is don’t forget the basics when trying out a new component, and don’t rush to blame it for your problems.
A Great Tool for Your Stepper Challenges
Besides being able to set the current to your motors, the device also lets you set up the board for full/half/quarter/and eighth stepping, as well as forward and reverse functions. Once your (potential) power supply issues are taken care of, using this board is extremely easy. While I haven’t yet tried it in this setup, the AccelStepper library used in stepper post linked above is compatible with these drivers. This would potentially let you take this functionality even further. After some initial headaches, I’m quite pleased with this device, and it should be a great tool to have for projects to come!
Jeremy S. Cook is a freelance tech journalist and engineering consultant with over 10 years of factory automation experience. An avid maker and experimenter, you can see some his electromechanical exploits on the Jeremy Cook’s Projects YouTube Channel!