One of the simplest ways to get a motor to turn in both directions is by using a double-pole, double-throw (DPDT) relay. Along with the relay, this hookup requires two transistors and two Stamp pins, one for on/off control and the other for direction control.
The diagram below contains the schematic for this setup. The DPDT relay is switching the direction of current flow through the motor to get it to turn in either direction. The direction control transistor can be a 2N3904 because most relays require much less than 100 mA through the coil to trip the contacts. A TIP120 can also be used for the direction control. A TIP120 is required for on/off control because it must be able to handle the motor currents. For very high current motors, replace the TIP120 on/off control with a low on-resistance FET or with a SPST relay. In the diagram, the location of the relay pins matches a top view of the DPDT relay sold in the Robot Store (Jameco 174378) and the Radio Shack 275-249A relay.
The next diagram illustrates how to lay this circuit out. The pinouts shown are correct for the Jameco 174377 and Radio Shack 275-249A relays.
Read more: Bidirectional motor control Using Arduino