I have an RGB strip LED and I am controlling the color of the lights using 3 TIP120. I am having no problem, but I cant understand why this is working. I know how transistor works, but in this special case I think it should not work, unless you teach me :)
I have a 12V power source that I connected to the TIP120 (GND and +12). In the base terminal of the TIP120 I connected it to my Arduino without any resistor. I know, it's recommended that I use a resistor, but it's working so far and my question is not about this.
So, when I execute analogWrite(green_led_pin,0) the gree color of the LED gets turned off, which is expected. When I do analogWrite(gree_led_pin,255) it turns on with the maximum brightness. Which is expected.
BUT my question is this: I know this TIP120 transistor amplifies the current in the base to an equivalent current in the collector/emitter. BUT when I change the analogWrite from 0 to 100 or 255 I am very sure I am only changing the VOLTAGE accross the base terminal of the TIP120, I am not changing the current! The current should always be the maximum, and it should even have burned my arduino cause the TIP120 should be draining more current than it can provide.
1) So why my arduino is not burned when I dont use a resistor? 2) How changing the voltage across the base is changing the brightess of my RGB strip if chanving the TIP120 amplifies the current in the base, not the current? 3) How does my TIP120 know that when I execute analogWrite(green_led_pin,255) it should send the maximum voltage from my source (12v) to my LED strip? Arduino is scaled to send 0 to 5V but I am sure TIP120 is not "configured" to send the minimum current of my source when it gets 0V at its base and it is not "configured" to send the maximum current of my source when it gets 5V at its base.
I READ MAAAANY tutorials in the internet and I got it. I understood, I even understood how to calculate the base resistor according to the drop inside the TIP120 and the current that I need in the RGB LED but even after learning all of that I still have these 3 basic questions that I cant understand!
I thank you all and I hope this thread helps other people facing the same questions!