Arduino, RGB LED, BlinkM MaxM controller
If you are on a budget you can use discrete NPN transistors or ICs with open collector (or open drain outputs) that can be scraped from old transistor radios, television sets, old printers, and other outdated electronic devices.

Discrete NPN transistors

The maximum emitter current, Ie, must be observed

Small signal transistors, like BC 547B or 2N2222 can be used, but they can only drive one of the RGB LEDs as the emitter current, Ie, will be 60&nbsp;mA in your circuit and their limit is typically 100&nbsp;mA. I have shown a transistor driving two in the diagram below.

Power/driver transistors, like BD 135 (1.0&nbsp;A), with their much higher maximum emitter current can drive many more RGB LEDs, 16 (1.0&nbsp;A/0.06&nbsp;A) for BD 135.



I far as I can tell the RGB LEDs you are using are common cathode (where the "arrow" is pointing), hence the diagram above. The operating current is 20&nbsp;mA and the forward voltage drops at this current are 2.0&nbsp;V, 3.2&nbsp;V and 3.2&nbsp;V for red, green and blue, respectively.

Other values: R4 is in the kiloohm range, e.g. 3.3&nbsp;kohm. One resistor is used for each internal LED as this makes for more uniform light and also accounts for the difference in forward voltage drop for red and blue/green. Vcca is the supply voltage to the CPU and can be different from the 5&nbsp;V for LEDs.

Computing the current limiting resistors

For green and blue (R2 and R3): as the current is 20&nbsp;mA through the diode the same current flows through the resistor. If the voltage drop over the driver (transistor) is assumed to be 0&nbsp;V then the voltage drop over the resistor is 5&nbsp;V - 3.2&nbsp;V = 1.8&nbsp;V. We now know the current and voltage for the resistor and can use Ohm's low to find the value of the resistor:

$$ U = R3 \cdot I \implies R3 = \frac{U}{I} = \frac{1.8\ V}{0.02\ A} = 90\ \Omega $$

For red (R1):

$$ R1 = \frac{U}{I} = \frac{5.0\ V - 2.0\ V}{0.02\ A} = \frac{3.0\ V}{0.02\ A} = 150\ \Omega $$

Standard values of resistors (E24, 5%) close to these two values happens to exist (91&nbsp;ohm and 150&nbsp;ohm).

ICs with open collector (or open drain outputs)

The principle is the same as for the discrete transistor.

An example is the TTL 7405 (variations: 74LS05, 74HC05). The maximum current can be found in the datasheet, but most likely it can only drive one RGB LED per output. On the other hand it is more compact as there are six inverters in one IC. Some others in the TTL family (some with fewer outputs) are 7401, 74LS03, 7405, 7406, 7409, 74LS12, 74LS15, 7416, 7417, 74LS22, 74LS33, 74LS38, 74LS136, and 74LS266.

I think bus buffer/line drivers, like the 74LS244 (eight outputs) can also be used, but I have to look into it further.

References


A good background article is "Driving LEDs with Open Drain Port Expander Outputs".