Saltar al contenido
Blog Arduino, LabVIEW y Electrónica

Puente H L293D

circuito-integrado-l293d-driver-motor-puente-h

¿Qué es el Puente H L283D?

El Driver puente H para motores L293D es un circuito que tiene en su interior 4 drivers o medio puente H. La corriente máxima que el L293D puede manejar es de 600 mA con voltajes desde 4.5 volts a 36 volts. Cada canal es controlado por señales TTL (lógica transistor a transistor). Cada pareja de canales también dispone de señales para habilitar la conexión o desconexión de los mismos.

Puente H L293D

Todas las entradas del circuito Integrado L293D son compatibles con TTL, por lo que pueden manejarse con la mayoría de los micro controladores y circuitos lógicos del mercado. La salida de los drivers puede activarse y desactivarse en pares, mediante señales de habilitación. Cuando se presenta un 1 lógico en los pines de habilitación, las señales correspondientes de salida estarán activas y en fase con la señal de entrada. Cuando las entradas de habilitación presentan un estado lógico 0, las salidas se encuentran en estado de alta impedancia.

¿Para qué sirve un Puente H L283D?

Gracias a que este circuito integrado es capaz de producir corrientes bidireccionales, es útil en aplicaciones que requieran controlar la dirección de giro y velocidad de motores de DC. Otras de sus aplicaciones son el control de relevadores, motores de paso bipolares, solenoides y cualquier otro dispositivo electrónico de corriente continua que cumpla con las especificaciones eléctricas del dispositivo.

Información técnica

  • Voltaje de entrada (motores): 4.5V-36V.
  • Corriente DC por canal: 600mA.
  • Corriente pico por canal: 1.2ª.
  • Protección contra sobre carga térmica.
  • Diodos de protección contra voltajes inversos generados por las cargas inductivas (motores).
  • En el caso de motores es posible controlar tanto su velocidad (PWM) como su dirección de giro.
  • Control de motores pasó a paso en modo unipolar o bipolar.

Especificaciones Puente H L283D:

  • Protección ESD Interna.
  • Apagado térmico.
  • Entradas de alto ruido de inmunidad.
  • Pico Salida de corriente 1.2 A por canal.
  • Diodos Clamp salida para inductivo.
  • Supresión transitoria.
  • Dimensión: 14.4 x 8 x 3.3 mm.
  • Peso: 1.0 g.

Circuito integrado L293D Puente H con amplificadores operacionales

Estructura

Las entradas son compatibles con niveles de lógica TTL. Para lograr esto, incluso cuando se manejen motores de voltajes no compatibles con los niveles TTL, el chip tiene patas de alimentación separadas para la lógica (VCC1, que debe ser de 5V), y para la alimentación de la carga (VCC2, que puede ser entre 4,5V y 36V).

Las salidas poseen un circuito de manejo en configuración «totem-pole» (término en inglés que se traduce como «poste de tótem», nombre que, gráficamente, nos remite a un «apilamiento» de transistores, como las figuras en los famosos totems indígenas).

En esta estructura, unos transistores en configuración Darlington conducen la pata de salida a tierra y otro par de transistores en conexión seudo Darlington aporta la corriente de alimentación desde VCC2. Las salidas tienen diodos incorporados en el interior del chip para proteger al circuito de manejo de potencia de las contracorrientes de una carga inductiva.

Manejo de potencia para motores con el integrado Puente H L293D

El integrado L293D incluye cuatro circuitos para manejar cargas de potencia media, en especial pequeños motores y cargas inductivas. Los circuitos individuales se pueden usar de manera independiente para controlar cargas de todo tipo y, en el caso de ser motores, manejar un único sentido de giro. Pero, además, cualquiera de estos cuatro circuitos sirve para configurar la mitad de un puente H.

El integrado permite formar, entonces, dos puentes H completos, con los que se puede realizar el manejo de dos motores. Diagramas Pinout L293D

Diferencia entre el L293 VS L293D

La principal diferencia entre los dos circuitos es la corriente nominal que soportan. Por un lado, el L293 soporta hasta 1A por canal. Mientras que el L293D sólo puede suministrar 600mA ó 0.6A. Esto es muy importante a la hora de elegir el motor que se controlara. Por lo tanto, no es muy bueno operar al motor al limite de esta corriente. Además si consideramos una pobre disipación de la temperatura, el circuito puede calentarse demasiado y por consiguiente fallar.

 

Ejemplos de conexión con Arduino uno

Esta plaqueta posee dos L293D, o sea que permite controlar 4 motores de CC o dos motores paso a paso. Tiene aparte otras salidas.Conexion a Arduino Uno

 

Video

Precio

Un puente H tiene un costo bastante económico cada uno cuesta entre $12-19 pesos, lo que son $0.60 dólares aproximadamente. Se puede conseguir en Mercado Libre.

Nota

Como se podrá notar, su ventaja principal es que se pueden utilizar dos voltajes diferentes, una para el circuito integrado, y otro par alimentar a los motores. De esta manera es mucho más fácil mantener una buenta alimentación del integrado mientras se alimentan los motores con las fuentes externas.

Lo más importante a considerar al utilizar este integrado para los proyectos, es que tiene un consumo de 2V, de manera que es necesario tomar en cuenta este dato si se va a usar el mismo voltaje para alimentar motores e integrado; por ejemplo, si requerimos suministrar 6V a nuestro motor, es necesario ingresar al L293D al menos 8V.

Práctica de Puente H Driver L293d

Ejemplo 1

Para la prueba de este dispositivo se utilizará el Módulo NRF24L01, el cual cuenta con las siguientes características:

  • Alimentación de 900 nA en modo inactivo.
  • Regulador de voltaje integrado.
  • Entrega de 1.9 a 3.6V.
  • Tolerancia máxima de entrada de 5V.

En este circuito de prueba sólo vamos a energizar un motor DC, como podemos ver en la hoja de datos, los pines 2 y 7 son los que utilizaremos para este motor, a continuación te mostraré una tabla lógica para comprender como funciona el sentido de giro del motor, y en que casos se encontrará apagado o prendido en su defecto.

Estado de EnableEstado Pin 2Estado Pin 7Estado del motor
LOWN/AN/AApagado.
HIGHHIGHLOWGira en sentido A.
HIGHLOWHIGHGira en sentido B.
HIGHHIGHHIGHApagado.
HIGHLOWLOWApagado.

Diagrama de Conexión de Circuito

Diagrama de Conexion Puente H L293D

Código de Arduino

#define E1 10  // Pin para el Enable
#define I1 8   // Control para el pin 1 del motor A
#define I2 9   // Control para el pin 2 del motor A

void setup()
   {
        for (int i = 8 ; i<11 ; i++)  //Se inician los pines
        pinMode( i, OUTPUT);
   }
void loop()
   {    digitalWrite(E1, HIGH);     // Activamos Enable
        digitalWrite(I1, HIGH);     
        digitalWrite(I2, LOW);		//De esta manera el motor A girará en un sentido
        delay(3000);

        digitalWrite(E1, LOW);     
        delay(1000);
    
        digitalWrite(E1, HIGH);     //Detenemos el motor A durante un segundo y después girará en sentido contario
        digitalWrite(I1, LOW);     
        digitalWrite(I2, HIGH);
        delay(3000);

        digitalWrite(E1, LOW);      // Se de tiene el motor A de nuevo
        delay(1000);
  }

Ejemplo 2

Para esta práctica vas a necesitar los siguientes materiales:

  • Arduino Micro
  • Mini Motor DC
  • Puente H L293D

Esta ejemplo muestra como cambiar de direccion el motor D.C.

Diagrama de Conexión

Diagrama Conexion Puente H L293D.

Código de Arduino

/*Copyright (C) 2017 Iván Rodríguez Méndez*/
 
 
 
//Tutorial 14: Control de un motor de corriente continua en dos direcciones con el L293D
 
 
 
// Definicion de pines necesarios conectados a nuestro Arduino
 
 
 
const int enPin = 5; // PWM se conecta al pin 1 del puente-H
 
const int in1Pin = 7; // Entrada 2 del puente-H
 
const int in2Pin = 4; // Entrada 7 del puente-H
 
 
 
void setup() {
 
 
 
Serial.begin(9600); //Iniciamos la comunicacion serial
 
pinMode(in1Pin, OUTPUT); 
 
pinMode(in2Pin, OUTPUT); 
 
Serial.println("Para seleccionar la velocidad del motor (0-9). Para seleccionar la direccion introduce + o -"); //Imprime en la consola puerto serie
 
}
 
 
 
void loop() {
 
 
 
  if ( Serial.available()) { //Comprobamos que el puerto serial esta disponible para la comunicacion
 
    char ch = Serial.read(); //Leemos las variables que introducimos desde el teclado por el monitor serial
 
    if(ch >= '0' && ch <= '9') {
 
      int speed = map(ch, '0', '9', 0, 255); // Adaptamos el numero a una escala de 0 a 255
 
      analogWrite(enPin, speed);
 
      Serial.println("El valor de velocidad intruducido es:");
 
      Serial.println(speed); //Escribe el valor analogico PWM enPin
 
    }
 
    else if (ch == '+') {
 
      Serial.println("Girando en sentido horario...");
 
      digitalWrite(in1Pin,LOW);
 
      digitalWrite(in2Pin,HIGH);
 
    }
 
    else if (ch == '-') { 
 
      Serial.println("Girando en sentido anti-horario...");
 
      digitalWrite(in1Pin,HIGH);
 
      digitalWrite(in2Pin,LOW);
 
    }
 
    else {
 
      Serial.print("Caracter no reconocido. Error.");
 
      Serial.println(ch);
 
    }
 
  }
 
}