3

I want to control 10 different 12V RGB LED strips independently from a single Arduino.

As a clarification - I've setup a bunch of NeoPixels and understand how to wire and control them independently. So now I'm looking to do something similar but rather than set color of individual LED's, I'm looking to set color of LED strips.

I've already done all the research to understand how to use a MOSFET to control a single strip - but that requires 3 PWM outputs on the Arduino board and I don't see any boards that have 3 * 10 = 30 PWM outputs.

Are there existing controllers that can abstract the power conversion and voltage control, so I can just send a color and brightness setting from the Arduino to each strip?

Dan B
  • 33
  • 1
  • 5

2 Answers2

5

You could use chainable RGB drivers like these:

They are based on the P9813 chip and can be used with the FastLED library.
You can find them on Aliexpress or eBay, if you search for "STM32 rgb".

Wiring:

wiring

Example code:

#include <FastLED.h>

#define NUM_LEDS 10
#define DATA_PIN 3
#define CLOCK_PIN 2

CRGB leds[NUM_LEDS];

void setup() {
    FastLED.addLeds<P9813, DATA_PIN, CLOCK_PIN, RGB>(leds, NUM_LEDS);
}

int hue = 0;
void loop(){ 
    for(int i = 0; i < NUM_LEDS; i++) {
        leds[i] = CHSV(hue + i*255/NUM_LEDS , 255, 255);
    }
    FastLED.show();
    delay(20);
    hue += 2;
}
gre_gor
  • 1,682
  • 4
  • 18
  • 28
1

You'll need external circuitry to control the actual LEDs.

There is the WS2811 chip which can control 3 channels of 12V LED strips controlled though a single wire and you can daisy chain them controlling each strip individually. The protocol is the exact same as you'll find in individually addressable RGB LEDS. In fact it's the same IC that is embedded in those LEDs.

ratchet freak
  • 3,267
  • 1
  • 13
  • 12