I'm trying to modify a rainbow nightlight for my kids. The nightlight is powered by 5V (3xAA battery carriage or USB), and contains an LED strip for each rainbow color - Red / Orange / Green / Blue / Purple - each in parallel to the next. It is INSANELY bright. Rather than add resistors per LED strip to dim each one, I thought I'd experiment with PWM to dim the entire array at once.
The plan was to drive the entire LED array with an Arduino's PWM output - determine an appropriate "dimness" before some of the higher voltage LED colors fail to illuminate, and just leave the Arduino locked on that pulse (for the record I've also purchased some 555 timers to learn how to build this PWM circuit without requiring an entire Arduino to drive it).
The roadblock I'm running into is the current limit on the Arduino PWM output (and apparently there are similar current thresholds with the 555). Even with the PWM pin set to 255, I'm not able to get all the LED colors to illuminate at an acceptable brightness - the max current is not able to sufficiently illuminate the higher voltage colors alongside the others. The max current I can get through the rainbow LEDs is ~65 mA with the PWM pin at 255. When connected to 3xAA, the entire light pulls ~200mA.
How does one go about using the PWM from an Arduino to control a larger current than the Arduino itself can drive?