I want to control a 30x1 array of pins through a raspberry pi B+. On a breadboard, I set up a series of shift registers (74HC595) to an array of 2V leds, which I can control as intended. After the leds, I'd like to increase the current from 4mA to 25mA. I installed a series of darlington transistor arrays (ULN2003APG) to do this. I had read that such transistor arrays require 1.4V at the base in order to activate. Since I have connected to the Pi's 5V output, I used 460 ohm resistors (the closest to 400 ohms I had). However, the test leds that I'd placed downstream of the transistor arrays won't turn on. Thinking that I had overestimated the base voltage needed, I cut down on the resistance - eventually scrapping both the leds and resistors altogether. I still received no output from the test leds. What's wrong here? Any help would be much appreciated!

enter image description here

On the left are the five transistor arrays. They are oriented downwards (with the indentation at the bottom). As situated, the common is top left, the ground is top right. The common is connected to the Pi's 5V through a 100 ohm resistor (I will need 2.5V and 25mA post-transistors). The ground connects back to the Pi's negative terminal on it's 5V port.

On the left are shift registers, which are wired to the Pi. They are working appropriately. Not shown, but previously configured, was a wire leading from the transistor's output through a 125 ohm resistor to the test led bulb.

  • 1
    \$\begingroup\$ Can you post a schematic of your circuit? \$\endgroup\$
    – diverger
    Commented Nov 25, 2014 at 3:53
  • \$\begingroup\$ The ULN2003 has resistors built in, so there is some other issue. \$\endgroup\$ Commented Nov 25, 2014 at 4:00
  • \$\begingroup\$ I added a pic of the breadboard and description below, not knowing how to submit a schematic. If it's still unclear, I'll figure it out. Really appreciate the help. \$\endgroup\$ Commented Nov 25, 2014 at 4:39

2 Answers 2


Per TOSHIBA's ULN2003APG datasheet, this driver already has built-in input base resistor, for ULN2003APG, the resistance is 2.7k\$\Omega\$. It's dedicated to interface directly to TTL. or 5V CMOS level. So you can directly connect their inputs to your MCU.

For driving LEDs, the common pin maybe left open.

Because it's a sink (not source) driver, so you can connect your LEDs with anode tied to power supply, and cathode with a current limiting series resistor to the driver's output pin.

  • \$\begingroup\$ Huge help. Thank you. As you figured, I had configured the circuit to be source, not sink with respect to the transistors. \$\endgroup\$ Commented Nov 27, 2014 at 1:49

To me, it appears that you have the outputs of the ULN2003s connected to one side of the LEDs, and the other side of the LEDs connected to the '595s - if so, the LED current is still limited by the output characteristics of the '595.

You should have the shift register outputs connected to the ULN2003 inputs, and the LEDs connected (with a resistor) between the ULN2003 outputs and +5 Volts, like so:


simulate this circuit – Schematic created using CircuitLab

If you press "control-M" while editing your post, a schematic editor will open, so you can draw your circuit for all to see.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.