Hi there!
I've been working on a mildly complex project for a few months now, which includes the use of an RGB Led Strip, a very long one.
The colour of the LEDs is controlled through 3 PWM outputs from the Arduino Duemilanove. This signal is amplified through 3 BDX53C transistors (NPN type) on a common emitter layout. The resistors used are placed in the base of the transistors, since the strip already has its own resistors embedded.
Now, the problem is that I'm not getting the full brightness that the LEDs are capable of when the strip is connected to the amplification segment of the circuit, whereas when it's connected directly to the power source, I get full brightness.
Here are a few characteristics of the circuit:
- Strip length: 7.1 meters (214 individual LEDs) - Datasheet
- Power supply: 12VDC, 1.5A
- Transistor BDX53C: 100V, Ic Max current: 8A, Hfe = 750 (Min) - Datasheet
I've done a few current tests, and this is where I get stuck. I've measured 1.3A of the total current when it's connected directly to the power supply, but only about 800mA when it's being controlled by the Arduino. I'm guessing that this is the reason it's not getting to full brightness. I just cannot understand as to why it doesn't go all the way up to 1.3 Amps.
When I'm testing this, I have all three PWM pins at maximum output:
analogWrite(Pin3, 255);
analogWrite(Pin5, 255);
analogWrite(Pin6, 255);
so I suppose it should drive the LEDs output to its maximum (??).
I've also tried using other transistors, such as BDT61C (datasheet), but I get pretty much the same results.
Other tries included removing the resistors that are attached to the base of the transistors, but to no avail.
From what I've read of the way transistors work, is that they allow the passage of an amount of current equal to the value of the current that comes through the base multiplied by the Hfe value (is this right?). If so, even the small amount of current that the Arduino is able to output through its PWM pins should be sufficient to drive the 1.3A necessary for the LEDs to give their full brightness.
Does anyone have any idea of what I'm missing? I've read that I should use an LED driver for these situations, but I wanted to understand, a) what exactly does an LED driver do in this case, and b) what's the difference between an LED driver and what I have.
Also, could this be a limitation of the Arduino?
Well, any help is appreciated, as I've not been able to get ahead for quite some time.
Cheers