ULN2803 8-Channel Darlington Driver
One chip turns eight wimpy 5 V GPIO outputs into eight 500 mA load-driving switches with built-in flyback diodes.
Difficulty: Breadboard. Estimated build time: about 35 minutes. Estimated parts cost: about US$3.20. 4-line bill of materials. Compare supplier offers when available. An 8-channel relay/LED-cluster driver built around the ULN2803A, an array of eight Darlington pairs in a single DIP-18 package.
Pinout — inputs on the left, outputs on the right
DIP-18 with the notch up: inputs 1B–8B are pins 1–8 (left side, top-down). Outputs 1C–8C are pins 11–18 (right side, bottom-up — note the mirror). Pin 9 is GND, pin 10 is COM (the flyback-diode common cathode). VCC is NOT on this chip — the inputs are powered through the GPIO pin itself.
Drive an LED cluster from one input
Put a high-brightness LED + 100 Ω resistor between your load supply (e.g. 12 V) and output 1C (pin 18). Tie pin 10 (COM) to that same 12 V rail. Connect input 1B (pin 1) to an Arduino digital pin. digitalWrite HIGH lights the LED; LOW switches it off. The chip sinks the current to GND through pin 9 — your Arduino sees only the input current of about 1 mA.
Drive a relay coil safely
Replace the LED with a 5 V relay coil between the relay's coil supply and an output channel. Because COM (pin 10) ties to that same supply rail and contains the flyback diodes, you don't need to add an external 1N4148 across the coil — it's already built in. Make sure your relay coil's draw is under 500 mA per channel.