Ir al contenido principal

Driver L293D de Texas Instruments

El L293D de Texas Instruments es sin lugar a dudas un circuito integrado de un gran valor cuando necesitamos controlar motores de corriente continua o bipolares de pasos (Bipolar stepping motors)

Es cierto que se trata de un puente en H (o medios puentes), en este caso cuádruple, que sin bien podríamos crearlo con transistores, el echo de que se encuentre integrado en un único chip es de agradecer.

Capáz de conducir corrientes bidireccionales de hasta 1 amperio en el modelo L293 y hasta 600 mA en el modelo L293D y con tensiones que van desde los 4.5V hasta los 36V en ambos modelos.

Por supuesto podemos utilizarlo en otras aplicaciones o para controlar otros componentes: motores de corriente continua, relés, motores de paso bipolares, solenoides en general y cualquier carga que requiera una alta corriente y tensión.

Las entradas son de tipo TTL y se activan por parejas, es decir, desde la pata Enable 1,2EN, activamoslas entradas 1 y 2 y desde la pata Enable 3,4EN activamos la 3 y la 4. Cada par de entradas forma un puente en H completo (Full-H bridge). Para entender esto mejor podeis buscar un puente en H creado con transistores.

Es muy IMPORTANTE que si optais o necesitais utilizar el driver L293, utiliceis diodos para evitar dañar el integrado con las corrientes parásitas generadas por los propios solenoides de las cargas. No obstante el modelo L293D no los necesita, ya que, los lleva incorporados el propio integrado, con lo que se hace "más sencillo" y "económico" su uso. También es cierto que L293 al no llevarlos integrados nos permite escoger los que mejor se adapten a nuestras cargas o necesidades.

A continuación podeis ver la distribución de su patillaje:

Y como no, un circuito a modo de ejemplo, ya que, son varias las configuraciones que podemos manejar. En este ejemplo he utilizado el modelo L293D, además con el fin de simplificar al máximo el montaje, he optado por alimentar el motor con la misma fuente y tensión del propio circuito controlador de toda la lógica (microcontrolador y puertas lógicas entre otros componentes). Por esta razón vereís que tanto Vcc1 (patilla 16) como Vcc2 (patilla 8) están conectados a tensión de 5 voltios:

Por último, comentaros que debeis tener cuidado y no confundir las dos tensiones con las que puede trabajar este integrado. Una es la tensión de trabajo del propio chip Vcc1 ubicada en la patilla 16 y que debe ser superior a 4.5V y no debe superar los 7V y, otra es la tensión con la que es capaz de dirigir las cargas o motores que, en este caso como digo va de 4.5 a 36V (Patilla 8 Vcc2). No obstante, lo mejor es que os estudieis bien la hoja de datos del chip antes de poneros manos a la obra.

Comentarios

  1. Y cual seria la potencia con la cual trabajaria los motores, es decir cual seria la potencia q saldria de el L293D

    ResponderEliminar
  2. Hola Luis, el modelo L293D es capaz de conducir corrientes de hasta 600mA como comento en el post. El modelo L293, sin embargo, llegaría hasta 1A. En cuanto a la tensión de los motores (patilla 8) puede llegar hasta los 36V, por lo tanto, si P = V·I pues ahí tienes la respuesta, un saludo!

    ResponderEliminar
  3. tengo una pregunta cual es la tierra del circuito de pontencia y cual es la tierra del circuito de control, o los dos se pueden conectar a gnd

    ResponderEliminar
    Respuestas
    1. Hola Jose David, los dos se pueden conectar a GND. En el circuito del ejemplo estoy alimentando el motor con la misma fuente de 5V, por lo tanto, comparten la misma masa o tierra.

      Eliminar
  4. pero en el caso de que se estuviera utilizando el voltaje maximo permitido que serian 36 voltios si nos estoy mal, aun asi se podrian conectar los gnd de los dos circuitos ???

    ResponderEliminar
    Respuestas
    1. Hola Jose David, el integrado L293 comparte la misma masa que el circuito de control o lógica. Incluso puedes observar del pinout, que no dispone de dos entradas de GND distintas, es la misma. En el supuesto de que conectases los pines de GND del L293 tan solo a la fuente de potencia de los motores, la tensión de 5V de los pines de alimentación del circuito lógico, se quedaría "huérfana" sin su masa de referencia, por lo tanto la corriente no circularía por la circuitería lógica del L293. Esta es la razón por la que comparte la misma masa.

      Esta no es la única solución, pero con el L293 puedes hacerlo así perfectamente.

      Eliminar
    2. Un problema con el que si te podrías encontrar es el tema del "ruido" que la circuitería de potencia (motor y su fuente), podrían "inyectar" a tu circuitería de control. Normalmente esto no suele dar problemas, pero si utilizas una fuente de 36V que no esté bien filtrada, deberías tenerlo en cuenta.

      Además los propios motores incluso podrían "inducir" ruido a tu circuitería de lógica, en cuyo caso deberás aislar ambos circuitos convenientemente.

      Un saludo compañero.

      Eliminar
  5. Hola que tal, Una pregunta entonces si quiero alimentar un motor de 12 volts, los 12 volts los introduzco en el Pin 8?

    ResponderEliminar
    Respuestas
    1. Exacto Luis. Como comento en el post, existen dos pines de alimentación en el L293D, uno para alimentar el propio integrado(pin 16 Vcc1) y otro (pin 8 Vcc2) para alimentar la carga que le conectes (ej. un motor).

      Eliminar
    2. Por cierto, además de proporcionar la tensión adecuada por el pin 8, deberás tener en cuenta el consumo que necesites, puesto que los límites son de 600mA en el L293D y 1A en el L293

      Eliminar
  6. Hola, quisiera saber si conecto 2 integrados L293 en paralelo que manejan hasta un 1 amperio, entre los 2 puedo manejar 2 amperios en el mismo motor, o mas amperios conectando mas?

    ResponderEliminar
  7. Hola.
    Quiero comentar una mala experiencia que tuve con este driver.
    Todo estaba funcionando bien con un Arduino y un motor paso a paso de 12V.-
    Por lo tanto tanto alimentaba el Arduino nano con una fuente de 5V (en su entrada de 5V) y con la misma tensión la parte logica del driver (pata 16) y 12 V de la misma fuente con tierra común en pata 8 para potencia del motor.
    Por alguna causa!!!!!!!!!! (después cai en la cuenta) se pusieron en corto las Vss y Vs y le llegaron 12 V al arduino y puffff !! allá fue el micro.-
    Para colmo de males repuse el Arduino (sin haber me dado cuenta del problema) y puff !! nuevamente .
    Estoy verde !!!! . Es habitual que pueda suceder esto con este Driver.???
    Gracias por contestar

    ResponderEliminar
    Respuestas
    1. Hola Pedro, ante todo lamento tu mala experiencia.

      Con respecto a si es o no habitual que se produzcan estas situaciones, decirte que si el problema ha sido un "corto", no es problema del Driver ya que un "corto" por error o accidente se puede producir con cualquier tipo de circuitos.

      En mi opinión, la cuestión no es si el problema fue el Driver o no, creo que lo que habría que pensar es como "evitar" que se produzcan estas situaciones.

      Mi sugerencia en estos casos, es decir, cuando tenemos diferentes tensiones en un circuito es tomar determinadas precauciones de "Diseño" y obviamente de manipulación.

      Con respecto al diseño, tener cuidado a la hora de ubicar los componentes que forman parte de cada circuito alimentado con distintas tensiones.

      Aún así, la mejor opción en estos casos es "AISLAR" por completo, la salida del micro de la del circuito de potencia o de mayor tensión y esto se puede lograr de muchas maneras.

      Por poner un ejemplo, un pin de salida del micro que controle un circuito de potencia, podríamos aislarlo mediante el uso de Optoacopladores.

      ¡Mala suerte Pedro! Intenta quedarte con lo bueno, que en este caso será lo didáctico.

      Por cierto, decirte que yo personalmente nunca he tenido este tipo de problemas con este Driver, ahora bien, cortos por error, prisas, accidentes, eso es inevitable. Ante todo calma, y antes de alimentar comprobar las partes críticas.

      ¡Un saludo amigo y gracias por visitar el Blog!

      Eliminar
  8. hola, yo tengo un problema con el L293B, no entiendo por qué las salidas del driver son de 4V cuando por el pin 8 recibe 12V (aclaro que la tension de la logica del driver es de 5V y su masa esta unida con la de los 12V) Gracias por responder.

    ResponderEliminar
    Respuestas
    1. Hola Diego, efectivamente no es normal lo que se sucede a menos que estés aplicando esa tensión por la pata 16 del chip.

      Como comenté en el texto del Blog, debes prestar especial atención a la hora de aplicar las dos tensiones con las que puede trabajar el L293B. Por un lado, tienes la tensión de alimentación del propio chip, que se aplica por la pata 16 y podría ser por ejemplo de 12V y, por otro lado, tienes la tensión que se aplicará a sus salidas, y esta debes proporcionársela por la pata 8.

      Te recomiendo que midas tensiones en ambas patas para detectar posibles errores.

      También sería de agradecer que comentes los resultados, con el fin de que pueda servirles a otros compañeros del blog que puedan encontrarse con tu misma situación.

      Saludos Diego.

      Eliminar
  9. Hola amigo espero que me puedas colaborar:
    p1: pulsador 1
    p2: pulsador 2
    m1: motor 1
    m2: motor 2

    p1 p2 m1 m2
    0 0 derecha off
    0 1 izquierda izquierda
    1 0 off derecha
    1 1 izquierda derecha

    integrado L293B
    MSP430G2553
    lenguaje c / c++
    2 motores DC 5v
    es un proyecto que tengo para mañana y seria de mucha ayuda si me pudieras colaborar..
    gracias...

    ResponderEliminar
  10. Muy util y completo tu articulo, les comparto mi trabajo sobre el tema, espero que por lo menos a alguien le sea de utilidad :)
    Puente H L293B

    muchas gracias!

    ResponderEliminar
  11. Que tal. Tengo dos motores PAP Bipolares EM-290 y EM-462, los voy a utilizar para hacer un posicionador XY. El driver L293D que conectare a la PIC16F877a con los motores si me proporcionaran la corriente necesaria para hacer su giro. Sabes tu o alguien visitante del blog la ficha técnica de estos motores. Gracias

    ResponderEliminar
  12. Ayudaaa!! yo necesito hacer funcionar mi circuito tambien con solo una fuente de energia pero no lo consiguo. no se como lo hiciste tu pero yo ves que lo hago con 1 fuente mi cuircuito falla, solo funciona todo bien si tengo pongo 2 suministros y no quiero hacerlo asi ayudaaaaa

    ResponderEliminar
  13. ayuda las entradas me marcan un voltaje positivo y hacen corto con el,en ves de esperar la señal de entrada me sacan un voltaje,ojala me puedan ayudar gracias

    ResponderEliminar
  14. Hola David, sería conveniente que especificaras un poco más tu problema e incluso que incluyas el esquema eléctrico que estás utilizando, con el fin de poder ayudarte. Un saludo.

    ResponderEliminar
  15. Hola quisiera que me ayudaras y me dieras tu opinión. Mi proyecto es hacer un carrito robótico y uso el l293d , el arduino uno , 2 motores dc que aguantan hasta 18 v y un módulo Bluetooth hc05 . Mi idea fue alimentar al arduino con una batería y del pin de 5v del arduino alimento al driver (o sea por la para 16) y también con esa salida de 5v alimento al módulo Bluetooth, los dos motores los voy a alimentar aparte con otra pila que puede ser una de 9v alcalina ya que donde vivo las recargables con muy costosas , o la otra opción sería una lipo. Mi duda es cuantos mah le puedo meter por la para 8 para alimentar a mis 2 motores ? Con una pila de 9v estaría bien?, ya que no se cuantos mah tienen esas pilas . O con Una batería lipo estaría mejor ? Pero de cuantos mah ?

    ResponderEliminar
    Respuestas
    1. Hola Maria,
      Independientemente del tipo de batería que utilices, deberás tender en cuenta cual es la tensión de trabajo de los motores DC que vas a utilizar. En cualquier caso, el L293 es capaz de entregar una corriente constante de 1,5A por cada canal y hasta 2A de pico. En el modelo L293D la corriente máxima será de 600mA constante y 1.2A de pico. Si por ejemplo vas a utilizar motores de 6V, entonces por la pata 8 del L293/L293D deberías utilizar la misma tensión, es decir, 6V. En este caso, si quisieras utilizar una bateria de 9V deberás reducir su tensión con un regulador, ya sea lineal o DC-DC. Otra cosa que debes tener en cuenta es que el modelo L293 además requiere de diodos de protección contra corrientes inversas inducidas por los motores hacia el Driver. En el caso del modelo L293D esto no es necesario puesto que lleva dichos diodos incorporados en su interior. En cuanto a la corriente de carga de una bateria de 9V (no recargable), puede estar entorno a 500mA pero esto va a depender también de la "marca" de la bateria. En este tipo de proyectos, es buena idea utilizar baterías recargables puesto que una batería de 9V no durará mucho.

      Resumiendo, la tensión que debes meter por la pata 8 será la tensión máxima que soporten tus motores DC, 5V, 12V, 24V, etc. esto debes mirarlo en el propio motor.

      Espero haber aclarado tu duda.

      ¡Bienvenida al Blog!

      Eliminar
  16. Gracias por tu explicación ! Otra pregunta , si voy a trabajar con 2 motores de 5v y los alimento con una batería de 7,4v , a cada motor le van a llegar los 7,4 v o se distribuye?

    ResponderEliminar
  17. Hola de nuevo Maria, a los motores les va a llegar la tensión de alimentación que le proporciones al driver L293 por el pin numero 8 (VCC2). Así que, si en ese pin conectas una tensión de 7,4V esa será la tensión que vaya dirigida a los motores, a los dos. Un saludo.

    ResponderEliminar
  18. Gracias por tu ayuda Manuel ! Otra cosa , los pines Enable los puedo activar a través de código ? Lo que yo hice fue conectar los dos pines de enable a 2 pines digitales del arduino y en la programación los declare como salidas y los activo con HIGH que por lo que leí al activarlos así me proporciona 5v para cada pin de enable

    ResponderEliminar
  19. Hola Maria, gracias a ti por preguntar en el Blog. Con respecto a tu consulta, si puedes conectar los enable directamente a salidas digitales de Arduino, el cual "dependiendo de la placa de Arduino 3V3 o 5V" te proporcionará una salida de 5V en dichas salidas digitales. Si además quisieras una "protección extra" de los pines de control de Arduino, podrías utilizar optoacopladores con lo cual aislarías "ópticamente" dichas conexiones, aunque a priori no deberías tener ningún problema.

    ResponderEliminar
  20. Hola que tal. tengo una consulta.
    Veras estoy haciendo un proyecto de microSumo en el cual uso el puente h l293d, el caso en que hace unos dias estuve probando baterias pequeñas para poderlos incorporar para una competencia.
    Las baterias eran de celulares, las dos son de 3.7v pero con la diferencia de que una es de 1A y el otro es de 2A, cuando las coloque pude observar que los motores no desarrollaban bien a tal punto de ya no funcionar.
    Luego de eso probe con una bateria de 9v con 259 mAh pero ya no funciono.
    Hice una hipotesis en base al datasheet, como el puente puede dar hasta 600 mAh, con las baterias de celulares en serie pudo haber dañado el puente h.
    espero su pronta respuesta, gracias
    buen blog por cierto

    ResponderEliminar
  21. Hola Mario, gracias por tu comentario y por visitar el Blog.
    Verás, que las baterías sean de más o menos amperaje no es problema, eso lo único que va a hacer es que cuantos más amperios tenga la batería, más te van a durar, pero en ningún momento ese va a ser el motivo si todo está conectado correctamente y ningún componente averiado claro. Dado que si por ejemplo tuvieras algún corto, toda esa corriente si que podría llegar a dañarte cosas en tu circuito.

    Para que te hagas una idea, yo he tenido conectado estos ICs (L293xx) con una fuente de alimentación de hasta 20 Amperios y sin ningún tipo de límite. Eso sí, lo importante también es la tensión de trabajo, que en mi caso fue de 5 voltios en todo momento.

    Por lo tanto, algo que si debes tener en cuenta es que la tensión de alimentación del IC ¡NO DEBE SUPERAR LOS 7 Voltios! Esta debe ser mayor de 4,5V y menor de 7V. Si alimentabas al L293D con las dos baterías en serie, ya te fuiste a mas de 7 voltios (recién cargadas podrías tener más de 8 voltios), si también utilizaste una pila de 9V igualmente ya te pasaste en 2V del límite máximo.

    Es muy importante tener en cuenta que el L293 trabaja con dos tensiones o voltajes diferentes, como comento en el post. Una tensión es la de trabajo del propio chip L293 que como digo debe estar entre 4,5V y 7V y la otra tensión es la que vas a utilizar para alimentar a los motores, esta última puede estar entre 4,5V y 36 voltios.

    Todo esto te lo digo así, sin poder ver el esquema eléctrico que utilizaste en tu proyecto.

    ResponderEliminar
  22. Este comentario ha sido eliminado por el autor.

    ResponderEliminar
  23. Hola, una pregunta de donde surgen las corrientes parásitas y en que afectan a los motores ?

    ResponderEliminar
  24. Hola, primero PS felicitarte x el blog, es excelente, quisiera preguntarte... Estoy haciendo un robot caminante y quiero usar el L293d, Arduino nano y una batería de 9v recargable , al Arduino lo alimentate x aparte y al driver desde el pin 5v del Arduino... Si al driver en el pin 8 le conecto los 9v esta tensión le llegará en su totalidad a los motores o se verá disminuida?? De antemano muchas gracias y saludos desde Colombia

    ResponderEliminar
    Respuestas
    1. Hola Rastaxico, gracias a tí por el comentario!! Un placer tener comentarios procedentes del otro lado del Atlantico ;). Verás, la tensión con la que alimentas a los motores, la cual se proporciona por el L293D, como bien dices por el pin nº 8, se puede ver reducida en una pequeña cantidad, del orden de 1 a 1.5 voltios (1,4V - 1,2V). Esto es debido a los transistores que incorpora el L293D en su etapa de salida, los cuales provocan esa pequeña caida de tensión.

      Eliminar

Publicar un comentario

Entradas populares de este blog

Como usar el TL431 (muy facil)

En este artículo, no vamos a entrar en el funcionamiento interno de este IC, ni tampoco en sus características técnicas, puesto que para esos fines ya existe su hoja de datos correspondiente. Más bien, lo que pretendo aquí es dejar constancia de como podemos utilizar este IC desde un punto de vista práctico, útil y sobre todo de una manera sencilla, con el objetivo de que cualquiera pueda utilizarlo. Si has llegado hasta aquí, probablemente ya sabes que por internet hay mucha información sobre este IC, pero también bastante confusa o excesivamente técnica, sin mostrar tan siquiera un ejemplo de funcionamiento, o como calcular sus pasivos. Pues se acabó, a partir de hoy y después de leer este post, ya te quedará claro como utilizar el TL431 para obtener una tensión de referencia estable y precisa. Vamos al grano y que mejor que empezar aclarando que el TL431 NO ES EXACTAMENTE UN ZENER como se empeñan en decir en muchos sitios, es verdad que se le conoce como el Zener Progra

WinRT with C++ Standard vs C++/CX

OFFTOPIC: Nota: Hoy he decidido escribir esta publicación del blog en inglés. Note: Today I decided to write this blog post in English. In a new application than I am developing for a company, I had to decide if to make use of C++/CX (C++ with Component Extension) or make all the main stuff in C++ standard and ABI/COM. All of you than have had to work with COM (Component Object Model) and fighting with the interfaces, reference count, etc. known the tricky and heavy that it can become. As an example of the easy approach using C++/CX, I am creating a new Uri object, like this: auto uriEasyWay = ref new Windows::Foundation:: Uri ( http://www.manuelvillasur.com ); assert (wcscmp(uriEasyWay->AbsoluteUri->Data(), L"http://www.manuelvillasur.com/" ) == 0); Now, I going to show you the more difficult approach using C++ Standard and  ABI/COM interfaces: HSTRING_HEADER header = {}; HSTRING string = nullptr ; HRESULT hr = WindowsCreateStringRefer

Árbol binario de expresión y Notación Posfija (II)

En una publicación anterior, hablaba sobre que es la notación posfija, para que puede ser útil y mostraba un pequeño ejemplo con una expresión aritmética simple: (9 - (5 + 2)) * 3 Pues bien, hoy voy a mostraros como podemos crear el árbol binario correspondiente para analizar o evaluar esta expresión, haciendo uso del recorrido en postorden. Lo primero que debemos hacer es crear el árbol, respetando las siguientes reglas: ⦁ Los nodos con hijos (padres) representarán los operadores de la expresión. ⦁ Las hojas (terminales sin hijos) representarán los operandos. ⦁ Los paréntesis generan sub-árboles. A continuación podemos ver cómo queda el árbol para la expresión del ejemplo (9 - (5 + 2)) * 3: Si queremos obtener la notación postfija a partir de este árbol de expresión, debemos recorrerlo en postorden (nodo izquierdo – nodo derecho – nodo central), obteniendo la expresión: 952+-3x Así, si quisiéramos evaluar la expresión, podemos hacer uso de un algoritmo