The Process of Building an Electronic Project
Electronics Projects: How to Connect a Servo to a BASIC Stamp
Digital Electronics: Kit 74 DOS Commands

Digital Electronics: Darlington Arrays to Drive High-Current Outputs

Two electronic transistors can be connected to form a Darlington transistor (sometimes called a Darlington pair), which can switch much more current than the collector-emitter circuit of a standard transistor can. You can use darlington transistors to switch up to 500 mA from the output of a parallel-port data pin, which is enough current to drive a mechanical relay or a small electric motor.

Rather than use individual darlington transistors, you can use an integrated circuit specially designed for driving high-current loads from TTL-level inputs. The most common ICs of this type are the ULN2003, which has 7 darlington drivers in a 16-pin DIP package, and the ULN2803, which has 8 drivers in an 18-pin DIP package.

You won’t find these ICs at your local RadioShack store, but if you have access to an electronics-parts store, it probably will have this useful chip in stock. If not, you can easily find it on the Internet by searching for “ULN2003” or “ULN2803.”

As you can see, pins 1 through 7 are the input pins, which you can connect directly to the output pins from the parallel port. Pins 10 through 16 are the output pins, which you can connect to the circuit you want to control. Pin 8 connects to ground, and pin 9 connects to a voltage source.

ULN2003 ULN2803
Pin Description Pin Description
1 Input 1 1 Input 1
2 Input 2 2 Input 2
3 Input 3 3 Input 3
4 Input 4 4 Input 4
5 Input 5 5 Input 5
6 Input 6 6 Input 6
7 Input 7 7 Input 7
8 Common ground 8 Input 8
9 Vss 9 Common ground
10 Output 1 10 Vss
11 Output 2 11 Output 1
12 Output 3 12 Output 2
13 Output 4 13 Output 3
14 Output 5 14 Output 4
15 Output 6 15 Output 5
16 Output 7 16 Output 6
17 Output 7
18 Output 8

The output circuit for a ULN2003/2803 is a little different from what you may expect. Rather than sourcing current for the load, the darlington array sinks the current. Thus, the output pin is on the ground side of the load circuit. As you can see, the voltage source (Vss) feeds both the load circuit (in this case, a small motor) and the ULN2003.


If you’ll be using a ULN2003 or ULN2803 to drive an inductive load such as a relay or motor, you should use a Zener diode on pin 10. This diode prevents current from flowing in the wrong direction into the ULN2803 in case the relay or motor coil creates a large backward voltage spike, as coils are apt to do.

  • Add a Comment
  • Print
  • Share
blog comments powered by Disqus
Electronics Basics: What is a Gated Latch
Electronics Projects: How to Create Names in PBASIC Code
Digital Electronics: Control Parallel-Port Output from an MS-DOS Prompt
Electronics Projects: How to Use DO Loops in PBASIC Code
Electronics Projects: How to Use Your Crystal Radio