The first part of my auto-point satellite antenna (RoboSat Project) is to get some stepper motors that can be controlled by an Arduino UNO. I decided to use stepper motors for their accuracy and are readily available being used in many 3D printers and CNC machines. The knowledge base, open source code and help available is excellent. This Tech Tinkering post will be a general overview of steppers and how to drive them, I’ll deal with Arduino code in a later post.
Stepper Motors are great for a project that requires accurate movement with plenty of torque. They move in small steps via multiple coils within the motor. I’m using an Arduino UNO R3 to control two different size of stepper motors, NEMA 17 for the polarisation & NEMA 23 for the Azimuth and Elevation movement.
The NEMA XX numbers define standard faceplate dimensions (the spacing between the holes in mm) for mounting the motor. They do not define the other characteristics of a motor such as the number of step per rotation, current capacity or torque so therefore may not be interchangeable.
Driving a Stepper Motor
Due to the current drawn by the Steppers Motors you will have to use an external motor driver board. There are many inexpensive ones available from place like Adafruit or eBay. I am using an HY-DIV268N-5A purchased from eBay for about $15.
The pins on your Arduino will depend on your code but you will need to connect one side of the direction, pulse and enable on the motor driver to your Arduino UNO with the other connection to earth (ground).
HY-DIV268N-5A Dip Switches
You set the output current and the number of steps (resolution) is set by the dip switches on the side of the motor controller. Up for OFF and down for ON. It’s always good practice to make sure that your equipment is not powered up when you are changing the dip switches.