I have a basic circuit using a BJT common emitter which I have constructed to pulse a red LED on to use as a strobe with 1us ON time (@12V) and plenty of time to cool down (<< 1% duty cycle). The pulse is coming from an Arduino MEGA 2560.

Initially I was running it with a series resistor as it that is the way I have been taught is 100% necessary when using LED's, however I have been testing without one, and it is pulsing brighter (measuring using a photodetector) and not burning out.

Just wondering what kind of lifetime I could expect from operating a LED in a manner like this, or any other effects that I should be aware of. And also if I am correct in assuming that the internal resistance of a LED is on the order of 10 ohms?

I am 90% sure this is the datasheet for the LED. http://www.jaycar.com.au/products_uploaded/ZD1790%20-%20TLCR5800.pdf


  • \$\begingroup\$ If you do not use a series resistor explicitly, then something else is limiting the current. We have no way to really guess what that current is. The datasheet lists 50mA as the absolute maximum continuous current. It lists 1A as the absolute maximum pulse current (10us pulse). They don't provide any data on repetitive pulse currents. So if you are over 50 mA, you are outside the datasheet envelope. You should measure your pulse current and pulse frequency. Then I would contact Vishay and see if they can provide data on repetitive pulses. \$\endgroup\$
    – user57037
    Jan 27, 2015 at 6:42
  • \$\begingroup\$ Whats the specs on your 12v supply \$\endgroup\$
    – Passerby
    Jan 27, 2015 at 7:02
  • 4
    \$\begingroup\$ Unqualified - nothing is "100% necessary". The qualified statement goes something like "If you want the LED to live long and prosper, the Arduino to live long and prosper, the circuit to be "designable" so it works ~= the same every time you build it then you MUST control the current in some manner and a series resistor is an approximate but often good enough way of doing this". \$\endgroup\$
    – Russell McMahon
    Jan 27, 2015 at 7:19

5 Answers 5


Unqualified - nothing is ever "100% necessary".

Driving LEDs directly from energy sources without any great knowledge of what controls the current and how much current flows, will sometimes work well enough in many cases*, but in many cases at other times it may work inadequately, and may lead to destruction or early death of LED or energy source (the Arduino in this case). ie the likelihood is that results will not be guaranteed repeatable or predictable. If you don't know whether it will work in a predictable manner then it's predictable that it may work in an unknown manner.

It may be acceptable to do what you are doing and possibly even designable, but if you do not know if it is or isn't then it isn't.

The "saving grace" in many cases is the combination of "facts" that

  • most microcontrollers do not have enough drive capability to destroy an LED in a very short time span, and

  • most microcontrollers will often not be damaged by the overload presented by a directly connected LED and

  • most microcontrollers will often not malfunction or not malfunction especially badly when abused beyond their designers recommendations in this manner.

As the above "grace statements" contain qualifiers such as "in a very short time", most, often not, not malfunction especially badly etc , one is on shaky ground at best if you rely on such things.

The qualified statement goes something like

  • If you want the LED to live long and prosper, and

  • the Arduino to live long and prosper, and

  • the circuit to be "designable" so it works ~= the same every time you build it


  • you MUST control the current in some manner


  • a series resistor is an approximate but often good enough way of doing this.
  • \$\begingroup\$ Thank you for your descriptive and informative answer! I did suspect it was a dodgy idea, but it is good to know the reasoning behind why it is. I will try and make sure to watch my wording on 100% statements in the future. \$\endgroup\$ Jan 28, 2015 at 0:00

This paper has some interesting details on overdriving LEDs at very high multiples (20x) of their rated current for short periods on the order of 1 microsecond. It's oriented around power LEDs rather than indicators as you're using, but the conclusions should be generally sound.

In short, the mechanism by which LEDs are typically destroyed is overheating. At 20 times rated current over one microsecond, not nearly enough power is dissipated to destroy an LED via overheating, so as long as the duty cycle is very low, the LED will survive just fine. They didn't find any indications of gradual failure through repeated spikes of high amplitude.

At extremely high (>20x rated) current spikes, the failure mechanism was the bond wires melting due to high inrush currents from the device's parasitic capacitance.

So, the short answer is that if this works a few times, it'll likely continue to work. How much current you're actually conducting depends on the LED's IV curve, and the range you're operating in is likely far outside that provided for in the datasheet, so you'd need to determine it experimentally.

Note, though, that you're operating the LED well outside the "absolute max" limits of the datasheet, so there's absolutely no warranty on how it will actually behave - only what experimental evidence you can gather. If this is a useful part of your design, fine, but if it's just to avoid having to add one series resistor, I'd suggest that this is a poor place to be trying to skimp on components.

  • \$\begingroup\$ useful paper. Note their rise time comments: " Another possible cause for LED damage is too short a rise time of the pulse current. Even though the LED can withstand a continuous train of 200 A pulses of τp = 7.5 μs with rise times of about τrise ≈ 1 μs, it will be immediately damaged when the rise time is shortened below 0.5 μs. The data sheet for the device also recommends rise times of greater than 0.5 μs from 10% to 90% of forward current [13]. \$\endgroup\$
    – Russell McMahon
    Jan 27, 2015 at 14:18
  • \$\begingroup\$ @RussellMcMahon I believe they tracked that down to the bond wires burning out from inrush currents; you're right that I didn't call that out as a rise-time rather than total current issue. \$\endgroup\$ Jan 28, 2015 at 14:19
  • \$\begingroup\$ Add to that: LEDs have both independant thermal and current related lifetime modifiers. Dim memories on latter says it relates to cyrstal imperfections propogating as current increases. Philips / Lumileds do some nice lumen maintenance reports and include graphs of lifetime vs current at set temperatures and versus temperature at set currents. Murphy wins all round :-). \$\endgroup\$
    – Russell McMahon
    Jan 28, 2015 at 18:17

Something is limiting the current in your diode, no single LED would survive 12V across its terminals for 1us.

I suspect that you drive the collector current into its limit. Are you able to measure the residual voltage across CE? Is it really close to 0V?

WRT "internal resistance of a LED", there is no such thing. Check figure 4 of the datasheet, it shows I/V (inverse resistance) which isn't linear. You can calculate a "differential resistance" at a given point on the curve (the tangent at this point), but this is only valid for small variations of V.

  • \$\begingroup\$ Thanks for your clarification on internal resistance, When i was looking at that graph before i was assuming that the slope was linear after a certain point, but on second examination it looks more exponential. Also I have not measured the CE voltage but the BJT spec sheet indicates that it's maximum rated collector current is 500mA so that would indeed make sense. Cheers. \$\endgroup\$ Jan 28, 2015 at 0:10

Directly driving an LED from a microcontroller's IO pin with no resistor is not usually a good idea. However, there are caveats:

  • The IO pin has a maximum current it can source. That limits what the LED can get
  • Draw too much current from the IO pin and it overheats and burns out
  • Allow too much current through the LED and it overheats and burns out

The ATMega chips usually have a maximum of 40mA per pin, with a recommended maximum of no more than 25mA. A typical LED has a steady-state current of around 20mA. But, LEDs also often have a rated pulse current limit.

For instance, a cheap 3mm red LED has a maximum forward current of 30mA and a pulse current of 100mA at a 10% duty cycle limit, and an on-time of less than 100µs.

So by pulsing the LED at a higher current (say 40mA), as long as you are within a 10% duty cycle, and the pulses are less than 0.1ms long (which means a PWM frequency [50% duty] of no less than 1000Hz) would be well within the specifications of the LED.

What effect would it have on the IO pin? Well, over time the current draw would be around a tenth of the peak, since it's only on for a tenth of the time. However, that doesn't mean that it dissipates a tenth of the power. Most power is dissipated during switching, and with all that extra switching going on it's going to be dissipating much more power. That may, or may not, depending on how the pin is constructed, negate the benefits of the pulsing.

Either way, it is still good practice to include a small resistance. Not to protect the LED, but to protect the IO pin. Just enough to keep the current below the absolute maximum for the IO pin.


I didn't notice you are using a BJT. The above still applies though, but with slight differences:

  • You should use a resistor to limit the current to the pulse current limit for the LED, or
  • You should use the BJT to set the current by controlling the current in from the IO pin that controls it.
  • \$\begingroup\$ He's not driving it from an IO pin, he's driving it with a BJT. \$\endgroup\$ Jan 27, 2015 at 13:07
  • \$\begingroup\$ So he is. Didn't notice that. Added an edit above. \$\endgroup\$
    – Majenko
    Jan 27, 2015 at 13:14

I did something similar, but for much shorter pulses in the range of 5-10ns.

The LEDs I had were rated to [email protected] or similar. I used a capacitor of 150pF which was charged up to 12V and then discharged via the LED and a fast transistor. The measured currents were up to 1A. The duty cycle was... well, too small to call it duty cycle. (a few pulses per second)

As I was also concerned about life time of the LED, I measured the light output while pulsing the LED with 90kHz over 40 days. I could not notice any degradation of the LED performance.

But OK, you want to drive the LED for a much longer time.

One point you should care about is if the driving circuit is fail safe. It is fine if your LED survives your 1us pulses, but if your Arduino switches the LED on for a long time by accident, the LED will be destroyed.


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.