An H-bridge is an electronic circuit that enables a voltage to be applied across a load in either direction. They are useful in many applications, especially when you need to make a DC motors to run forwards and backward. H-bridges are available as integrated circuits, or can be built from discrete components. Here are first come discrete circuit ideas.
For low voltage circuits this idea presented at Steve Bolt’s 4-transistor H-bridge looks good basic circuit (classic design):
Basic Stepping Motor Control Circuits document has on Practical Bipolar Drive Circuits section this H-bridge circuit (Figure 3.14):
The circuit in above consists of two identical halves, each of which may be properly described as a push-pull driver. The X and Y inputs to this circuit can be driven by open collector TTL outputs. The motor winding will be energised if exactly one of the X and Y inputs is high and exactly one of them is low. If both are low, both pull-down transistors will be off. If both are high, both pull-up transistors will be off. As a result, this simple circuit puts the motor in dynamic braking mode in both the 11 and 00 states, and does not offer a coasting mode.
I have always liked this kind of designs when I have needed a simple H-bridge or push-pull driver.
Microcontroller drives piezoelectric buzzer at high voltage article has an interesting looking circuit for MOSFET based H-bridge:
Using four enhancement-mode MOSFETs that connect in an H-bridge configuration, the microcontroller can drive the buzzer at a high alternating voltage. The gate terminals of the N-channel transistors in the lower arms of the bridge can connect directly to the microcontroller’s I/O pins.
When using this circuit be careful not to turn on both PIN1 and PIN2! Doing that would destroy the circuit. If you do the driving with just software (one micro-controller pin per circuit input pin), be careful because with design like this a software bug can cause hardware failure!
I have personally started to move away from H-bridges built from discrete components to H-bridge ICs. You can see one example of such IC in use at my H-Bridge Motor Driver Module article.