miércoles, 24 de octubre de 2012

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.

29 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