Controlling Multiple Stepper Motors with a Single Driver Board using Triacs

Hi all,

I am trying to control multiple bipolar stepper motors with a single driver board. I do not need to control these stepper motors simultaneously, so I figure that I can just apply power to the first motor, move it, and then remove power before going to the next stepper motor in the sequence. Doing it this way will save me a fortune in the cost of driver boards since I may at some point be controlling up to 32 stepper motors in this manner.

The pdf link below this text gives the Fritzing sketch of the circuit I currently have wired up. Note that the circuit utilizes triacs (even though they are labeled FETs) to control the flow of current through each stepper coil. The triacs themselves are toggled on and off using a pin on a MCP23017 I/O expander chip, although it could just as easily be done directly from the Arduino. Also, my driver boards have an enable pin on them which allows me to remove the power when switching from one stepper motor to the next. Finally, I am using the stepper motors in sets of two. Each set is used to control the pan and tilt motion of either a sun tracker or a heliostat (hence the altitude / azimuth terminology).
http://www.cerebralmeltdown.com/wp-content/uploads//2012/07/StepperPowerTriacCircuit_bb.pdf

The circuit seems to work fine as is, but I'm willing to bet that it can be simplified. Does anyone have any suggestions on how that might be done? Or perhaps there is already a circuit or chip out there that would work for this that I don't know about?

Here is the link to the rest of the circuit should someone want to see it.
http://www.cerebralmeltdown.com/wp-content/uploads//2012/07/SunTrackerCircuit3_bb.pdf
Here also is the link to the editable Fritzing triac circuit.

Finally, if you happen to be a solar energy enthusiast, here also is a link to the forum thread where you can download the Sun Tracking / Heliostat Arduino Program used with this circuit.

I am a decent programmer, but I don't often do much in the way of circuit design. I figure that I should ask the experts before I unleash a circuit into the open source world that is overly complicated or perhaps could damage something. 8)

Thanks in advance for any and all advice,
Gabriel

The circuit seems to work fine as is,

Are you sure?
A triac is used for AC are you feeding the stepping motor with AC?
Unless you are the triac simply will not turn off just by removing the gate voltage.

It seems totally the wrong part for the job.

Do you have a proper schematic of the circuit, one that people can actually follow.

A triac is appropriate here. These are unipolar steppers and current is flowing both directions through each set of windings. Think of it as variable frequency AC.

Please excuse the previous poster, your diagram is readable and easily understood, if you understand the description you gave. WHile we don't normally work directly with TRIACS, and at first that had me wondering also, this is an appropriate use, otherwise you would need 2 transistors and it would be much messier as the triacs have both transistors internal.

The only problem with the diagram is that you have , what appears to be, both sets of TRIACs connected in parallel, where actually there are 2 different MC23017 pins in use.

The one potential problem with the circuit is how the driver board will react to having the load switched, and whether it would be better to switch one motor out before the next is connected, or is better tp switch one off before switching the other on.. The other problem will be that the motors will probably NOT be in the correct phase position and in switching between them the motors will always twitch and you won't be able to trust their position over time. Also - is the mechanical system stiff enough to hold position even when the motor is unpowered?

Sorry, I should have been a little more clear on this. Like I said, I can remove all power from the stepper motors by using the enable pin on my driver boards. Once this has been done the TRIAC will easily turn off just by writing the MC23017 pin to LOW. Having the power removed when switching should also be considerably healthier for the driver boards.

kf2qd:
The only problem with the diagram is that you have, what appears to be, both sets of TRIACs connected in parallel, where actually there are 2 different MC23017 pins in use.

In this case, the sets of TRIACs are intentionally set in parallel with the one MC23017 pin. Basically, each pin turns on one machine, and each machine uses two stepper motors.

You are right about the stepper motors possibly "twitching" when power is cycled on and off. I haven't noticed any problem with the stepper motors I'm using now though. If it becomes too much of a problem I think I can probably compensate for it in the code somehow.

I'm using wormgears in my heliostat, so it will hold its position even when the motor is unpowered.

Grumpy_Mike:
Do you have a proper schematic of the circuit, one that people can actually follow.

Sorry no, I haven't done it yet. The image link below shows at least part of it though. It's just the same thing done 4 times, minus the snubber.

To me, the most redundant thing in this circuit is the optocoupler. It seems like I should only need one to protect the rest of the circuit, but it is not apparent to me how to do it.

I'd advise caution if you are expecting the motors to keep accurate position - once powered down a stepper will move a little and re-powering it up may cause it to mis-step, even it powered up in the same original state. If the mechanical load is very light it will help.

Gabriel, did you solve this problem?
I have the same need as you did and was wondering if you can share your experience.
Thanks

In the 6.5 years since that was written, stepper drivers have become ubiquitous. Look at using independent driver chips. I expect that the cost saving of using triacs would be just a few cents now.

Bit odd, I was looking at the Losmandy (Hollywood Machine Co.) dual stepper driver circuit today. It's called the 492 Digital Drive system as it was introduced in April 1992. It is still their basic telescope drive system.

The P80C34 µprocessor is derived from the 1976 Intel 8048. It lacks the ROM so the 492 requires a discrete ROM IC.

Losmandy uses the AMD Am27C64, a 64-Kbit (8 byte) ultraviolet erasable program read-only memory. It is organized as 8K words by. 8 bits per word and is programmed in 8 bit parallel (probably from a legacy PC!).

The step motor driver is an UCN5801A. This driver is no longer in production and difficult to obtain. It is a brute force device that combines a Shockley diode with a Darlington transistor for each of the four channels that drive the stepper. So a least these had the triacs integrated. The diode is named for its inventor Wm. Shockley one of the three scientists were jointly awarded the 1956 Nobel Prize in Physics for "their researches on semiconductors and their discovery of the transistor effect." These devices were replaced with field effect transistors in the '90s, which are much more efficient, capable of high switching speeds and can handle more than 500MA.

Even 8 years ago no one was using triacs with unipolar steppers. The driver of choice was the ULN2003. Get'em made by TI 10 for a buck. The same 500MA a channel and channels can be paralleled for higher current needs.

With NEMA 17 frame 0.9° step bipolar motors selling for under $10 and fully integrated driver a buck, taking printers apart for 32 and 48 unipolar steppers is not very good use of your time.