Troubles powering a bright LED with Arduino 3.3V

Hi to all.

Recently I've been forced to move from Arduino Mini Pro 5V to the 3.3V version. Today I've discovered how is hard to make an adafruit white LED bright with so low voltage.

By using a (chinese) stabilized power supply at 3.3V I have verified that I can obtain around 25 mA of flowing current in the LED with just a 10 Ohm load-resistor connected to ground. This make the LEd very bright that is what I'm looking for. Unfortunately, when I connect the led to a pin of Arduino the, current falls down to the miserable value of 8.71 mA :o :o :o

I've tested digital and analog pins, the result doesn't change: without any LED I measure around 3.25 Volt when the pin is at HIGH value, after connecting the LED+resistor the voltage drops at 2.97 V. That voltage is absolutely not enough to make the LED working well since the the forward voltage I measure is 2.85V.

But, but, but, but... if I connect the LED to directly to the Vcc pin of Arduino... bang! I measure 18.7 mA of current and the light intensity become (almost) acceptable. So that minimal difference in voltage makes the LED working in a reasonable way.

  1. Why the voltage at output pins goes down when a load is attached?
  2. How I can power the LED with voltage at Vcc and, at the same time, turn it on/off?
  3. There is any bright LED with lower forward voltage the 3V???

p.s: below some measurement I've made with the Adafruit Super Bright White led. Maybe they are interesting for somebody.

PWR     R       I       FV        Note
(volt)  (ohm)   (mA)    (volt)
-----------------------------------------------
2.97    40      6.28    ?         pin #2
2.97    20      7.69    ?         pin #2
2.97    10      8.71    2.85      pin #2
2.97    5       9.31    ?         pin #2
2.97    0       9.97    ?         pin #2 (for few seconds)
3.25    10      18.7    3.03      Vcc pin
5       120     15.5    2.99      stabilized power supply device      
5       100     17.9    3.05      stabilized power supply device
5       50      31.1    3.25      stabilized power supply device

(FV = forward voltage)

If VCC = 3.3V, then Vout-high will be one transistor voltage drop less - and the voltage drop increases with current. With 10mA load, Vout-high could be as low as 2.6V. (0.7V loss)

See Table 30-2 in the datasheet Atmel-8271J-AVR- ATmega-Datasheet_11/2015

BTW, exists a (cheap) way to increase output voltage, let's say, from 3.3 to 5V to power the LED? (I don't know exactly what I mean, but I hope it is clear :D )

CrossRoads: With 10mA load, Vout-high could be as low as 2.6V. (0.7V loss)

Thanks for the explaination. So powering a LED with output pins of arduino is not a smart solution, expecially when the difference between forward voltage and pin-voltage is so small.... :(

You shouldn't expect to be able to drive something that needs a minimum of 3.3v directly form the pin of a 3.3v microcontroller (nor something that needs a minimum of 5v from a 5v micro) - there's too much loss in the pins unless it draws negligible current.

A modern MOSFET could be used - a good fet will easily have a lower voltage drop - probably low enough for you.

Though really, running 3.3v LEDs off 3.3v power supplies is kinda pushing it if you need the full brightness from the led. Maybe a higher voltage board (how about one running at the 3.7~4.2 from a lithium battery, at the battery voltage?)

You also might be able to find a better white led (one with a slightly lower forward voltage drop - all LEDs are NOT equal in this regard, and I've been bitten by this several times.

DrAzzy: You shouldn't expect to be able to drive something that needs a minimum of 3.3v directly form the pin of a 3.3v microcontroller (nor something that needs a minimum of 5v from a 5v micro) - there's too much loss in the pins unless it draws negligible current.

You know, any tutorial about Arduino&LEDs show always a Led attached to an arduino pin. :D

DrAzzy: A modern MOSFET could be used - a good fet will easily have a lower voltage drop - probably low enough for you.

Could you suggest some small PTH component?

DrAzzy: You also might be able to find a better white led (one with a slightly lower forward voltage drop - all LEDs are NOT equal in this regard, and I've been bitten by this several times.

I'm googling... until now no results. :sob:

Yes - but the tutorials you all see show LEDs connected to 5v arduino :-P

I see white LEDs with 3.1 forward voltage listed fairly routinely.

Another approach is to get one of those 1W LED beads, and just run it with a resistor in series such that it only can get 20mA (instead of it's rated 350). This will also often be brighter for a given amount of power (LEDs get less efficient as current density increases). Even if they're meant to have a 3.3v forward voltage, if you're only pushing 20mA through it, the forward voltage drop will be lower.

And if you don't need the absolute brightest light you can get from the LED, you also don't need to worry about it.

Any of these will probably work - basically any logic level fet with a nice low Rds(on). http://www.digikey.com/product-search/en/discrete-semiconductor-products/fets-single/1376381?k=&FV=1c0002%2C1c0003%2C1c0006%2C1140050%2C9780013%2C9780016%2Cefc0005%2Cefc0007%2Cefc0008%2Cefc0009%2Cefc000a%2Cefc000b%2Cefc000c%2Cefc000d%2Cefc000e%2Cefc000f%2Cefc0012%2Cfff40015%2Cfff8007d&mnonly=0&newproducts=0&ColumnSort=1000011&page=1&stock=1&quantity=0&ptm=0&fid=0&pageSize=25

I think Crossroads likes the AOI514? There are some good cheap ones in the AOI5xx series from Alpha Omega.

Hi DrAzzy, you're telepathic. I was browsing components on Digikey and get lost...

My need is to get "something" above 10000 mcd of luminosity and I'm worry about one thing: the voltage drop. I have to keep it as low as possible. All I have is Vcc powering the Arduino 3v3 (around 3.25V - measured with the multimeter). So I have little margin for playing.

Another consideration: the MOSFET will have problems if I apply 2.97 Volt at the gate and just 3.25V at the source??? It will switch on?

gimpo: Another consideration: the MOSFET will have problems if I apply 2.97 Volt at the gate and just 3.25V at the source??? It will switch on?

Oh! maybe I've get lost on this point too. I'm wrong: a MOSFET used as a switch is n-type, so the source is the part connected to ground and drain is the part connected to the load.

In other words:

Vgs = 2.97V (arduino pin output) Vdrain = 3.25 (arduino Vcc pin) Vsource = 0V (ground)

I'm right? So it should switch completely on when the arduino output is at HIGH logic level.... yes? :cold_sweat:

Yes, AOI514, works well from 5V gate. 50 cents. Really low Rds. https://www.digikey.com/product-search/en?keywords=aoi514

Have you tried connecting the LED's anode to 3.3V, series resistor to cathode, other end of resistor controlled by Arduino's output pin? The pin is better at sinking current than sourcing current, so the led should be brighter (probably still not bright enough though). Output LOW will turn the led on.

dlloyd: Output LOW will turn the led on.

Yes, tried. No change. The max voltage stays stable at 2.97V even in this configuration, don't ask me why (zero volt is zero volt, but sometimes seems is not).

CrossRoads: Yes, AOI514, works well from 5V gate. 50 cents. Really low Rds. https://www.digikey.com/product-search/en?keywords=aoi514

Oh, man! max 5.9 mOhm @ 20A, 10V :grin: Oh, man! I love this component! I want this component! I marry this component! :D . . . . What you exactly mean with "works well from 5V gate." ? (panic)

Yes, tried. No change. The max voltage stays stable at 2.97V even in this configuration, don't ask me why (zero volt is zero volt, but sometimes seems is not).

Your 3.3V power supply drops to 2.97V??

Means it is a logic level part, not a Standard part that needs 10V on the gate to turn full on.

Rds with VGS=4.5V, ID=20A: .0085ohm typical, .0119ohm max.

AOI510 is even lower. https://www.digikey.com/product-detail/en/alpha-omega-semiconductor-inc/AOI510/785-1487-1-ND/3603498 but costs 31 cents more. .0032 and .004 ohm

dlloyd: Your 3.3V power supply drops to 2.97V??

No. I mean that the voltage between point A and B is 2.97V (i.e. the current flowing across the LED remains the same: 8.71 mA and a 10 Ohm resistor :confused: ) In other words: LOW level on the output pin should be like GND but is not. I hope that some expert can explain why (even if I have some suspect about the reason).

Ahh, OK. If you have a spare pin, could double the current. Could use a direct port write so both pins go high or low in sync.

CrossRoads: AOI510 is even lower. but costs 31 cents more.

I will not say it to my wife. I love this one even more than the other! Thanks

dlloyd: Ahh, OK. If you have a spare pin, could double the current. Could use a direct port write so both pins go high or low in sync.

Honestly I was thinking about this on the bicycle while returning to home... I'm not sure if this could work since LED's characteristics are driven primarily by voltage, and [u]the voltage remains the same even if you double the pins used[/u]. I'm right or wrong? ::)

(time to go to bed here in the old Europe... see you tomorrow)