You may think the LEDs are the same brightness as you add more strings in parallel, but the 20mA is actually splitting itself between all of the parallel strings. So each time you add another string of parallel LEDs, the 20mA is getting split even more and the brightness of all of the LEDs is going down a little.
The relationship between current and apparent brightness of an LED is complicated. It's not actually linear, which is probably why you don't think the LEDs are getting any less dim. But I promise they are.
There's another complication as well. LEDs have a negative temperature coefficient. As they heat up, their forward voltage drops. Due to manufacturing variability, one string of LEDs will inevitably drop its forward voltage a little more than the others, which will cause it to grab a larger chunk of the 20mA, which will cause it to heat up more, which further decreases its forward voltage, and so on. The end result is that one string will tend to "steal" most of the available current and appear brighter. The easiest way to prevent that is to put a small resistor in series with each string. Regular resistors have a positive temperature coefficient (their resistance increases with temperature), so that works to balance out the current in each parallel strings.
If you truly want 20mA going through every LED correctly, you will need to decrease the value of R2 to an appropriate size. For example, two strings of LEDs will require 40mA of current. So R2 will need to be half the value. Four strings will require R2 to be one quarter the value. And so on.
By the way, the resistor value of R2 should be 35 Ohm, not 25 Ohm. I got this by taking the voltage that the base of Q1 will start to conduct (0.7V) and calculated the resistance that will result in 20mA at that voltage: $$\frac{0.7V}{20mA}=35 Ohm$$
Your equation for R2 based on the number of LED strings (to maintain 20mA for each string) is:
$$R2=\frac{0.7}{n*20mA}$$
where n
is the number of LED strings.
Best Answer
There are several 16-channel constant current LED driver ICs sold specifically for the kind of requirement described.
For instance:
Each of these ICs is controlled using some form of serial interface, such as I2C or SPI, and at sufficiently high clock rates that a tachometer, even one with fading LED and peak highlight effects, can be implemented.
If one of these ICs is used, not only will all the LEDs be controllable with a single component, the need for individual current limiting resistors on all 15 LEDs will also be eliminated.
So, just one IC and a few supporting parts, plus serial control from your microcontroller.
Another alternative is to use some form of multiplexed LED driver, such as the Maxim MAX7219, which besides its well-known job as a 7-segment 8 digit display driver, can also be used to drive up to 64 individual LEDs, where any one LED will be lit and drawing current at a time, hence the concern about current draw will be taken care of.