El ULN2003: driver de salida para microcontroladores

El ULN2003 es un circuito integrado muy versátil, compuesto internamente por 7 drivers idénticos e independientes entre si, que permiten de comandar con un microcontrolador relés, pequeños motores DC, motores paso a paso, luces de baja tensión o tiras de leds.

Cada driver está constituido por dos transistores en configuración Darlington. La configuración Darlington, ideada por Sidney Darlington nel 1953, consiste en conectar dos transistores bipolares en cascada obteniendo así, una ganancia elevadísima porque se multiplica la ganancia de cada uno de los dos transistores. Gracias a ello, podemos controlar cargas de una cierta potencia con corrientes de entrada muy pequeñas.

Circuito de un par Darlington comparado con un transistor común.
Circuito de un par Darlington comparado con un transistor común.

La configuración Darlington no es exenta de defectos como veremos a continuación. Un transistor NPN de uso universal, empieza a conducir cuando aplicamos en su base una tensión de aproximadamente 0,6V. Si aplicamos en ella una pequeña corriente podemos llevarlo a la saturación, con una tensión entre colector y emisor (VCE) muy baja, por ejemplo, en el caso de BC337, entre 0,2V y 0,5V (para obtener un interruptor perfecto debería ser de 0V).

Caídas de tensión de un par Darlington comparadas con un transistor NPN común.
Caídas de tensión de un par Darlington comparadas con un transistor NPN común.

En un par Darlington, la tensión de entrada será el doble respecto a los 0,6V porque se suman las tensiones de base de ambos transistores como podemos ver en la figura. También será mayor la caída de tensión en el transistor de salida porque será la suma de la tensión de saturación del primer transistor + la tensión de base-emisor del transistor de salida.

Diagrama pictórico y circuito interno del ULN2003 (7 canales).
Diagrama pictórico y circuito interno del ULN2003.

De cualquier manera, en el caso del integrado que estamos analizando, estos defectos no son significativos porque generalmente las salidas de un micro son de 3,3V o de 5V, superando comodamente el umbral de conducción del driver. Por otro lado, una caída de tensión de 1V de salida en las cargas puede ser tolerada sin inconvenientes.

Circuito interno de uno de los drivers del ULN2003.
Circuito interno de uno de los drivers del ULN2003.

En la figura anterior podemos observar el circuito interno de uno de los driver del ULN2003. En serie con la entrada podemos ver una resistencia de 2,75K y otras resistencias de polarización que mejoran las características del driver. La resistencia de entrada de cada driver nos ahorra de poner resistencias externas cuando conectamos el ULN2003 al microcontrolador.

Conexión de un ULN2003 a un microcontrolador y con ejemplos de distintas cargas.
Conexión de un ULN2003 a un microcontrolador y con ejemplos de distintas cargas.

En el circuito interno podemos ver también un diodo conectado al colector del transistor de salida y que sirve para eliminar la extra tensión de apertura cuando usamos cargas inductivas (relés o motores) como explico en mi artículo "Como controlar un relé con un transistor". Para que este diodo trabaje, es necesario conectar el pin 9 (COM) del integrado al positivo de las cargas. (ver figura con ejemplo de conexión).

Datos técnicos del ULN2003 y del ULN2803.
Datos técnicos del ULN2003 y del ULN2803.

La ganancia en corriente de cada driver es mayor de 500 por lo que para obtener la máxima corriente de salida basta una corriente de entrada inferior a 1mA. En la figura podemos ver un ULN2003 conectado a un microcontrolador (puede ser un PIC, Atmel, Arduino, Raspberry PI) y con distintas cargas (motores DC, tiras de leds, relés, etc.). En el ejemplo del primer motor podemos ver que para obtener una mayor corriente de salida, es posible conectar más de un canal en paralelo. +V es la tensión necesaria para alimentar la parte de potencia y es independiente de la alimentación del microcontrolador. Solo es necesario que la masa sea común a ambos.

Diagrama pictórico y circuito interno del ULN2803 (8 canales).
Diagrama pictórico y circuito interno del ULN2803 (8 canales).

En realidad el ULN2003 forma parte di una familia compuesta por varios modelos (ULN2001, ULN2002, ULN2003, ULN2004) que son muy similares entre si, cambia principalmente el valor de la resistencia de entrada para adaptarlos a distintas familias lógicas. Actualmente el ULN2003 es el más usado porque trabaja bien con tensiones de control de 5V (TTL) y de 3,3V (LTTL). Existe una variante de este integrado con 8 canales en lugar de 7: el ULN2803. Para poder albergar el octavo canal el encapsulado es de 18 patas. Por el resto es igual al ULN2003.

Con el ULN2003 (o ULN2803) podemos controlar un motor paso a paso de tipo unipolar aunque si actualmente no son muy usados.

Hasta la próxima!!

Gabriel

Artículos relacionados:

Como controlar un relé con un transistor

Como funciona un puente para motores de corriente continua

- Indice de todos los artículos de Inventable -

 

Los contenidos de este blog son originales y están bajo una licencia Creative Commons BY_NC_SA

El ULN2003: driver de salida para microcontroladores ultima modifica: 2018-02-09T18:30:03+01:00 da inventable

40 comentarios sobre “El ULN2003: driver de salida para microcontroladores”

  1. Excelente artículo. Muy útil para usar en cualquier proyecto de Electrónica con microcontroladores. Muy bien explicado y muy agradable de leer. Muchas gracias.

  2. Realmente impresionado por la claridad, sencillez y calidad de cada publicación, los felicito por el esmero y entrega que se nota en cada artículo, muchas gracias por trabajar y compartir con ese estándar de calidad.

  3. Hola saludos!!!…tengo una pregunta haber si me pueden ayudar,resulta que arme un secuenciador de leds y funciona bien en proteus son dos ramales de leds en serie(con sus respectivas resistencias) conectados por un extremo a 12volts y por el otro a los pines de salida de un ULN2803, el pin comun igual va a 12volts ya que los soporta y por el otro lado programe un pic12f675 conectado directamente a la entrada del driver uln2803 y pues…resulta que nada mas una vez me hizo la secuencia y se queda PRENDIDO y ya no hace la oscilacion de prender-apagar…¿saben a que se pueda deber ese comportamiento? creen que si les pongo unos diodos 1n4148 funcione o me pueden decir algunas alternativas,si fueran tan amables…Gracias

    1. Hola: el 2803 es un chip extremadamente confiable. Lo que puede estar pasando es que te estés excediendo en la corriente y se haya quemado. En primer lugar verifica eso, o escribe de nuevo detallando un poco más los valores que utilizaste. En cuanto a los diodos, sólo son necesarios si estás manejando cargas inductivas (relés, por ejemplo). En este caso no hacen falta ni el pin común ni los 4148.

      Saludos,
      Juan

      1. Hola que tal!…sobre la duda que te comente sobre el pic12f675 y el ULN2803,volvi hacer la prueba pero esta vez conecte las salidas a 2 transistores NPN 2N222 y el colector a los 3 ramales led conectados en paralelo con las sigs.resistencias calculadas(470omhs y 2 de 100 omhs) y estas a 12 volts…y tierra comùn…y el resultado fue que los leds se quedan prendidos no hacen las secuencias.Despues quite los ramales leds y conecte solo los transistores 2N2222 con un led y una resistencia de 330 ohms y aqui si todo funciona correcto hacen las secuencias programadas serà acaso el voltaje de alimentacion del pic o algun FUSE , el pic12f675 lo alimento con una bateria CR2032 de 3volts,lo que pasa que en el Datasheet del pic dice que soporta min.3.3volts ¿comò ves,sera acaso eso o podrias dar un veredicto?…Gracias

        1. Hola, según las hojas de datos, el PIC12F675 funciona desde los 2V hasta 4 MHz con el CAD deshabilitado o desde 2.5V con el CAD habilitado, sino desde los 3V hasta 10MHz, o desde los 4.5V hasta los 20 MHz.
          Por tanto con los 3V de la CR2032, el PIC, te va ha funcionar si no superas los 10 MHz del cristal.

          Saludos
          HJ

  4. Saludos. el ULN2003 puede ser sustituido por el integrado CS2003CB ?… Tengo dudas al respecto. Por favor se agradece su informacion.

  5. Buenos días saludos desde acá Venezuela , muy buena explicación me gustó mucho como decimos acá claro y raspao …

  6. Hola , soy estudiante de electronica, y me piden hacer girar un motor DC izquiera y derecha , un puente h , que normalmente haria con El l293d , pero en este caso me piden usar este integrado , el ULN2003 , Que puedo hacer alli , como deberia conectarlo

  7. Buen día. Muy buena explicación. Una consulta, se podría usar un ULN2003 en lugar de un ULN2004 agregando una resistencia externa a cada entrada y así poner 15vcc a la entrada del ULN2003??? Me duda es porque el ULN2003 tiene una resistencia de 2.7 Kohm a la entrada y el ULN2004 es de 10.5 Kohm.

  8. hola, tengo una gran curiosidad que no cuadra en un circuito de una tarjeta de aire acondicionado donde el uln2003apg no pasa la señal al relee que activa al compresor del aire le mido los pines del relee y no da señal de voltaje, sin embargo mido el los pines del uln2003apg de la linea que va al relee con respecto a negativo y tiene un voltaje de 13.4volt. y con respecto al positivo que alimenta al uln2003apg también tiene la misma tensión, ahora porque no me da la señal de voltaje al relee si todo aparentemente esta bien? saque el integrado y lo probe en un protoboard y funciona con señal positiva me activa todos los componentes que coloco en la salida de integrado

  9. hola, tengo una gran curiosidad que no cuadra en un circuito de una tarjeta de aire acondicionado donde el uln2003apg no pasa la señal al relee que activa al compresor del aire le mido los pines del relee y no da señal de voltaje, sin embargo mido el los pines del uln2003apg de la linea que va al relee con respecto a negativo y tiene un voltaje de 13.4volt. y con respecto al positivo que alimenta al uln2003apg también tiene la misma tensión, ahora porque no me da la señal de voltaje al relee si todo aparentemente esta bien? saque el integrado y lo probe en un protoboard y funciona con señal positiva me activa todos los componentes que coloco en la salida de integrado
    gomezrp@gmail.com

  10. Hola Yoni: el ULN2003IC aparentemente no existe. ¿Estás seguro de la terminación? Si seguro es ULN2003xxxx, la función es la misma. Si la terminación que indicas existe, a lo mejor tiene otro encapsulado, u otro rango de temperatura, vaya uno a saber.
    Pero puede ser que hayas confundido IC (por «Integrated Circuit») con una terminación del código.

    Saludos,
    Juan

  11. Hola. Necesito controlar tres relés de 12 Volts con contactos de 250v/2A para encender tres televisores. La placa que los controlará es una KL25Z que tiene salidas digitales de 3.3v y 4mA máximo. Los tres relés se activarán y desactivarán siempre en forma simultánea. Entonces, puedo utilizar in ULN2003 para controlar los 3 relés coenctando cada uno a una salida independiente del integrado uniendo las tres entradas correspondientes y conectándolas a la salida de la placa KL25Z?

  12. Hola, disculpen mi ignorancia, a ver si alguien me puede sacar esta duda. Si conecto un arduino a una fuente de 5 v (usb)
    Y alimento con el uln con una fuente de alimentacion de 12v, tiene que ser de la misma fuente o con unir las tierras esta bien?

    1. Hola Martín: con unir las tierras alcanza.
      OJO con el pin 9 (o 10 para el 2803). Si lo vas a usar debes conectarlo a la fuente de 12 V, no a la de 5 !!! No sé si esto se aplica a tu aparato, pero me sucedió en mis comienzos, y el humo resultante no fue agradable…
      Si tienes alguna duda pregunta de nuevo y te explico los porqués.

      Saludos,
      Juan

  13. hola buenas, con respecto al pin de GND con los integrador UNL 28003 o 2003, los quiero alimentar con 24v, en proteus funciona, pero ya en placa no hace nada y tengo duda con el pin de GND, va conectado el GND a la alimentación de UNL (24V) o a los 5V de un microcontrolador o debo de unir las GND de 5V y 24V.

  14. Hola que tal excelente articulo, solo una consulta estoy buscando su complementario en version PNP de casualidad alguien tiene alguna idea.

    1. Hola Antonio: por lo que sé hubo algunos hace tiempo, pero no sé si seguirán existiendo. Personalmente no conozco; quizás Héctor o Gabriel sepan de alguno.

      Saludos,
      Juan

  15. Tengo un circuito integrado 7300 de texas instrument, es el unico dato que tengo, pero no se su estructura interna, se utiliza en un modulo de entrada sin llave para winstar modelo 1995 y es para accionar unos releys, me podria funcionar si lo remplazo por un uln 2004 , gracias.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.