This page features an inexpensive stepper motor driver that could be used to power slow speed projects on the layout or other hobby applications.
Based on the SN74LS194 - Bidirectional Universal Shift Register the circuit is designed to drive UNIPOLAR type stepper motors and provides only basic control functions - Forward, Reverse, Stop and Speed adjustment.
The only step angle for this driver is the design step angle for the motor.
The circuit is not complex and is cheaper than many dedicated driver/controller devices and the parts are easy to find.
For the purposes of this page the direction control function is selected by an ON-OFF-ON type toggle switch. This could be easily replaced by another method such as transistors controlled by a PC's parallel output port.
Speed control is by means of a potentiometer but the circuit could accept pulses or controls from other sources such as a push button or a simple computer interface. The direction could also be controlled by a computer interface.
This web page uses integrated circuits from the SN74LSxx family of TTL devices. It is not the purpose of this page to provide detailed explanations of how these devices work and an understanding of simple logic circuits would be helpful.
Do not be discouraged by this however as the circuit's operation is quite simple.
N.B. - Due to the lack of error detection or correction this circuit should not be used for application that require accurate step control or positioning accuracy. The circuit is intended for hobby use only.
The following diagram is for the main circuit of the motor driver.
A testing version is shown near the end of this page. It is laid out differently and shows the SN7474 in logic block form and LED's are used to indicate the motor coils being switched.
The blue line on the drawing is the path that the CLOCK pulses that drive the circuit follow.
The stepper motor would not be connected as shown on the schematic as the motors usually have a common and four coil leads.
Also, the filter capacitor at the power supply to the circuit would not be connected as shown.
The direction of this shifting is controlled by switch S2. When S2 is in the center OFF position the HIGH output state will remain in its last position and the motor will be stopped.
When the base of Q1 is LOW the shifting will be PIN 12 - 15 - 14 - 13 - 12 .etc.
When the base of Q2 is LOW the shifting will be PIN 12 - 13 - 14 - 15 - 12 .etc.
The direction of the pulse shifting determines the direction of motor rotation.
The following diagram shows the Stepper Motor Driver circuit with its circuit boards external connection terminals. The motor coils have been omitted from the diagram.
The next diagram shows the basic waveforms for the stepper motor driver circuit.
The next diagram shows a very simplified diagram of the step funtion of the 74194 chip.
The following diagram shows the stepping order of the inputs to ULN2003 Peripheral Driver for forward and reverse motor directions. Pin numbers are not indicated as this depends on the PCB layout.
Each positive pulse at the SN74194's - OUTPUT terminals turns ON one of the stepper motors coils.
The maximum RPM at which stepper motors will operate properly is quite low and the torque the motor can produce drops of rapidly as motor speed increases. Testing may be needed to determine the minimum values for R1 and C1 to produce the maximum CLOCK INPUT frequency for any given motor. Data sheets, if available, will also help determine this frequency.
Some motors can handle higher CLOCK input frequencies. This depends largely on the construction of the motor itself.
There is no minimum step speed at which stepper motors cannot operate. Therefore, in theory, the values for R1 and C1 can be as large as desired. There are practical limitations to these values though and the 555 timer data sheet should be consulted for more information.
Provision has been made on the printed circuit board to change the values of R1 and C1 through external connections. It will also be possible to inject CLOCK pulses through these connections for external step control.
The switch was connected across the timing capacitor as this did not produce output noise problems and was easier to externally connect to the circuit.
S1 could be replaced by an NPN transistor for electronic control of the CLOCK.
It would be best to pass any external input pulses through the 555 timer chip first. This possibility has been provided for on the printed circuit board.
The First CLOCK pulse occurs when power is applied to the circuit (the OUTPUT of the 555 timer will go HIGH). DIRECTION control becomes active on the Second CLOCK input pulse. If a direction is selected the motor will step on the Third CLOCK pulse.
The motor may step forward, backward or not at all on the second CLOCK pulse. This is part of the output setting process.
Direction control is active when the OUTPUT at PIN 8 of the SN7474 has a HIGH state.
Logically speaking the SN7474 method used to initialize the circuit might not be the best. But at the relatively low frequencies, about 100Hz, used by this circuit it seems to work just fine. Without this sub routine the SN74194 could have all or none of its outputs in a HIGH state after power is applied to the circuit.
If the motor step rate is very slow this extra current draw may be lengthy.
Making the bases of both Q1 and Q2 LOW at the same time can be used to reset the SN74194 to its proper starting position without having to remove the circuit power.
Power for the motors can be regulated or well filtered and may range from 12 to 24 volts with currents of between 150 and 500 milliamps depending on the particular motor.
This OUTPUT could be used if there was a need to drive two or more motors at the same CLOCK speed. Another use could be as an feed back to a counter circuit if a specific number of steps were desired.
The motors used to test this circuit were:
JAPAN SERVO CO. (From an old floppy drive) TYPE KP4M4-001 75 OHM / PHASE 0.15 AMP / PHASE
AIRPAX : LA82720-M1 (From a chart drive) 24 VOLT 60 OHMS / COIL 7.5 DEGREES / STEP
The following links are for stepper motor related pages and have a lot of good information on other types of driver circuits and motors.
This schematic shows the SN7474 in logic block form with its two "D" type FLIP-FLOP's. This circuit was used to test the stepper motor driver circuits operation.
Section FF1 acts as a binary divider while FF2 acts as a RS FLIP FLOP. After one division step the FLIP FLOP is SET to Q-high.
This allows the SN74194 to "SET" its output states to PIN 15 - HIGH and PINs 12, 13 and 14 - LOW before the DIRECTION control switching transistors, Q1 and Q2, become active.
The POWER (14), COMMON (7) and CLEAR (CLR) (1,13) connections of the SN7474 are not shown on the schematic diagram to make the drawing less cluttered. The CLEAR terminals are connected to the +5 volt supply.
The explanations for the circuits on these pages cannot hope to cover every situation on every layout. For this reason be prepared to do some experimenting to get the results you want. This is especially true of circuits such as the "Across Track Infrared Detection" circuits and any other circuit that relies on other than direct electronic inputs, such as switches.
If you use any of these circuit ideas, ask your parts supplier for a copy of the manufacturers data sheets for any components that you have not used before. These sheets contain a wealth of data and circuit design information that no electronic or print article could approach and will save time and perhaps damage to the components themselves. These data sheets can often be found on the web site of the device manufacturers.
Although the circuits are functional the pages are not meant to be full descriptions of each circuit but rather as guides for adapting them for use by others. If you have any questions or comments please send them to the email address on the Circuit Index page.