Arduino – Controlling 8 RGB LEDs (beginner question)

arduinocharlieplexingledoutputrgb

First time poster here.
I have an Arduino Uno project that will require 8 RGB LEDs to be controlled. They will be turned on and off with pushbuttons, cycling through red, then green, then blue, then turn off. Multiple LEDs will have to stay on together at times, too. It's going to be part of an electronic lock, so basically a keypad that, instead of having keys, has coloured LEDs as a password input. However I am not using a physical Arduino, I'm doing it in the 123D Circuits environment (made by AutoDesk), so I'm limited as to what parts I can use.

I ran across Charlieplexing and Multiplexing, as well as using transistors and shift registers, as possibilities.
The problem is that I haven't had any electronics classes yet, so I have no idea which is better/more suitable/even possible, specially regarding wiring the parts together, and how they communicate with my project, so that's what is making it difficult for me to understand, or even begin to code.

I followed this guide to try wiring 4 RGB LEDs.
However they're common anode LEDs, and mine are common cathode, and as I've said, I have no idea how to figure the electronics (I can't even read schematics without getting lost at what am I supposed to be reading there).

Here's how I tried wiring it: http://postimg.org/image/gu4cwdv0n/full/ following the guide's instructions.
(it may be absurdly difficult to see what is happening due to the awful graphic interface for wire jumpers in the platform there)

It didn't work with the code provided, so I assumed it's my wiring that is the problem.

EDIT — I have 8 pins that can be used to those LEDs. Also, if there is no alternative to Charlieplexing, could someone explain or compare how it is different in RGB LEDs to normal LEDs? I believe I could understand it better that way, since I think this is what is troubling me: the common cathode, as opposed to 3 cathodes in 3 multi-coloured LEDs.

Thanks in advance.

Best Answer

The easiest way to control that many RGB LEDs is to use a strip of LEDs that already include their own controller, such as the WS2812B. In addition, there are libraries for many of the models of "addressable" LEDs already available. From there it's simply a matter of instantiating an object for the correct number of LEDs, setting them to the desired colors, and then invoking the correct method to configure them all at once.

NeoPixel Stick

light_ws2812