1
\$\begingroup\$

I just received my Arduino Pro Mini (clone) and wanted to test run it.

I hooked it up as in the figure below (the 9V voltage source is a DC adapter connected to the wall), and loaded it with the code below.

The program runs fine, and it does what I want it too, but for some reason the LED is very dim. What can I do to increase the brightness? Lowering the resistance only slightly improves it.

enter image description here

Code:

void setup() {
  pinMode(6, OUTPUT);
}

void loop() {
  digitalWrite(6, HIGH);
  delay(1000);
  digitalWrite(6, LOW);
  delay(1000);
}
\$\endgroup\$
2
\$\begingroup\$

Lower the resistor even more.

You appear to have the 3.3V version of the Arduino Pro Mini. It should be able to supply much more current than you need.

The problem is the low voltage. A green LED needs about 2.5 volts to light up. A typical green LED can handle about 20 milliamperes of current.

You have a 3.3V output. Take away the 2.5V for the LED. That leaves 0.8V to drop across the resistor. With that 200 ohm resistor, you are getting about 4 milliamperes.

If you use a 40 ohm resistor, you will get around 20 milliamperes through the LED - that should be much brighter.

You figure LED resistors like this:

$$R = \frac {V - V_f}{I_{LED}} $$

Where:

  • \$R\$ = series resistor (in ohms)
  • \$V\$ = source voltage (in volts)
  • \$V_f\$ = forward voltage of the LED (in volts)
  • \$I_{LED}\$ = desired current through the LED (in amperes)

You need to know the forward voltage of your LED, and the maximum allowed current for your LED. Use the above formula to calculate the smallest allowed resistor. Try your circuit with that smallest resistor. If it is too bright then you can use a larger resistor. If it isn't bright enough then you need a different LED.


Use a voltmeter to check the GPIO pin when the LED is on. Make sure that it really reaches 3.3V. Try it with the LED connected, and without the LED. The voltage should be the same. If it is lower when the LED is connected then you are drawing too much current from the pin - in that case you will have to use a transistor to switch your LED.


Some LEDs are just not all that bright. Modern ones are really efficient and can be eye searingly bright at the rated current - you can usually drive them with just a milliampere or less and still be able to see it in daylight . Old ones from like the 1970s weren't that good. It took the full rated current to be visible in normal room lighting. Maybe you just got a really dim LED from the dark ages. :)

\$\endgroup\$
2
  • \$\begingroup\$ Old green LEDs were 2.2V but modern much brighter green LEDs are 3.5V the same as a blue or white LED. They barely light when powered with only 3.3V. \$\endgroup\$ – Audioguru Nov 28 '20 at 21:16
  • \$\begingroup\$ Thanks for your great reply! I'll give it a try when I get the time :) \$\endgroup\$ – user2157416 Nov 29 '20 at 14:06
-1
\$\begingroup\$

Microcontrollers in general can't drive much current out of their outputs. I'm not sure which one specifically is used on the particular device you have, but I've used ones that can only drive a few dozen μA, nowhere near enough for an LED.

Consider using a transistor to boost the current.

\$\endgroup\$
1
  • \$\begingroup\$ Thanks, I tried using a transistor asw a switch controlled by the arduino, and that certainly made the LED brighter! \$\endgroup\$ – user2157416 Nov 29 '20 at 13:19

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.