I'm setting up a lighting system for a scale model (Star Destroyer, about 2.5 feet long). I have the following LEDs
a series of 3 white LED light strips (maybe about 12" long in total) running at 12v 183mA
30 white LEDs rated for 3V 18mA (running various fiber optic bundles)
7 RGB LEDs ~2.2V 18mA (for the engines)
I've determined the current with a digital DC power supply
When I turn on the arduino I'd like it power on each of the 30 LEDs in sequence, maybe with a 100 millisecond gap pause between them. Then they will stay lit up. For the 7 LEDs in the engine they will also start up sequentially then the brightness and color will change subtly over time, but they will all remain on.
I've looked into the 595 shift register but it seems like I have too many LEDS that need to be on all the time drawing current for that to work. Also it seems like too much current to run through the arduino itself, so I presume I need to get power another way? Any suggestions for what to look into? I'm new to electronics and the arduino (but I do have an extensive programming background) so I'm still learning how this stuff works. The key thing seems to be that since I'm not flashing the LEDs on and off, and they are all staying lit, that presents issues?
I'd like this to run on a 12V dc power supply if possible so it's self contained.
For the 30 white LEDs and the 7 RGB LEDs (21 elements), you use a MAX7219 matrix module from Aliexpress and wire those LEDs as a matrix. You need a switchmode "buck" converter to provide 5 V for the Arduino and the separate LEDs via the MAX7219. You require only 3 control lines for the MAX7219.
The module is cheap enough, you just ignore the matrix and its socket pins and solder your own LED matrix arrangement to the module.
You will need a transistor to control each of the 12 V LED strips. Popular choice appears to be a 2N2222 with a 270 Ohm base resistor.
Hey thanks for all that! That helped enormously and I think I understand what's going on. I'll try and reply in more detail later on tomorrow to make sure I understand all this.
OK so finally getting back to this after a lot of learning, gnashing of teeth, ordering of parts (Amazon loves me...), and experimenting.
Since I need to vary color and brightness of the engine lights, the 7819 just isn't going to work for this. I tried experimenting with the 595 chips and was able to set up an 8x8 matrix with the white and RGB leds. This was driven by some custom code that lights only on LED at a given shot and also supports PWM.
Problem is that the LED is not as bright, I'm guessing it's probably 75% or 80%? So that's kind of a major bummer and it definitely makes a difference in how things look through the fiber optic cables. So more looking around and honestly it really does seem like NeoPixels (or some variation of those) is the way to go here, at least in terms of me finishing this. I have no doubt that someone with more experience could fix this, but I think that for this project it makes the most sense in order for me to actually finish it.
So the new plan is use NeoPixels for the fiber optics and the engines, so that's 37 of them. That leaves the 3 led strips, which are wired as one unit, so really only 1 thing to toggle on or off, plus 4-6 SMD leds that will light up some ports on the side of the Star Destroyer. So I can wire all the NeoPixels, and control them with one port from the Arduino. I can keep the 7219 chip and just use that to control the remaining LEDS, no need for any matrix here, since we'll definitely be under 10 outputs. I'll still be using the buck converter that Paul_B reccomended for power control since I'll be operating on 12V. Does that make any sense?