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+02:00 da inventable

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

Deja un comentario

Tu dirección de correo electrónico no será publicada.

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