You are on page 1of 5

El puente H: Invirtiendo el sentido de giro de

un motor con Arduino


En electrónica esto normalmente se logra con una configuración llamada puente
H, la cual les muestro a continuación:

Con el interruptor SW1 el usuario decide si el motor gira a la izquierda, a la derecha


o si se detiene.

Pero, ¿cómo sucede esto?

Cuando el interruptor está en la posición del centro, no hay voltaje aplicado a los
transistores por lo que permanecen en estado de corte.

Recordemos que los transistores se utilizan como interruptores y como dispositivos


de control, tal como ya lo he presentado en otros aportes:

 El transistor BJT y su uso en la electrónica

 Herramientas de control para Arduino: El BJT o Transistor de Unión


Bipolar (NPN y PNP)

Cuando se coloca el interruptor en la primera posición (la superior), el


comportamiento de la corriente es el siguiente:
La corriente fluye a través de Q1 y Q4. El motor gira en sentido horario.

Si se cambia de posición el interruptor entonces el motor gira en sentido anti


horario.

Para activar los transistores se requieren tensiones muy bajas, lo que hace que
podamos remplazar el interruptor por Arduino.
Los diodos en el diseño se han colocado para suprimir las posibles corrientes
transitorias que se puedan generar por la acción del motor.

El armado del circuito requiere básicamente de 12 componentes: 4 transistores, 4


resistores y 4 diodos.

Yo usaré para la demostración el transistor C2073 (hoja de


datos: http://www.ic72.com/pdf_file/-/c2073.pdf). Si no puede encontrar este
modelo y necesita utilizar otro recomiendo consultar este post: El arte de escoger
un buen transistor.

Los transistores son rectificadores comunes. El motor es un motor sencillo extraído


de un aparato que fue descartado.

En la siguiente imagen se muestra el diagrama pictórico del puente H:

El código para Arduino es sencillo. Al enviar el número 1 por el Monitor Serial, el


motor girará a la derecha; con un 2 el motor girará a la izquierda y con un 0 el
motor se detendrá.

1 //Código para utilizar motor con puente H


2 int LeftPin=8; //Pines de salida del Arduino
3 int RightPin=9;
4 int input=0;
5
6 void setup(){
7 Serial.begin(9600);
8 pinMode(LeftPin, OUTPUT);
9 pinMode(RightPin, OUTPUT);
10 }
11
12 void loop(){
13 if (Serial.available()){
14 if (input=='1'){ //El motor girará a la derecha
15 digitalWrite(LeftPin, LOW);
16 digitalWrite(RightPin, HIGH);
17 }
18 else if (input=='2'){ //El motor girará a la izquierda
19 digitalWrite(LeftPin, HIGH);
20 digitalWrite(RightPin, LOW);
21 }
22 else if (input=='0'){ //El motor se detendrá
23 digitalWrite(LeftPin, LOW);
24 digitalWrite(RightPin, LOW);
25 }
26 delay(10);
27 }
28 }