What is the shortest time (pulse 010) to visibly light a LED?
Visibly = The human eye can see the LED blink.
I use 5V as source and PIC16F628A@20MHz for the project.

Here is a datasheet for the particular LED (red).

Extra question:
What is the shortest time needed for the LED to receive max current (20mA) through it?

  • \$\begingroup\$ Do you have the ESL of the circuit? \$\endgroup\$ – Ignacio Vazquez-Abrams Nov 22 '14 at 18:57
  • \$\begingroup\$ Sorry, I do not have the ESL of the circuit. But the distance between the furthest LED and the uC will be 15cm (0.2mm track width, on FR-4 35um copper height, 1.5mm thickness, single-side) if that can help. I haven't done the PCB design yet. \$\endgroup\$ – Triak Nov 22 '14 at 19:04

This is a measurement best done through experimentation. I fully expect the the shortest visible pulse will vary from person to person so what you find as data for you will probably not be applicable to someone else.

When you make the experiment you will have to be cognizant of the duty cycle as well. If you kept the on/off duty cycle at 50% and made the on time shorter and shorter (basically increasing the frequency of the signal) you will note that the LED will appear different at narrower and narrow pulse ON time.

On the other hand if you setup the experiment as having the pulse happen at say once per second or so and then narrow up the pulse step by step it may very well become undetectable to the human eye at a wider pulse than the case with the 50% duty cycle.

Since you already have a setup with a microcontroller it should be relatively easy to setup to gather the empirical results.


I was testing this just now. I have set up a function generator to have an amber LED blink at 1 Hz. The generator gives pulses of 5V with variable pulse width (pulse period = 1s). Resistor is 270R.

Looking very closely, I am able to see pulses of 150 ns with normal lighting.


There is no minimum time, except as set by the maximum LED current, eye noise floor, and perhaps physical damage to the eye.

For pulses less than the flicker fusion frequency the eye sees a brief pulse that is proportional to the response-weighted energy (luminous intensity integrated over pulse time).

So, if the LED responds linearly, a 10mA pulse for 10ms looks about as bright as a 50mA pulse of 2ms width.

  • 3
    \$\begingroup\$ And indeed, the dark-adapted human eye is remarkably sensitive. A star as bright as the sun emits about \$10^{45}\$ photons/sec. and can be seen as far as 50 light-years away, which corresponds to a flux of about 3500 photons/second entering a \$10 mm^2\$ pupil. An LED with a quantum efficiency of, say, 30% that's one meter away would just need to be operating at a current of about 2.5 nA in order to generate the same flux. If everything's linear, this would correspond to a 20-mA pulse that's just 125 ns long. \$\endgroup\$ – Dave Tweed Nov 22 '14 at 19:53
  • \$\begingroup\$ @DaveTweed Nice calculation, sounds about right. Under 100ns or so you might actually run into LED rise and fall times. \$\endgroup\$ – Spehro Pefhany Nov 22 '14 at 20:18

It's going to vary by individual and with luminous intensity of the LED you use. With a microcontroller running at 20MHz, you ought to be able to adjust the pulse width in 50ns steps (that's 20 steps per microsecond). Seems like you could set up an experiment and do a study with a representative population of observers to figure out the statistics of when your target population perceives the LED as on. A single pulse perception is quite different from a repetitive pulse perception as the eye acts like a low pass filter.

  • \$\begingroup\$ The shortest time a pin can be ON is 200nS @20MHz \$\endgroup\$ – Triak Nov 22 '14 at 19:31
  • \$\begingroup\$ @Triak How do you figure? 20MHz is an instruction executed every 50ns (=1 / [20*10^6 Hz] * [10^9 ns/s]). One instruction turns it on, the next instruction turns it off = 50ns ON. \$\endgroup\$ – vicatcu Nov 22 '14 at 20:10
  • 1
    \$\begingroup\$ A PIC only executes one instruction for every four clock cycles. \$\endgroup\$ – Dave Tweed Nov 22 '14 at 21:20

When you talk about the eye, you're realling dealing with (at least) two systems. Theres the "hardware" of the eye, i.e. the actual iris, retina, nerves etc, and the "software" of the eye, which is basically the way your brain interperets the signals from your eye.

Interestingly, the eye itself can detect individual photons. This is fairly remarkable, as it means that there is technically no light so dim that you cannot see it.

This is a problem however, because if your eye could see single photons, there would be large amounts of noise in your vision. This is handled by the "software" side of your vision, which not only processes the signals to turn them into images, it also filters the signals in various ways. Various experiments have concluded that on average (to people accustomed to the dark), 3 photons hitting a rod in close succession looks like a dim light, and anything less than that is not guaranteed to be seen as light by the brain. Remeber also that only a fraction of the light that hits the retina will hit a light detecting cell.

Unfortunately this doesn't mean very much for you. I assume that youre not trying to communicate with people who have been in a dark room for half an hour, and so are asking how long you have to light an LED in a normally lit room for it to be seen. As one of the other people said, this can pretty much only be done by experimentation, as it will depend on which direction the led is facing, ambient light levels, specific LED model, etc. Luckily, you're using a microcontroller, so it really is very easy and quick to test different timings.



  1. usually the human eye cannot perceive variations faster that 30Hz.
  2. You should use a 140 ohm series resistor and the LED acts like a capacitance (the C value is not written in the data-sheet). The circuit is an RC circuit and il will charge with a time constant \$\tau=R*C\$

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.