This page features simple and inexpensive, stand alone UNIPOLAR stepper motor driver using parts that are available from many sources.
The driver is designed for medium and low speed applications with motors that draw up to 1.0 amp per phase. Higher current motors can be driven by adding external transistors.
This driver provides only basic control functions such as: Forward, Reverse, Stop and has a calculated Step rate adjustment range of 0.72 (1.39 sec) to 145 steps per second. (Slower and faster step rates are also possible.)
The only step angle for this driver is the design step angle of the motor itself. 'Half-stepping' is not possible.
A 74194 - Bidirectional Universal Shift Register from the 74LS or 74HC - TTL families of logic devices is used to produce the stepping pattern.
The stepper motor driver on this page replaces the 2008 Unipolar Stepper Motor Driver (74194) that was previously available through this web site.
NOTE: The UNIPOLAR and BIPOLAR stepper motor driver circuits on this web site use the same circuit board, the difference between the circuits is a jumper at the data inputs of the 74194 shift register that programs its outputs.
If the jumper is left out of the 74194 circuit its output will be for UNIPOLAR motors and if the jumper is put in the 74194 circuit its output will be for BIPOLAR motors.
The following schematic is for the printed circuit board of the stepper motor driver.
The direction is selected by an ON-OFF-ON toggle switch.
The stepping rate is shown being set by a 1 Megohm potentiometer (RT). Using the component values shown for R1, RT, R2 and C1, the calculated step rate range is between 0.72 steps per second (1.39 seconds) to 145 steps per second.
Each time the output of the LM555 timer goes HIGH (positive) the HIGH state at the 74194's OUTPUT terminals, (PIN's 12, 13, 14, 15), is shifted either UP or DOWN by one place.
The direction of the output shifting is controlled by switch S1. When S1 is in the OFF position (centre) the HIGH output state will remain at its last position and the motor will be stopped.
Switch S1 controls the direction indirectly through transistors Q2 and Q3.
When the base of Q2 is LOW the output shifting of IC 2 will be pins 15 - 14 - 13 - 12 - 15; .etc.
When the base of Q3 is LOW the output shifting of IC 2 will be pins 12 - 13 - 14 - 15 - 12; .etc.
The direction of the output's shifting determines the direction of the motor's rotation.
The four outputs of the 74194 are fed to one of the driver segments of a SN754410NE - H Bridge driver IC (IC 3).
When an input of a SN754410NE segment is HIGH, its darlington transistor will turn ON and that OUTPUT will source current to one of the motor's four coils.
The outputs of the SN754410NE are used singularly with only one of the outputs being ON at any given time.
As the coils of the motor are turned ON in sequence the motor's armature rotates to follow these changes. Refer to following diagram.
The following diagram shows the stepping order for the outputs of the SN754410NE (IC 3) as compared to the input and output of the 74194 (IC 2). The output is shown stepping in one direction only.
NOTE: As can be seen in the diagram above, the outputs from the circuit change in a 1 - 3 - 2 - 4 or 4 - 2 - 3 - 1 sequence depending on the direction. The motor's coils will have to be connected to match this sequence but their operation will otherwise be normal.
IC 1 - LM555 - Timer, normally configured as an astable oscillator but can be used a monostable timer for 1 step at a time operation or can be used as a buffer between external inputs and IC2. (See later Diagrams.)
IC 2 - 74194 - 4-Bit Bidirectional Universal Shift Register. The shift register provides the logic that controls the direction of the drivers output steps.
This circuit can use either the 74LS194 or the 74HC194 shift register IC. Their logic functions are identical but the 74HC194 IC is a CMOS type that can be damaged by static electricity discharges. Antistatic precautions should be used when handling the 74HC194 to avoid damage.
If you are purchasing your own parts use the 74LS194 IC if it is available.
IC 3 - SN754410NE - Quad - Half H bridge, motor driver IC. Each segment can handle currents of up to 1 amp and voltages up to 36 volts. In this circuit 1 output segment is used for each motor coil.
IC 4 - LM7805 - Positive 5 Volt Regulator. Provides low voltage power to the driving circuitry and can also power external control circuits.
It is not the purpose of this page to provide full explanations of how these devices work. Detailed explanations can be found through datatsheets that are available from many source on the internet.
Due to the lack of error detection and limited step power, this circuit should not be used for applications that require accurate positioning. (The driver is designed for hobby and learning uses.)
The maximum supply voltage for the stepper driver circuit is 25 volts DC.
There are links to other stepper motor related web pages near the bottom of this page. These may be helpful in understanding stepper motor operation and control.
The UNIPOLAR and BIPOLAR stepper motor driver circuits on this web site use the same circuit board, the difference between the circuits is a jumper at the data inputs of the 74194 shift register that programs its outputs.
If the jumper is left out of the 74194 circuit its output will be for UNIPOLAR motors and if the jumper is put in the 74194 circuit its output will be for BIPOLAR motors.
For the parts values shown on the schematic, if the external potentiometer (RT) is set to "ZERO" ohms, the calculated CLOCK frequency will be approximately 145 Hz and a motor will make 145 steps per second. This step rate should be slow enough for most motors to operate properly.
The maximum RPM at which stepper motors will operate properly is low when compared to other motor types and the torque the motor produces drops rapidly as its speed increases. Testing may be needed to determine the minimum values for RT and C1 to produce the maximum CLOCK frequency for any given motor. Data sheets, if available, will also help determine this frequency.
If RT is set to 1 Megohm, the calculated step rate will be 0.73 Hz and the motor would make 1 step every 1.39 seconds.
There is no minimum step speed at which stepper motors cannot operate. Therefore, in theory, the values for RT and C1 can be as large as desired but there are practical limitations to these values. The main limitation is the 'leakage' current of electrolytic capacitors.
External CLOCK pulses can also be used to control the driver by passing them through IC 1 via the "T2" terminal of the circuit board. Using IC 1 as an input buffer should eliminate "noise" that could cause the 74194's output to go into a state where more than one output is HIGH.
If stepping rates greater than 145 per second are needed, capacitor C1 can be replaced with one of lower value.
A 0.47uF capacitor would give a calculated range of 1.5 to 310 steps per second.
A 0.33uF capacitor would give a calculated range of 2.2 to 441 steps per second.
Alternately, capacitor C1 can be removed from the circuit board and an external clock source connected at terminal 'T2'. With C1 removed, the practical limit on the step rate is the motor itself.
In the above items the "calculated" minimum and maximum CLOCK frequencies are valid for the nominal part values shown. Given the tolerances of actual components and the leakage currents of electrolytic capacitors the actual CLOCK rates may be lower or higher.
The direction of the motor can be controlled by another circuit or the parallel output port of a PC. This will work as long as the voltage at the bases of Q2 and Q3 can be made lower than 0.7 volts. Additional NPN transistors may be required to achieve this result, depending on the method used.
If the bases of both Q2 and Q3 are made LOW at the same time the SN74194 will go into a RESET mode. This will cause the step sequence to stop and on the next clock pulse pins 15 and 14 will go to a HIGH state.
Making the bases of both Q2 and Q3 LOW at the same time can be used to reset the SN74194 to its starting position without having to remove the circuit power.
Each stepper motor will have its own power requirements and as there is a great variety of motors available. This page cannot give information in this area. Users of this circuit will have to determine motor phasing and power requirements for themselves.
Power for the motors can be regulated or filtered and may range from 12 to 24 volts with currents up to 1,000 milliamps depending on the particular motor.
Motors that operate at voltages lower than 12 volts can also be used with this driver but a separate supply of of 9 to 12 volts will be needed for the control portion of the circuit in addition to the low voltage supply for the motor.
A LED connected to the output of the LM555 timer (IC 1) flashes at the CLOCK frequency. If a direction has been selected, The motor will move one step every time the led turns ON.
There is no CLOCK output terminal on the circuit board but there is a pad to the right of the LED that can be used if a clock output signal is required. This pad is connected to pin 3 of the LM555 IC.
The LM7805, positive 5 volt regulator used on the circuit board can also provide power for external control circuits.
For a 12 volt supply, external circuits can draw up to 100 milliamps.
For a 24 volt supply, external circuits can draw up to 25 milliamps.
A clip on heat sink is used on IC 3 to provide additional heat disipation but the sink is not required for low current motors or if the circuit is used to driver external power transistors.
When power is applied to the 74194 Stepper Driver circuit there is a very short delay before stepping of the outputs can begin. The delay is controlled by Capacitor C2, resistor R4 and transistor Q1.
The function of the delay is to allow the outputs of IC 2 to be set with pin 12 in a HIGH state and pins 13, 14 and 15 in a LOW state before direction control becomes active. The delay also prevents IC 1 from oscillating until IC 2 has been set.
If the power to the circuit is turned off, there should be a pause of at least 10 seconds before it is reapplied. The pause is to allow capacitor C2 to discharge through R4 and D2.
If the initialization delay were not used, IC 3 could have none, any or all of its outputs in a high state when stepping is started. This would cause the motor to move incorrectly or not at all during normal operation.
The stepper motor driver is ready to start operation as soon as the the initialization delay is complete.
The following picture is of an assembled circuit board for the Unipolar Stepper Motor Driver. The board measures 2 inches by 4 inches and has been commercially made. The board is not tinned or silkscreened.
The relative positions of the terminal blocks at the sides and ends of the circuit board correspond with those in the schematic diagram and the control circuit examples.
Option 1: 1 - Unipolar printed circuit board is 13.50 dollars US plus postage.
Option 2: 1 - Assembled - Unipolar circuit board is 28.00 dollars US plus postage.
Option 3: 1 - Kit - Unipolar circuit board 26.00 dollars US plus postage.
If you are interested in a circuit board and parts for this circuit please send an email to the following address: firstname.lastname@example.org
- Accepted Methods Of Payment -
Paypal. International money orders and personal cheques are OK but will have to clear before shipment.
If you are interested in a circuit board and parts for this circuit please send a message to the following email address: email@example.com
Due to delays in acquiring 74LS194 type ICs, the assembled circuit boards and kits will use the 74HC194 - CMOS type IC. The 74HC194 will be mounted in a socket to eliminate soldering this device during assembly.
Although the 74HC194 is sensitive to damage from static discharge, once it is installed in its socket the IC is very safe as all of its pins are connected to the 5 volt supply or to common through low impedance paths.
When handling the board, avoid nonconductive surfaces such as plastics or glass. If the circuit board is to be placed in a plastic case, do the assembly work on a wood or metal surface that is connected to earth. Also avoid carpeted areas during assembly.
A good practice is to touch the work surface before touching the circuit board.
|Qty.||Part #||DigiKey Part #||DigiKey Description|
|1||-||IC 1||-||LM555CNFS-ND||-||IC TIMER SINGLE 0-70DEG C 8-DIP|
|1||-||IC 2*||-||296-9183-5-ND||-||IC BI-DIR SHIFT REGISTER 16-DIP|
|1||-||IC 3*||-||296-9911-5-ND||-||SN754410NE - QUAD HALF-H DRVR 16-DIP|
|1||-||IC 4||-||LM7805ACT-ND||-||IC REG POS 1A 5V +/-2% TOL TO-220|
|3||-||Q1, 2, 3||-||2N3904FS-ND||-||IC TRANS NPN SS GP 200MA TO-92|
|1||-||D1||-||160-1712-ND||-||LED 3MM GREEN DIFFUSED|
|1||-||D2||-||1N4148FS-ND||-||DIODE SGL JUNC 100V 4.0NS DO-35|
|1||-||D3||-||1N4001FSCT-ND||-||DIODE GEN PURPOSE 50V 1A DO41|
|4||-||R1, 2, 8, 9||-||3.3KQBK-ND||-||RES 3.3K OHM 1/4W 5% CARBON FILM|
|3||-||R4, 6, 7||-||10KQBK-ND||-||RES 10K OHM 1/4W 5% CARBON FILM|
|1||-||R3, 5||-||470QBK-ND||-||RES 470 OHM 1/4W 5% CARBON FILM|
|1||-||C1||-||P5174-ND||-||CAP 1.0UF 50V ALUM LYTIC RADIAL|
|2||-||C2, 3||-||P5177-ND||-||CAP 4.7UF 50V ALUM LYTIC RADIAL|
|1||-||C4||-||P5156-ND||-||CAP 1000UF 25V ALUM LYTIC RADIAL|
|4||-||-||ED1602-ND||-||TERMINAL BLOCK 5MM VERT 3POS|
* - The heatsink shown on IC 3 is Digikey part number HS179-ND - 14/16 DIP Heatsink
* - The DigiKey part number for IC 2 is for the 74HC194 - CMOS IC. This IC is a CMOS type that can be damaged by static electricity discharge.
DigiKey does not carry the 74LS194 in small quantities. It is available for other sources such as Mouser Electronics - stock number 47053 and Jameco Electronics - stock number 59574LS194AN as well as many other sources. Be sure that the IC's have the DIP package.
* - The Part Number for Q1, Q2 and Q3 is for 2N3904s. Almost any NPN, Switching or Small signal type will work, the 2N4400 is one example.
Additional capacitance can be added to the IC 1 circuit to provide slower motor step rates. There is a limit to this approach as control of the step rate becomes less accurate as the capacitance increases and at some point the timer will stop working due to the leakage currents of the capacitors.
There is no limit on how slow the step rate can be but for very slow step rates an external clock input will be needed.
An external clock with a step rate greater than 145 steps per second can be connected to the driver circuit by removing capacitor C1.
The connections in the following diagram will allow the motor to make single steps. A toggle switch could be used to select between single and continuous steps if the 1 Megohm potentiometer was included in the circuit.
In most cases the 74194 stepper driver circuits can be directly controlled from the parallel ports of computers that have 0 and 5 volt output states.
This also applies to other logic devices with 0 and 5 volt output states. Consult the particular device's datasheet for their specifications.
The use of optoisolators provides complete isolation between the driver and the external control circuit.
The circuit above replaces the direction control switch with a "window" type voltage comparator circuit. Potentiometer "R IN" could be a temperature or light sensing circuit.
When the voltage at the centre tap of R IN is between the HIGH and LOW voltages set by resistors R1, R2, and R3 the motor will be stopped.
When the voltage at the centre tap of R IN is above the HIGH voltage between R1 and R2 the motor will be step in the FWD direction.
When the voltage at the centre tap of R IN is below the LOW voltage between R2 and R3 the motor will be step in the REV direction.
In a practical application the direction of the motors load, a heating duct damper for example, would bring the temperature represented by the voltage at R IN back to the range between the HIGH and LOW voltage setpoints.
The limit switches at the outputs of the comparators are used to prevent the damper from going beyond its minimum and maximum positions by to stopping the motor.
Also see Voltage Comparator Information And Circuits - Voltage Window Detector Circuit.
The following circuits allow the direction of the motor to be controlled by as single, ON-OFF input. The maximum input voltage is 5 Volts.
The outputs of the SN754410NE and be disabled or turned off by making pins 1 and 9 of the IC LOW. To do this one of the traces on the circuit board must be modified and a jumper added. An external connection and switch can then be used to disable the drivers outputs by forcing them to a LOW state.
The next diagram shows the modifications that are required for the circuit board followed by the schemtice for the output disable circuit.
It may be necessary to move the coil leads around to get the motor to turn properly. Leave one wire connected permanently and change the other three coil leads as needed.
Stepper motors that require currents greater that 1 amp per coil or operate on less than 12 volts can be controlled by the driver by adding external transistor to the circuit and a external power supply suitable for the motor.
Another method for using low voltage motors is to provide a voltage drop to the motor using diodes. In this way a 12 volt supply could be used directly with a 5 volt motor.
The next circuit uses TIP120 NPN, Darlington type transistors to increase the current capacity of the SN754410NE driver to 5 amps per coil.
Depending on the current required for the motor, small heatsinks may be needed for the transistors.
Animated operation of stepper motors.
For the motor driver circuit on this web page, only 1 coil is ON at a time so the rotor of the motor would be aligned with one of the stator's poles and not half way between poles as shown in the animation.
The following links are for stepper motor related pages that have information on other types of driver circuits and motors.
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.
19 April, 2013