ARDUINO Параллельное подключение ARGB-вентиляторов/лент

zeke14zeke

✩✩✩✩✩✩✩
23 Июн 2021
12
0
Собираюсь сделать контроллер ARGB-подсветки на arduino uno. Все вентиляторы в корпусе ПК - разные (разные модели, но естественно все ARGB). Другими словами, в вентиляторах разное количество светодиодов.

Вопрос: можно ли на один цифровой выход ардуино повесить все цифровые входы вентиляторов/лент? Ведь при подключении последних к одному argb-коннектору материнской платы происходит такое же запараллеливание.
Если ответ "можно", то управление цветом "пикселей" происходит аналогично случаю при только последовательно подключенных лент?
Если ответ "нельзя", сколько цифровых выходов ардуино уно можно задействовать для управления одной отдельной лентой/вентилятором?
 

kostyamat

★★★★★★✩
29 Окт 2019
1,097
630
можно ли на один цифровой выход ардуино повесить все цифровые входы вентиляторов/лент?
Можно.
то управление цветом "пикселей" происходит аналогично случаю при только последовательно подключенных лент?
Нет будет именно параллельное подключение. Если количество светиков разное, то ставите в настройках то количество диодов, которое имеете в вентиляторе с большим количеством диодов.

сколько цифровых выходов ардуино уно можно задействовать для управления одной отдельной лентой/вентилятором?
Все цифровые. Но количество светиков ограничено памятью. В лучшем случае до 300 диодов, но в реале лучше не больше 160-ти. Иначе на работу программы памяти не останется.


*** Вообще-то, лично я рекомендую не страдать фигней, и купить готовый контроллер. Вот тот, что сейчас работает у меня https://aliexpress.com/item/4000705876855.html
Я брал комплектом с 6-тью вентиляторами. Поговорите с продавцом (он общительный), пускай вам только контроллер продадут, или направят где купить такой. Контроллер умеет кучу режимов, плюс радиопульт. Так же умеет управлять оборотами вентилятор, вплоть до полной остановки. Этот комплект вообще толи копия Эиркул, толи Эиркул на такие свой шильдик лепит. Но у одного случайного знакомого точно такой же комплект, но Эиркул.
 
Изменено:

zeke14zeke

✩✩✩✩✩✩✩
23 Июн 2021
12
0
На моей материнке два ARGB коннектора, и я отказался от их использования не просто так. Хочу завязать подсветку на температуру проца через термопару или термистор. Это первое.

Я мог бы купить Gelid Codi 6, но отказался и от этой идеи, так как дорого (теперь), а коннекторы argb хочу расположить параллельно плате, а не перпендикулярно. Это второе.

Третье. Я так понял, что нужно использовать пины с ШИМ, а их 6. Так что 6 (не даром у Gelid Codi 6 шесть коннекторов argb). Поправьте меня, если я не прав.

Gigabyte RGB Fusion каким-то образом сама узнает, сколько светодиодов весит на каждом выходе (причем даже при параллельном включении вентиляторов). Неужели нет программной функции определения количества светодиодов для ардуино??
 

poty

★★★★★★✩
19 Фев 2020
3,006
899
Хочу завязать подсветку на температуру проца через термопару или термистор.
ARGB управляются через материнку, так что "привязать" можно к чему угодно.
Я так понял, что нужно использовать пины с ШИМ
адресные светодиоды с ШИМ вообще никак не связаны, вы путаете с Fixed RGB.
Gigabyte RGB Fusion каким-то образом сама узнает, сколько светодиодов весит на каждом выходе (причем даже при параллельном включении вентиляторов). Неужели нет программной функции определения количества светодиодов для ардуино??
Оба утверждения неверны. Потенциально, если включить конец ленты в контроллер, можно узнать количество светодиодов (для этого нужен ещё один разъём, которого нет), но управлять параллельно включенными лентами раздельно точно не получится никак.
 

Геннадий П

★★★★★★✩
14 Апр 2021
1,848
595
44
Потенциально, если включить конец ленты в контроллер, можно узнать количество светодиодов (для этого нужен ещё один разъём, которого нет)
Можно узнать кол-во светодиодов по потребляемому току:
  • зажигаем следующий светодиод
  • если потребление тока лентой увеличилось - увеличиваем счетчик
  • повторить пока потребление тока не будет равно с предыдущим значением
 

poty

★★★★★★✩
19 Фев 2020
3,006
899
@Геннадий П, можно, но не для параллельных лент светодиодов. Этот метод также довольно затратен и непрост, так как точное детектирование тока возможно только на шунте, а для большого количества светодиодов динамический диапазон изменения тока будет весьма велик (от, допустим, 60мА для одного диода, до 18А для 300 диодов).
 

zeke14zeke

✩✩✩✩✩✩✩
23 Июн 2021
12
0
ARGB управляются через материнку, так что "привязать" можно к чему угодно
Gigabyte RGB Fusion не позвоояет привязать подсветку к чему-либо. Выбрал эффект - он работает, независимо от температуры, загрузки проца, положения звезд и т.д. Более того, пока ОС не загрузилась и не запустилось приложение RGB Fusion, никаких эффектов, кроме статической одноцветной подсветки, нет
Оба утверждения неверны
Какие оба? Про Fusion написал выше
Можно узнать кол-во светодиодов по потребляемому току
Если схема подключения такая (параллельное с разным количеством):
— *
— * — *
то при счетчике n=1 ток будет X, а при n=2 — X=X+0.5X=1.5X?
 

zeke14zeke

✩✩✩✩✩✩✩
23 Июн 2021
12
0
@poty, как контроллеру узнать количество светодиодов?
1 - каждый вентилятор/лента подключена к отдельному цифровому выходу ардуино
2 - некоторые вентиляторы/ленты подключены параллельно (с небольшим количеством в каждом)
 

poty

★★★★★★✩
19 Фев 2020
3,006
899
Gigabyte RGB Fusion не позвоояет привязать подсветку к чему-либо.
Ваше первое утверждение никак не было связано с Gigabyte RGB Fusion. Кроме того, судя по сайту, имеется целое приложение, которое занимается всякими "привязками" и управлением.
пока ОС не загрузилась и не запустилось приложение RGB Fusion, никаких эффектов, кроме статической одноцветной подсветки, нет
Если у Вас игровой или близкий к нему компьютер, хорошо настроенный, то загрузка занимает секунд 5-6, ну пусть 10! И измерять при этом температуру на фиг никому не нужно - всё холодное.
при счетчике n=1 ток будет X, а при n=2 — X=X+0.5X=1.5X?
Всё так, только если это две одинаковые ленты. А если три и они разные? А если 4? Вариантов может быть довольно много.
как контроллеру узнать количество светодиодов?
и вопросы далее:
Я не хотел бы сейчас сбивать Вас с толку (Ваша задумка, это интересно как минимум), но дело всё в том, что в компьютерном применении разработка светового сопровождения - относительная новинка, тогда как в шоу - это всё уже, наверное, оскомину набило. К чему я это? К тому, что либо Вы делаете жёстко запрограммированную комбинацию лент (максимум отличающуюся количеством диодов), либо настраиваете "сцену" в приложении. Ну, как пример настройки сцены, Ambilight - один из проектов Гайвера здесь, на этом сайте.
Если останавливаться на первом варианте, то Вам всё равно нужно будет при разработке указывать, какая лента куда подключается. Для Вашего пункта 1 - это прокатит (заранее, при написании скетча назначить выводы на "области"), но любой, кто захочет что-то изменить вынужден будет кидаться в изменение скетча. В этом случае определить количество светодиодов можно относительно легко - подключив выход каждой ленты к пину контроллера (одному или нескольким). Тогда, как только закончатся диоды в ленте, на этом пине будет сигнал, который можно отловить, допустим, в прерывании.
Для пункта 2, даже если Вы определите количество светодиодов в параллельно подключенных лентах, Вы не будете знать, где эти ленты используются и нужно будет вручную это расписывать. В чём тогда смысл определения длины каждой ленты? Всё равно нужно будет считать для каждой "области" применения отдельно.
 
Изменено:

poty

★★★★★★✩
19 Фев 2020
3,006
899

@zeke14zeke, так это - проблема приложения (хотя не думаю, что рекламировали бы фичи, которые не поддерживаются, я о "Функционал приложения позволяет настроить яркость и мерцание светодиодов для отображения режимов изменения температуры или нагрузки ПК. "). Наверняка есть и другие.
 
Изменено:

Александр Симонов

★★★★✩✩✩
2 Авг 2018
727
207
Может OpenRGB попробовать? Поддержка Gigabyte RGB Fusion там заявлена. Есть всякие плагины, может и для реакции на температуру есть.
 

bort707

★★★★★★✩
21 Сен 2020
2,916
866
@poty, как контроллеру узнать количество светодиодов?
считайте что никак. Способы, которые вам подсказали выше - скорее теория. чем практика..
Во всех реальных проектов количество светодиодов заранее указывается в коде программистом

Обьясните подробно, к чему вообще эта дискуссия про параллельное и последовательное подключение? - может вам для начала почитать, как работает адресная лента? - у меня такое чувство. что все ваши вопросы - от полного непонимания предмета
 
  • Лойс +1
Реакции: kostyamat

zeke14zeke

✩✩✩✩✩✩✩
23 Июн 2021
12
0
Во всех реальных проектов количество светодиодов заранее указывается в коде программистом
В реальном проекте Gigabyte RGB Fusion заранее не указывается количество светодиодов (и во всех аналогичных, типа asus aura и т.д). И при этом этот реальный проект правильно "поджигает" вентиляторы с различным количеством светодиодов, даже подключенных параллельно (PCCooler CORONA max FRGB и Cooler Master SickleFlow например).
Вопрос: КАК?

что все ваши вопросы - от полного непонимания предмета
Мои вопросы от НЕполного ПОнимания предмета
 

bort707

★★★★★★✩
21 Сен 2020
2,916
866
этот реальный проект правильно "поджигает" вентиляторы с различным количеством светодиодов, даже подключенных параллельно.
Вопрос: КАК?
Я писал про адресные светодиоды. А у вас, как оказывается, Fixed
А для FRGB число светиков вообще не имеет значения (разве что для расчета мощности) на картинку количество не влияет, сл-но проекту вообще не нужно знать число светодиодов.
 

zeke14zeke

✩✩✩✩✩✩✩
23 Июн 2021
12
0
FRGB - может full rgb, не? По-моему, мир так и не договорился, что принимать за аббревиатуру FRGB.

Для кандидатов технических наук и танкистов:
ВСЕ УКАЗАННЫЕ ВЕНТИЛЯТОРЫ:
PCCooler CORONA Max 140 FRGB
Cooler Master SickleFlow 120 ARGB

- С АДРЕСНОЙ ПОДСВЕТКОЙ

Вы думаете, имея на руках маму с 2 коннекторами ARGB, я не подключал вышеуказанные вентили и не интересовался, как они светят???

Вопрос актуальный: как RGB Fusion понимает, что (сколько светодиодов) подключено к конкретному коннектору?
 

bort707

★★★★★★✩
21 Сен 2020
2,916
866
Вопрос актуальный: как RGB Fusion понимает, что (сколько светодиодов) подключено к конкретному коннектору?
ОК, предположим подсветка адресная. Скажите, зачем системе знать, сколько там светодиодов? Разве картинка подсветки от этого меняется?
Вы же подключали - значит видели, как оно работает... я, честно говоря. никогда такой фигней. как раскрашивание вентилей - не маялся :)
 

zeke14zeke

✩✩✩✩✩✩✩
23 Июн 2021
12
0
Можно узнать кол-во светодиодов по потребляемому току:
  • зажигаем следующий светодиод
  • если потребление тока лентой увеличилось - увеличиваем счетчик
  • повторить пока потребление тока не будет равно с предыдущим значением
Этот вариант видится мне единственным в данном случае
 

poty

★★★★★★✩
19 Фев 2020
3,006
899
@zeke14zeke, насколько я успел посмотреть, многие приложения позволяют выбрать тип подключенного оборудования к разъёмам (те, что могут определиться автоматически - определяются, соответственно, количество светодиодов там известно). Но я полностью согласен с @bort707 в том, что эффекты сделаны таким образом, чтобы повторяться паттерном по любой длине (ну, наверное, ограничение, всё-таки, есть, но я нашёл только ограничение по подключаемой мощности).
В приведённом примере достаточно изменить "скорость" смены эффекта (в данном случае это будет скорость замены цвета от элемента к элементу) и Вы получите то, что надо.
 

zeke14zeke

✩✩✩✩✩✩✩
23 Июн 2021
12
0
достаточно изменить "скорость" смены эффекта (в данном случае это будет скорость замены цвета от элемента к элементу) и Вы получите то, что надо.
И я получу:
1 - 41 потерянный оттенок в каждый момент времени;
2 - кручение "урезанного" цветного круга, которое мне, например, не нужно
 

kDn

★★★★★✩✩
18 Ноя 2019
1,103
437
Из опций которые видятся мне:
1. Зафиксировать коло-во светодиодов на заведомо бОльшее значение чем может быть. На неравномероность или срывы в воспроизведении эффектов не обращать внимание, либо писать их так, чтобы это не было заметно.
2. Выбирать конфигурацию рантайм, чтением EEPROM или FS, указание правильного числа диодов оставить на совести пользователя.
3. Аппаратное решение, нечто типа 1-wire, сообщающее кол-во диодов для каждого случая.

При массовом производстве я бы выбрал вариант 1. Для себя - вариант 2. Если скучно жить, то вариант 3. Мне жить не скучно, если что, поэтому оверинжинирингом я бы лично не страдал.

ИМХО.
 

poty

★★★★★★✩
19 Фев 2020
3,006
899

@zeke14zeke, с чего это? Если у Вас вместо 50 светодиодов всего 9, то ли заставить их светиться 50 цветами Вы не сможете ни в каком случае. Я говорил не о том, чтобы сократить диапазон оттенков, а о том, чтобы этот диапазон развернуть на ограниченном отрезке ленты.
Если речь идёт о "переливах", то Вы получите ровно то количество оттенков, что и в 50-диодном варианте.
Попробуйте, наконец, раз утверждаете, что это у Вас есть. Что тут в ромашку играть?
 

kDn

★★★★★✩✩
18 Ноя 2019
1,103
437
2 - кручение "урезанного" цветного круга, которое мне, например, не нужно
А как должна выглядеть комбинация вида 1 - синий, 2 - красный , 3 - голубой, 4 - малиновый, 5 - зеленый (раскладка на 5 светодиодов условно) если имеется 3 куска ленты - два из них по 3 светодиода, 1 - все 5? Если синхронно должны меняться цвета, то проще для всех заложиться на 5 светодиодов, далее - короткие выводят лишь по 3, длинная - все 5. Если же заложиться на разное количество - то период вывода всех 5 цветов на короткую ленту будет отличаться от периода вывода на длинную (предположим что цвет синхронно смещается на 1 пункт) - выглядеть будет не очень на коротких лентах, в случае если шкала приводится к размеру.

* Пример на 3 и 5 светодиодах, но в случае 30 и 50 все остается в силе.
 

zeke14zeke

✩✩✩✩✩✩✩
23 Июн 2021
12
0
Если у Вас вместо 50 светодиодов всего 9, то ли заставить их светиться 50 цветами Вы не сможете ни в каком случае. Я говорил не о том, чтобы сократить диапазон оттенков, а о том, чтобы этот диапазон развернуть на ограниченном отрезке ленты.
Ничего не понял.

В начале кода я пишу:
MyLedArray LEDS[50]
(ранее описав, что такое MyLedArray)
В каждый элемент массива записываю значения Red, Green, Blue, полученные функцией, которая "разбивает" цветовой круг на заданное ей количество секторов.
Поочередно засылаю элементы массива LEDS на один (фиксированный) выход контроллера:
Нулевой пошёл - загорелся 1й св-д
Первый пошёл - загорелся 2й св-д
...
Восьмой пошёл - загорелся 9й
Девятый пошёл - все 9 горят, изменений ноль
...
Сорок девятый пошёл - аналогично
Выход из цикла for или while
Конец loop
Начало loop
...
Всё повторяется. Тут даже "кручение" круга не получится, т.к. код не знает, что их 9.
как должна выглядеть комбинация вида 1 - синий, 2 - красный , 3 - голубой, 4 - малиновый, 5 - зеленый (раскладка на 5 светодиодов условно) если имеется 3 куска ленты - два из них по 3 светодиода, 1 - все 5?
3 куска ленты, соединенных как? Параллельно? Мы уже не говорим о параллельном включении. Для меня этот вопрос уже ясен (за исключением гальванической развязки или ее отсутствия контроллеров светодиодов, входы которых соединены, - св-ды, которые первые в каждой ленте)