|
I designed this little circuit to teach my students the principles of stepper motor control. Most similar circuits I have seen use a driver chip. This way you supply the circuit with a pulse - which determines the speed of rotation - and a direction and the chip will provide the step sequence. This is too simple for a class full of high flying computer students and we decided to drive the motor directly and let the computer do all the work. This has an additional advantage. Stepper motors have four coils and turn with the signal 1-2-3-4-1-2-3- 4 and so on. 4-3-2-1-4-3-2-1 will reverse the direction. The faster you send sequence, the faster the rotor will turn. This is the signal that ordinary driver chips supply. Computer control enables you to send half step signals. Energise one coil, then two adjacent coils then the next coil and so on. Like this: 1 - 1+2 - 2 - 2+3 - 3 - 3+4 - 4 - 4+1 - 1 - and so on. The motion of the motor is now much smoother, particularly at lower speeds.
The ULN 2803 is current sinking, hence the 6V line is connected to the two common wires of the stepper motor and each phase is connected to one of the driver lines. |
The PCB layout to the circuit is on the right. The LEDs are arranged in a
'circle' to show the rotary nature of the pulses and there is a link which
will have to be broken and one that has to be set if you don't have a user
port and use the printer port instead. D5 is the 'Power ON' LED and there
are two links to the power lines should you want to connect a logic probe. Notice
that the circuit needs an external power supply, the user port can drive only the
LEDs. Notice the link with the common in the middle. This should be made either with a small
computer type selector plug or with a bit of wire, depending on whether you use the user port
or the printer port.
A word of warning. The ULN 2803 can drive 0.5A per line, so if your stepper motor needs more than this you might burn out the chips. I tend to drive the larger motors at half voltage and I have never yet burned out a chip, though some of them got quite warm. As usual I have provided a zipped demonstration program called !StepCon, which will demonstrate single step, complete rotation, backwards, forwards and half step driving. As a bonus there is a machine code program which will also drive the motor, but it only works if you have a user port. Finally there is a photograph of the finished project.
As usual, if anybody actually builds these projects and runs into problems, don't hesitate to contact me. Any updates to project will always be posted on this site. You can find the program here Known problems: If you use a 12V stepper motor and drive the circuit via the printer port, the LED resistors should be doubled in value. The same applies for the 1N4001 diode. If it gets too hot, pick a diode that can carry more current or replace it with a link. The circuit is designed for the type of stepper motor that generally has six wires - two commons and four phases. There is a four wire type of stepper motor which relies on polarity reversal. This project will not drive such a motor, though I would love to talk to anyone who has designed a computer driven circuit for it. Have fun. |
Back to the start
|