Настройка 10 RGB-лент независимо от одного Arduino

power rgb-led led-strip

Я хочу управлять 10 различными светодиодными лентами RGB 12 В независимо с одного Arduino.

В качестве пояснения - я настроил кучу NeoPixels и понимаю, как подключать и управлять ими независимо. Так что теперь я хочу сделать что-то похожее, но вместо того, чтобы задавать цвет отдельных светодиодов, я хочу задать цвет светодиодных лент.

Я уже провел все исследования, чтобы понять, как использовать MOSFET для управления одной полосой, но для этого требуется 3 выхода ШИМ на плате Arduino, а я не вижу ни одной платы с 3 * 10 = 30 выходами ШИМ.

Существуют ли контроллеры, которые могут абстрагировать преобразование мощности и управление напряжением, чтобы я мог просто отправлять настройки цвета и яркости с Arduino на каждую полоску?

, 👍3

Обсуждение

Сколько светодиодов на полосу (т.е. какой ток на полосу)?, @Gerben

Как насчёт использования дополнительной микросхемы в качестве драйвера? Что-то вроде [этого](https://www.adafruit.com/product/815). Или, если вы ещё не купили микросхемы, можно купить микросхемы с индивидуальной адресацией. Им не нужен ШИМ, а нужен только один вывод для передачи данных., @chrisl

@chrisl — спасибо за ответ. Чип в качестве драйвера выглядит интересно. Нужно ли мне подключать по одному МОП-транзистору к каждому выходу R/G/B чипа, чтобы управлять цветом RGB-ленты? Я хочу отказаться от неопиксельных лент, так как для этого проекта они излишни. То есть мне не нужно управлять отдельными светодиодами, но я хочу управлять несколькими отдельными лентами., @Dan B

@Gerben — Я надеюсь соединить много полос вместе, чтобы получились более крупные. Примерно 10 полос, по 60–300 светодиодов в каждой., @Dan B

Да, конечно, вам нужен МОП-транзистор на каждую линию ШИМ, поскольку светодиодные ленты с таким количеством светодиодов могут легко потреблять несколько ампер. Я упомянул Neopixels, потому что, несмотря на то, что индивидуальная адресация может быть излишней, вам не нужны дополнительные компоненты (кроме конденсатора и резистора). Так что это может быть более дешёвым решением, в зависимости от лент., @chrisl


2 ответа


Лучший ответ:

5

Вы можете использовать такие цепочечные драйверы RGB:

Они основаны на чипе P9813 и могут использоваться с библиотекой FastLED.
Вы можете найти их на Aliexpress или eBay, если введете в поиск «STM32 rgb».

Проводка:

проводка

Пример кода:

#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;
}
,

1

Вам понадобится внешняя схема для управления светодиодами.

Существует чип WS2811, который может управлять 3 каналами 12-вольтовых светодиодных лент, управляемых через один провод, и вы можете соединить их последовательно, управляя каждой полосой по отдельности. Протокол точно такой же, как и в индивидуально адресуемых RGB-светодиодах. Фактически, это та же самая микросхема, которая встроена в эти светодиоды.

,