El puente H: Invirtiendo el sentido de giro de un motor con Arduino

39
79950

En este post les explicaré cómo funciona y cómo se construye un puente H con algunos transistores NPN.

En artículos anteriores he hablado acerca de los motores:

En dicho post mencioné que para invertir el sentido de giro de un motor hay que cambiarle la polaridad, es decir, cambiar el sentido con el que la corriente pasa a través del motor.

electric_motor_cycle_2

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

puente-h

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:

Cuando se coloca el interruptor en la primera posición (la superior), el comportamiento de la corriente es el siguiente:

puente-h1

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.

puente-h2

Para activar los transistores se requieren tensiones muy bajas, lo que hace que podamos remplazar el interruptor por Arduino.

puente-h3

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.

2013-08-26-758

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:

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á.

 

puente-h-programacic3b3n

Al cargar este código podremos tener el control total sobre el motor en el puente H.

A continuación, un video con el puente H funcionando:

 

Espero que la información suministrada sea de su agrado. Saludos.

39 Comentarios

  1. Buenas. Uso el bd135, alimento el puente h con 12 v. Trabajo con un micro arm, q entrega 3.3 v de gpio digital. La inversion de tension la hace perfecto, pero me aparece 2.2v en vacio en la bornera de salida donde va conectado el motor. A que se debe esto? Porque hay esa brutal caida? No consigo hacer que funcione, probe alimentando el micro con una fuente externa para que suministre mas corriente en caso de que los transistores no esten saturando, pero es lo mismo.

    • Si cuando están activos los transistores hay una gran caída de voltaje en la salida, esto se debe a que el transistor no está bien polarizado. Usa una resistencia de 100 Ohms o algo similar y se debe corregir el problema

  2. buenas tardes, quería pedir ayuda, estoy creando una embobina dora necesito poder programar que y hacia la derecha recorra 8 cm en 1 minuto y hacia la izquierda el mismo recorrido, y necesito que con un botón vaya hacia la derecha y con otro hacia la izquierda ¿como seria la configuración en Arduino uno por favor? este es el codigo que tengo y no logro que por medio de los botones cambie de dirección el motor

    #include

    AccelStepper stepper(1,3,2); //use pin 3 para step. 2 para dir;
    int estadoBoton = 12; //pulsador de arranque <>

    void setup()
    {
    stepper.setMaxSpeed(500.0);
    stepper.setAcceleration(3500.0);

    }
    void loop()
    {

    if (digitalRead(estadoBoton) == HIGH)
    {// Está presionado
    stepper.runToNewPosition(-32000);
    }
    else if (digitalRead(estadoBoton1) == HIGH)
    {// Está presionado
    stepper.runToNewPosition(800);

    }

    }

    • Esto lo puedes hacer tu mismo a través de experimentación. Si no tenemos el circuito armado, el que compartas el código no sirve de mucho

  3. Hola buen día, soy novata en esto pero me gusta, estoy en un proyecto y su pagina me a ayudado mucho, cualquier duda, espero puedan apoyarme
    Gracias saludos cordiales.

  4. Lo hice igual que el que se muestra y no me funciona, no gira el el motor cuando lo ordeno en Arduino, necesito ayuda.

  5. No me deja copilar me aparece: Tamaño binario del Sketch: 2,424 bytes (de un máximo de 32,256 bytes)

    ayuda por favor

  6. Buenas noches, espero se encuentre muy bien, donde puedo conseguir este tipo de materiales en panama para un proyecto escolar, me encuentro en la ciudad de colon, por favor si me puede ayudar, mi correo es [email protected] y mi numero es 63502817. gracias

  7. Gracias amigo,,, pero

    cuales son las especificaciones de los materiales…

    Resistencia 11K o 1K… 1/2 o 1/4
    diodos… todos son iguales? que valor?

    Disculpa mis preguntas… soy principiante..

    Gracias de todas formas.

Dejar respuesta

Please enter your comment!
Please enter your name here