i have this led, and im not sure what resistor to use to drop the 5v current to an appropriate voltage and produce the appropriate current.

the LED is rated at 200mA, but the data sheet says i should apply 150mA through it. my micro-controller outputs 5v i think, but im not sure as i do not have a multimeter, but i apply 5v to the vcc of the micro-controller.

RGB LED voltage

my questions are:

  • what resistor should i use with this led? (i got 33 ohms as the answer, making me thing i dont need a resistor).
  • if i do need a resistor, would a 1/2 watt rated resistor work? the lowest value i have is 100 ohm, is that close enough?
  • the data sheet does not explain how to solder the LED- do i just connect the b- and r- points to ground and the b+ and r+ to micro-controller outs, and if i want blue i do low r+ and high b+?

Sorry about the extensive questions, i never had any formal education or experience in this field. thanks!


You should use 3 different resistors, one for each color, although the blue and green have the same specs.

At 150mA the forward voltage for the red is 2.2v, green is 3.5v and blue is 3.5v. So you should use a 22ohm 1watt resistor for the red, and 10ohm .5watt resistor for the green and blue. You have a bit of wiggle room on these figures, and if you don't have a resistors that can handle that wattage you can use more than one in parallel just make sure you calculate the correct resistance between them.

Also I doubt your microcontroller can provide 150mA (it's probably more like 20mA,) so you will probably need to use a transistor on each color so that they can pull enough power. Take a look at this image for how to hook up the transistor to your system. Although ignore the 12v and multiple LEDs.

enter image description here

You may also want to have each color driven by a PWM pin, so that you can alter the brightness of each color to change the overall color at will.

  • \$\begingroup\$ Given that you're not tied by a common anode here (assuming I found the right spec) - why would you favour this over a common-collector/common-drain design? You isolate the arduino from any current load and would then be driving the LEDs at 5v, so you'd need lower resistance. I've also found them to be more tolerant of transistor specs. \$\endgroup\$ – Kevin Wright Aug 8 '18 at 10:14

In a rush to get out of here, but hope this helps. Ask question and me or someone will answer :)

enter image description here

  • \$\begingroup\$ And what about wattage of resistors? \$\endgroup\$ – George Gaál Nov 8 '12 at 23:10
  • 1
    \$\begingroup\$ P = i^2 * R. Here your current is 150 mA, so the power dissipation of the 19 ohm resistor would be (0.150 mA)^2 * 19 ohm = 0.429 watts. \$\endgroup\$ – Jim Paris Nov 8 '12 at 23:17
  • \$\begingroup\$ The OP admits that he's a NOOB. OP is talking about driving a led with 150mA coming from a micro-controller's output. The real point is NOT about calculating a resistor, the real point is do not ever try to source more than a few mA from a microcontroler's output; a transistor should be used, instead (as the other questions have said). \$\endgroup\$ – mguima Feb 16 '19 at 13:42
  • \$\begingroup\$ Maybe not 150mA but for sure there are many micros you can easily draw/sink 20mA on a single pin. More than enough to drive a little LED. You could even combine pins, for example some atmels can take 200mA per port. It's all about staying below the combined current and thermal limit so you don't melt driver. That said a Transistor is a great choice if you have the option, but not the only option. It's application dependent. I think it's wrong to say you can "never" drive an LED from a micro with more than a few mA. \$\endgroup\$ – Some Hardware Guy Feb 16 '19 at 13:56

You absolutely need a resistor, in fact, you need three. The listed maximum DC current is 150mA. I would not want to push it that hard. Forward voltages come from the table you listed

R: (5V-2.2V)/100mA = 28 Ohms

G: (5V-3.5V)/100mA = 15 Ohms

B: (5V-3.5V)/100mA = 15 Ohms

Those resistors are there for current limiting. If they are not there, your LED will not last long. Also, 100mA is way more current than your microcontroller will be able to source. You'll need to add a switch to each LED in the package.

led switch


This answer doesn't take into consideration the lumens per mA of each color of LED. Looking at the datasheet for the Cree ds-UHD1110-FKA color LED, page 2 shows the typical electrical and optical characteristics. Here you will find the Luminous intensity at 5mA. For this particular LED, they are: Red: 78, Green: 106, and Blue: 24. So, if you drive all three colors with the same current (5mA) the brightness will be radically different. Because of this, you'll have to recalculate your resistances based on this intensity difference. I suggest you use a ratio from one to the other. This will be a close first guess. You can see later in the datasheet page 5 the intensity for red is pretty linear over current, but falls off for green and blue. This means, as the current goes up, red will be brighter. I find it best to just pick a max current for blue (since it's the weakest) and using the graphs and intensity ratios calculate needed values for red and green.

  • \$\begingroup\$ Direct driving is only suitable for low currents. Hoping to drive 150mA illuminating LEDs directly from a microcontroller is very optimistic. Otherwise good advice for a simple solution and lower power indicator LEDs. \$\endgroup\$ – KalleMP Dec 11 '17 at 21:15
  • \$\begingroup\$ If you want to take this all the way though, you'd also need to take something like the CIE model into account. red, green and blue at equal intensity won't LOOK like they're at equal intensity because our eyes have different sensitivity to each colour... So if you're after "white" light then what you really want is to balance the perceived brightness of each colour to approximate black-body radiation. The maths might get quite involved :) \$\endgroup\$ – Kevin Wright Aug 8 '18 at 10:21

I realize this is, as of this writing, over 6 years old, and the OP has probably moved on to other projects, but for the benefit of anyone else who lands here via a DuckDuck search [sorry Google], using a resistor to limit current, when the current is so high, is a poor choice, in most cases. Anything above 20mA, really needs to be driven by something that does a better job of regulating the current, than a resistor -- though, the larger the resistor, the better the current regulation, but also, the greater the power loss.

So, really, a better idea is to use a current regulator -- such as the CAT4008, or TLC5916, or similar IC, or a Switch Mode solution.

You'll get better intensity consistency across the span of possible forward drops. Even the same Model #/Color LED can have quite a range of Forward Voltages, and because of the exponential transfer curve, small variations in voltage, translate to large variations in current -- and current is directly proportional to intensity.

  • \$\begingroup\$ You're someway right about using a solution other than a resistor for limiting a current above 20mA, but you missed the most important point: the OP is talking about driving a led with 150mA coming from a micro-controller's output! The real point is NOT about using a current regulator or a switch to limit the current sinked by the led. The real point is do not ever try to source more than a few mA from a microcontroler's output. The uC signal output should be feeded to a transistor, which could handle the 150 mA to the led. I'm sorry, but I have to downvote your answer; edit it. \$\endgroup\$ – mguima Feb 16 '19 at 13:35
  • \$\begingroup\$ Please note that both the answers, provided by Garret and by Matt uses transistors (@Garret Fogerlie used bipolars, and @Matt Young used MOSFET). \$\endgroup\$ – mguima Feb 16 '19 at 13:49

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.