What I am trying to do -- Use a low current PWM source from an Arduino to output a high current capacity PWM from a separate power supply.
Why I want to do this -- Current limitations on the Arduino PWM pins are too low to drive many potential applications I have. For example in the video below. Two simple CC RGB LEDs driven by 6 PWM pins with the initial RGB values transmitted via bluetooth to the Arduino. The red anode of each has the highest current draw of about 15mA. So two RGB LEDs in parallel is all I could safely power directly from the Arduino. In the video I am not adding the parallel RGB LEDs but just driving two single RGB LEDs.
Please forgive the time it took to set the exposure value to actually see the colors of the LEDs in the video.
Basically I want in this instance to ramp up the scale from one RGB LED to ten RGB LEDs.
What I have tried so far -- I have created the following circuit. I don't know what it would be called though to be able to Google potential DIP solutions.
On the left side there is the secondary power connection +5V at the top and ground at the lower left.
Then the 4 pin connection at the bottom center is the input from the Arduino from left to right it is the red PWM, ground, green PWM and blue PWM.
Then at the top is a 4 pin output for 5 RGB LEDs with the pins from left to right being red PWM, ground, green PWM and blue PWM. The output is connected to a 5 parallel RGB LED testing strip.
Here is a schematic. Sorry its Fritzing, but it was the software I have.
Q1,Q3 and Q5 are NPN S8050 datasheet here.
Q2,Q4 and Q6 are PNP S8550 datasheet here.
Here is a picture of the circuit in the same orientation as the schematic.
If I am reading the datasheets correctly (which I very well might be failing at) I should be able to run 30+ RGB LEDs in parallel without burning up the transistors since they can source up to 700mA given that I am using resistors to limit the LEDs to around 15mA for the red and the other two colors are much lower.
To test I went from the breadboard at the input of one of the RGB LEDs with jumpers to my circuit. So the Arduino was driving both the original RGB LED and the 5 RGB LEDs on my parallel strip. I sent values of 255 255 255 255 255 255 so both RGB LEDs on the breadboard would be white and everything would be at maximum output.
Measured current from the pins of the Arduino to the circuit were less than 1mA (measured 964uA).
Measured current from the circuit pins to the parallel LEDs was 74.1mA for the red which was very close to the 15mA each LED I was attempting to get. The parallel blue was drawing 19mA which was also very close to anticipated value per blue anode.
Here is a video of the large 5 RGB LED strip following the fade of one of the single RGB LEDs on the breadboard.
Video 2.
It also sadly shows my blue values are still too bright compared to the red and green. I guess that is why prototypes are handy to build.
It seems to me there is probably some DIP-8 IC that accomplishes what my cobbled together circuit does. As obvious from my little circuit I tend to want to space discrete components far apart to avoid soldering together things that are not supposed to be soldered together.
It would be much easier to create my full scale project using 1 IC in a DIP rather than 6 transistors and 6 resistors. 8 points to solder vs 30 seems a much nicer option.
So is there such an IC that can source 700mA+ PWM from a low current PWM input?