The H bridge is a motor driver that allows you to drive a motor in both directions. There are two kinds of H bridge:
- Half H bridge: based on two transistors;
- Full H bridge: based on four transistors.
The first topology of H bridge is the half H bridge. This topology is composed by two transistors: a PNP used as a high side switch and a NPN used as a low side switch.
The two transistors have to be attached to an Arduino pin. To close transistor T1, use these instructions:
digitalWrite(pinT1, LOW); digitalWrite(pinT2, LOW);
The motor has a positive voltage on its poles, so it rotates clockwise using the following:
digitalWrite(pinT1, HIGH); digitalWrite(pinT2, HIGH);
T2 is closed and the motor has a negative voltage on its poles so it rotates counterclockwise.
This topology needs a bipolar voltage supply in order to correctly drive the motor in both directions, so this isn't good!
The second topology of H bridge is the full H bridge. This topology allows you to drive the motor in both directions using a single power supply. This can be done changing the sense of the current in the motors, but in this case we need four transistors instead of two. In fact, close T1 and T4 using:
digitalWrite(pinT1, LOW); digitalWrite(pinT4, HIGH);
The current will flow from left to right in the motor causing a clockwise rotation, while closing T3 and T2 with:
digitalWrite(pinT3, LOW); digitalWrite(pinT2, HIGH);
The current will flow from right to left in the motor causing a counterclockwise rotation. This is the most common topology and can be found in ICs like L293 or similar or made of four transistor in high power application.