multiplexing RGB strip

Hi all... I have been dealing with this problem during a long time.

I'm working with 3 RGB strip (12v.)
I'm controlling the RGB color with 3 PMW pins.
And I'm using other 3 digitals pins (pd2 / 3 / 4) in order to power on or off the rgb strips. In consequence I'm multiplexing it.

What is my problem?
Well, the 5v. ground of the pwm pins can't power on or off the transistor bc558. In consequence, these are always power on.

This is the current circuit / schema

What happend?
Should I evaluate any other kind solution? EG using UNL2003?

Please, give me a suggestion or any more convenient idea.

Cristian

Use 3 more BC547 to drive 3 T-inputs.
You definitely could replace 6 npn transistors and base resistor with one uln2003.

Hi, Magician thanks for your reply.
I´m using BC558 because the load must be over the collector to use the TR as switch, and in this case I have the BC547 for the color lines.
Are you telling to use the BS547 to drive the T-imputs in pair with the unl2003?

Market

Magician:
Use 3 more BC547 to drive 3 T-inputs.
You definitely could replace 6 npn transistors and base resistor with one uln2003.

No, not in pair. Ether way

As shown, (i.e. only 1 LED in each circuit, not 2 or more in series), you could drive the emitters of the BC558 transistors from +5v instead of +12v, then your circuit would work. Of course, you would need to reduce the values of the series resistors to get the same current. BTW you only need one series resistor per BC547, not one per LED. You don't even need the BC547s if the LED current is no more than about 25mA, you could drive the series resistors direct from the Arduino.

If you can't run them from +5v (e.g. because the series resistors are built-in to the strip, or because each LED you have shown is actually 2 or more in series), then use either of Magician's suggestions to allow the PNP transistors to switch 12v from a pin that only switches 5v.