Drives a unipolar or bipolar stepper motor using  2 wires or 4 wires

When wiring multiple stepper motors to a microcontroller,
you quickly run out of output pins, with each motor requiring 4 connections. 

By making use of the fact that at any time two of the four motor
coils are the inverse  of the other two, the number of
control connections can be reduced from 4 to 2. 

A slightly modified circuit around a Darlington transistor array or an L293 H-bridge
connects to only 2 microcontroler pins, inverts the signals received,
and delivers the 4 (2 plus 2 inverted ones) output signals required
for driving a stepper motor.

The sequence of control signals for 4 control wires is as follows:

Step C0 C1 C2 C3
   1  1  0  1  0
   2  0  1  1  0
   3  0  1  0  1
   4  1  0  0  1

The sequence of controls signals for 2 control wires is as follows
(columns C1 and C2 from above):

Step C0 C1
   1  0  1
   2  1  1
   3  1  0
   4  0  0