PNP/NPN H-Bridge allows a motor to to be driven in both directions by switching one side of the transistor bridge on and the other side off. It also enables us to drive a motor requiring a current higher than can be supplied from a microcontroller.
In this example I used a switch to toggle where the 5v from the processor goes. In an actual circuit you would want to supply a voltage from the micro processor to either side instead of directing it through a physical switch. This will allow you to control the direction of the motor completely in software.
If you wanted to take it a step further you could supply a PWM signal from the micro to adjust the current through the bridge effectively creating a variable speed control on top of your directional control.
Orange) On/Off voltage supplied from microprocessor
Green) Battery power for motor
Blue & Red are opposite sides of the bridge which current flows through to the motor.