Stepper Motor Tester for the Arduino

From OpenCircuits
Jump to navigation Jump to search

This is a project for the Arduino that is almost the same as PIC Stepper Motor Tester‎ which is for the PIC. The page Stepper Motor Demonstration and Tester is general information for both the Arduino and PIC Version. The code is now working and available from russ_hensel. Email for more info. This page will be added to soon.

Name: Arduino Stepper Motor Demonstration and Test Project

  • Status: still developing ( on back burner ), but is working. Also a version for the PIC
  • Technology: Arduino supplemented with a ULN2803
  • Author: russ_hensel ( where you can find an email address to reach me )
  • Summary: An Arduino project that operates a stepper motor under the control of a PC running a terminal program.


An Arduino Really Bare Bones Board, but pretty much any Arduino should do. To increase the drive to the motor I used a ULN2803 which is simply an array of Darlington transistors and diodes to be used as a low side switch for each motor winding. There are other similar chips around or discrete devices can be used. I run the pic, on 5 volts, and a larger voltages for the stepper, up to the limit of the driver. ( the UNL2803 is good for 50 v at .5 amp as a switch ) and the rating of the stepper motor. If you have a high power motor you may want a driver with more guts, Just put in some substitute. Coil drive is on or off there is no PWM involved here. Note that the hardware has substantial uncommitted resources. You could easily drive another motor for example. Also some of you may want to put some pull up or down resistors on some of the uncommitted resources.


See the schematic for PIC Stepper Motor Tester and just use the UNL2803 section. Use any digital output ports you like ( they need not even be on the same port), you can set this up in the header file ( ).

Notes on terminal program set up.

  • Baud rate should be 19.2K 8N1
  • Most terminal programs can be set to treat a carriage return as a carriage return line feed. Do it.

Some terminal programs will not transmit in lower case ( all our commands are lower case ) unless specially set to do so. Set it to allow lower case.


The zip file contains the entire project. Unzip into a directory and open in arduino.exe. Check the header file () and adjust the #defines for .... to suit yourself. After compiling my compiler reports something like:

Memory Usage Report

  • .....


comming soon ..... If you want the most up to date version, email me to see if there have been some unposted revisions. russ_hensel

Comment, Questions, Contributions?

Email me russ_hensel, or use the talk page for this topic. All feedback is welcome.