I bought a 5m RGBW strip, a power supply and was planning on using an Arduino to control it.
I have investigated (though not built) addressable led strips before, and assumed each colour pin would be a signal pin, though I was surprised the strip only had 5 pins, a +12v and one for each colour, so no ground.
I now assume each colour pin is the ground and dedicated controllers set them to high to dim the led, which won't work with an Arduino as it would require 12v through the pins.
Am I correct in my thinking, and should I just give up and buy a commercially made controller?
Here is a MOSFET driver circuit. You'll need 4 of them. It switches the ground which is what you want. (You can leave-out the diode since you aren't driving an inductive load.)
Or you can also use regular relays but relay coils also need a driver so it's usually best to get a "relay board" with a built-in driver. (Electro-mechanical relays "click" when they switch.)
Or there are solid state relays that can run directly from the Arduino. Make sure to get one rated for DC because AC & DC solid state relays are (usually) not interchangeable.
FIY -Addressable LED strips have a built-in driver for each LED (1) so you don't need any additional hardware.
The software is complicated but libraries take care of the "hard work".
(1) 12V addressable LED strips are addressed in groups of 3 with a driver for each group of 3.