How to add an anonymous LED


How should I set the LED parameters for a random, high intensity blue, LED?

I'm trying to knock together a circuit. But, I'm struggling with the circuitLab LED configuration mechanism.

For the purpose if this example, I have a LED about which I can tell you:

  • Its blue (probably high intensity)
  • It draws 20mA
  • The voltage drop across the LED is 2.7V (of my battery driven's circuits total of 2.9V)

The real world circuit is built with crocodile clips, a 220 Ohm resistor, and the suspect LED. My readings are read using a multimeter probing the circuit.

As far as I can tell, my real-world wire morass is reasonably represented by the diagram below:

But, none of the predefined circuitLab LED parameters result in a 20mA draw.

I don't understand the individual settings that circuitLab allow us to edit on D1. And, I'm a reluctant guesser. :-) I have looked at all the data sheets for the referenced LED's. But, none seem to match what I have.

Am I missing something? Or, can somebody tell me what I need to feed into the parameters dialog to model my bright blue LED!?

I appreciate your input.


by renen
April 20, 2012

The big problem is that your LED voltage is much too close to the source voltage. That means a slight change in battery voltage is going to cause huge current swings in the LED. For instance if the battery voltage drops 100 millivolts, the LED current will drop by almost half.

You can kinda simulate this by subtracting 1.4 the difference in LED voltages from the source. Or put a 1.4 volt voltage source in series with the available LED, to bring its drop up to about the voltage drop of a blue LED.

In any case if you MUST run a blue LED from a 2.9 volt source, you either have to put up with wild swings in intensity or add a voltage doubler.
Neither one a great solution.

Also, there are IC's designed for this kind of step-up conversion. You can either use them or use a low-power switching boost converter.

by arduinohacker
April 20, 2012

Hi @renen,

We do need to make it easier to add your own part models based on datasheet or measured values, but for now, let me help you be a slightly less reluctant guesser! :)

As far as DC performance goes, the basic equation for the diode (or LED) forward voltage drop at a given current is a combination of two basic parts: a series resistive part, determined by the parameter R_S, and an exponentially-modeled part that approximately follows

IDIODE = IS * exp( VDIODE / (N*Vth) )

where Vth is about 0.026 volts near room temperature (note that CircuitLab's simulator currently does not include temperature-dependent effects).

Right now, you have only one real datapoint that these have to pass through (2.7V at 20mA for your part), but we have three knobs to turn (R_S, I_S, N). If you had a plot, the eventual slope of the current/voltage plot for high currents (well past the "knee") would basically tell you R_S. Then, I_S and N could be tuned to get the correct "bend" (sharpness) and position of the knee.

(A few more notes depending on how deep you want to go: plotting the logarithm of current versus the [linear] voltage would also be useful, as the slope of this plot in the before-the-knee region could help tell you N. Another way of going about getting I_S would be simply to apply a small reverse bias to the LED, say a volt or so, and accurately measure the reverse current that flows. However, LED's don't always "like" reverse bias, and the resulting reverse currents can be so tiny (pA to nA) as to be challenging to measure with normal hobbyist-level equipment.)

Anyway, I played around in CircuitLab for a few minutes and made this diode model that hits approximately 20mA at 2.7V:

If you want to put it in your own circuit, just open mine, select diode D1, copy (Ctrl+C or Cmd+C), then jump to your own circuit tab and paste (Ctrl+V or Cmd+V)! The parameters I ended up with were I_S=1e-10 amps, N=5, R_S=10 ohms. Hope that helps!

by mrobbins
April 20, 2012

Mike just beat me to it but here are a couple of circuits that illustrate what he and arduinohacker are talking about:

and the edited model applied to the original application:

by signality
April 20, 2012

@signality -- excellent application of the second DC sweep parameter here. Why didn't I think of that?

Also, we're all still in the habit of writing "Simulate -> DC Sweep -> Run DC Sweep", but as of our latest version we now save which simulation was the last used. So anyone can simply open your circuit in the editor, press the F5 key on the keyboard, and it will re-run the last simulation with all the stored settings.

by mrobbins
April 20, 2012

OMG, I didn't realize that you could sweep device parameters! That is amazing.

by arduinohacker
April 21, 2012

Wow, I'm not sure how I missed all your replies - I diligently watched this thread for some time after posting. I clearly could not have clicked the "notify me of new comments" here.

Thank you for your input. I'm still in learning mode - but I am making some headway. Your comments were all helpful.

Having destroyed my homes alarm twice, I have just plucked up the courage to return to the problem. :-) It seems the alarm guys were secreting 2.2K resistors right tight up against the LED's, deeply buried in masking tape (masking tape!!!) which I missed. It looks like I will solve my problem with a little careful measuring, and an opto-coupler (photocoupler).

Again, I appreciate the time you took to answer my noob question!


by renen
August 17, 2012

Hi, is there a simple method to use the datasheet of a LED to configure the equivalent in CircuitLab? I read this topic and didn't understand how to calculate the R_S and the I_S. And what about the N, the TT, the M_J and the V_J value?

Thank you for your help!

by brisfan
March 29, 2017

Post a Reply

Please sign in or create an account to comment.