0
\$\begingroup\$

I have written a simple Python program which runs on a RPi to make an LED blink. For that I connected my RPi using GPIO 23 with the anode of the LED, and before going back to ground, I added a resistor with 220 ohm. So far, this works.

Now I would like to make two LEDs blink, so I just thought to add a second LED and put them in series. Unfortunately, exactly nothing happened. So I have a number of questions:

  1. Why does nothing happen? Are the 3.3 volts of the RPi too little for two LEDs and a 220 ohm resistor?
  2. Is it even correct to put the LEDs one after the other, or would I need to put them in parallel?
  3. How do I calculate the correct resistor, if I don't know the data of the LEDs? What would happen if I simply remove the resistor? Would I risk damaging the RPi?
\$\endgroup\$
3
  • \$\begingroup\$ What's the forward voltage for each LED? \$\endgroup\$ – Finbarr Oct 28 '18 at 16:36
  • \$\begingroup\$ As said, I do not know anything about those LEDs. How do I find this out if I don't have a data sheet? \$\endgroup\$ – Golo Roden Oct 28 '18 at 16:39
  • 2
    \$\begingroup\$ Measure the voltage across it when it's lit. \$\endgroup\$ – Finbarr Oct 28 '18 at 16:42
1
\$\begingroup\$

To answer your first question, yes. 3.3V is not enough to forward-bias two LEDs, which typically need somewhere around 2V each for red LEDs and more for other colors.

For the second question, putting them in series is entirely reasonable, and often preferred as it prevents current crowding (where one LED with a slightly lower forward voltage "hogs all the current").

As for the third question: You'd have to measure the forward voltage of the LED. Many, if not most, multimeters can measure the forward voltage of a diode, but few (at least that I've seen) can measure voltages as high as most LEDs. Not using a resistor will damage your LED, your rpi, or both, and is not recommended.

To measure the LED forward voltage, try the following circuit:

schematic

simulate this circuit – Schematic created using CircuitLab

This will give you an idea of the LED forward voltage. If you hook up this circuit and the LED doesn't visibly turn on (which may happen for high-current blue or white LEDs), try changing to a 100Ω resistor.

A better circuit would involve an active current source, but this one is probably good enough for your purposes.

\$\endgroup\$
1
  • \$\begingroup\$ @GoloRoden It's generally recommended that you not mark answers as accepted until it's been at least 24 hours, to give other people a chance to post answers. Someone else might have a better answer than me! \$\endgroup\$ – Hearth Oct 28 '18 at 18:52
1
\$\begingroup\$

220 Ω is a bit on the high side.
If blue, green, or white use a 50 Ω for 10 mA.
If red, orange, or yellow use a 100 Ω for 10 mA.
If driving them with a GPIO pin, use one pin for each LED.

There apparently is no datasheet for the RPi's processor, the BCM2837.
So I figure 10 mA is a safe current.

I searched for a datasheet but to no avail.
I did find many others looking as well.

The Cortex peripheral GPIO pins are weak. No one seems to know how weak.

Below is the "best" I could find. It's on the BCM2835 not BCM2837.

The GPIO pins are connected directly to the BCM2835 chip at the heart of the Raspberry Pi. These provide only a 3.3V output level, and are not capable of supplying much power. More importantly, if they are damaged through misuse the Pi itself will need to be replaced.

So, if you are connecting anything more than a small LED to the GPIO output, you should use an additional circuit to boost the voltage and/or current.
Source: RPi GPIO Interface Circuits

So what's a "small LED"?
Broadcom sells some high efficacy indicator LEDs. Possibly to be used with the BCM2837 GPIO. Broadcom has a 11° green LED with a luminous intensity of 57,000 mcd.
High efficacy means the LED do not need much current to be fairly bright.


The Safe Approach

This are the recommend circuits, form the above source, for driving a load with the RPi:

enter image description here


enter image description here


This is what I would recommend putting in the "load" box.
You could use the +3.3V (3V3) rather than 5V.

enter image description here

\$\endgroup\$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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