Найти в Дзене
Project A.L.T.

Подсветка системного блока на адресных кольцах

Необходимые компоненты Теперь хотелось бы уточнить насчет светодиодных колец. По сути это обычная хорошо нам известная адресная светодиодная лента на чипе WS2812b замкнутая в кольцо на жесткой подложке. Продаются эти  как по отдельности с различным диаметром и числом светодиодов, так и наборами. Для своего проекта я использовал набор из 6 светодиодных колец с общим числом светодиодов равным 93 Фоторезистор и резистор на 10кОм в проекте опциональны. Необходимы лишь только если вы хотите реализовать адаптивное изменение яркости подсветки в зависимости от внешнего освещения Схема проекта и сборка За основу была взята схема Алекса Гайвера представленная ниже и немного переработана для использования в ПК В моей же схеме питание светодиодов берем непосредственно от Molex разъема блока питания ПК с 5В линии. Питание самой Ардуино берем либо с Molex, либо, если необходимо внешнее управление светодиодными эффектами, то подключаем Ардуино в любой свободный USB разъем вашего ПК Светодиодные кольц
Оглавление
Подсветка системного блока  на адресных кольцах
Подсветка системного блока на адресных кольцах

Необходимые компоненты

  • Arduino Nano (mini, UNO... В общем любой, что есть под рукой)
  • Набор адресных светодиодных колец (Например такой, или такой)
  • Резистор 200-500Ом
  • Фоторезистор  - опционально (Продаются набором от 20 шт).
  • Резистор 10кОм - только при использовании фоторезистора
  • Molex разъем (Продается набором 10 шт)
  • Немного проводов

Теперь хотелось бы уточнить насчет светодиодных колец. По сути это обычная хорошо нам известная адресная светодиодная лента на чипе WS2812b замкнутая в кольцо на жесткой подложке. Продаются эти  как по отдельности с различным диаметром и числом светодиодов, так и наборами. Для своего проекта я использовал набор из 6 светодиодных колец с общим числом светодиодов равным 93

Фоторезистор и резистор на 10кОм в проекте опциональны. Необходимы лишь только если вы хотите реализовать адаптивное изменение яркости подсветки в зависимости от внешнего освещения

Схема проекта и сборка

За основу была взята схема Алекса Гайвера представленная ниже и немного переработана для использования в ПК

Схема сборки Гайвера
Схема сборки Гайвера

В моей же схеме питание светодиодов берем непосредственно от Molex разъема блока питания ПК с 5В линии.

Схема питания от Molex
Схема питания от Molex

Питание самой Ардуино берем либо с Molex, либо, если необходимо внешнее управление светодиодными эффектами, то подключаем Ардуино в любой свободный USB разъем вашего ПК

Светодиодные кольца перед сборкой тоже необходимо соединить друг с другом. Тут все просто. Контакты +5V и GND внешнего кольца соединяем проводами с одноименными контактами внутреннего кольца. Контакт DOUT внешнего кольца с контактом DIN внутреннего. И так со всеми кольцами по очереди. Ардуино подключаем по схеме к DIN  внешнего кольца, питание аналогично,так же ко внешнему кольцу.

После сборки всей схемы время приступать к программной части.

Настройка проекта и прошивка Arduino

Для начала советую ознакомиться с данной статьей - Первые шаги с Arduino

После ознакомления, скачиваем файл из вложения к данной статье и распаковываем его. Папку FastLED-stm32patch копируем в C:\Program Files (x86)\Arduino\libraries. После этого возвращаемся в папку с распакованными файлами и переходим в RGBled

Далее в Arduino IDE открываем файл RGBled.ino м находим следующие строки

#define LED_COUNT 93 // число светодиодов в кольце/ленте
#define LED_DT 13 // пин, куда подключен DIN ленты
#define PHOTO_PIN A0 //пин фоторезистора
//int max_bright = 200; // максимальная яркость (0 - 255)
boolean adapt_light = 0; // адаптивная подсветка (1 - включить, 0 - выключить)
// яркость
#define MIN_BRIGHTNESS 60
#define MAX_BRIGHTNESS 180 #define MIN_PHOTO 40
#define MAX_PHOTO 700
Теперь приступаем непосредственно к настройке проекта
#define LED_COUNT 93 // число светодиодов в кольце/ленте

Считаем общее количество светодиодов на всех кольцах и прописываем его здесь

#define LED_DT 13 // пин, куда подключен DIN ленты

Здесь указываем пин Ардуино куда подключен DIN наружного светодиодного кольца

#define PHOTO_PIN A0 //пин фоторезистора
boolean adapt_light = 0; // адаптивная подсветка (1 - включить, 0 - выключить)

При использовании адаптивного изменения яркости подсветки указываем здесь пин Ардуино куда подключен фоторезистор и устанавливаем значение параметра adapt_light = 1

#define LED_COUNT 93 // число светодиодов в кольце/ленте
// яркость
#define MIN_BRIGHTNESS 60
#define MAX_BRIGHTNESS 180
#define MIN_PHOTO 40 #define MAX_PHOTO 700

В данном разделе настраиваем минимальную и максимальную яркость светодиодов в кольце(0-255), а также пороги срабатывания фоторезистора (0-1023). Порог срабатывания фоторезистора подбирается индивидуально в зависимости от освещения

int ledMode = 888;

Режим подсветки по умолчанию. Список всех режимов ниже

case 999: break; // пазуа
case 2: rainbow_fade(); break; // плавная смена цветов всей ленты
case 3: rainbow_loop(); break; // крутящаяся радуга
case 4: random_burst(); break; // случайная смена цветов
case 5: color_bounce(); break; // бегающий светодиод
case 6: color_bounceFADE(); break; // бегающий паровозик светодиодов
case 7: ems_lightsONE(); break; // вращаются красный и синий
case 8: ems_lightsALL(); break; // вращается половина красных и половина синих
case 9: flicker(); break; // случайный стробоскоп
case 10: pulse_one_color_all(); break; // пульсация одним цветом
case 11: pulse_one_color_all_rev(); break; // пульсация со сменой цветов
case 12: fade_vertical(); break; // плавная смена яркости по вертикали (для кольца)
case 13: rule30(); break; // безумие красных светодиодов
case 14: random_march(); break; // безумие случайных цветов
case 15: rwb_march(); break; // белый синий красный бегут по кругу (ПАТРИОТИЗМ!)
case 16: radiation(); break; // пульсирует значок радиации
case 17: color_loop_vardelay(); break; // красный светодиод бегает по кругу
case 18: white_temps(); break; // бело синий градиент (?)
case 19: sin_bright_wave(); break; // тоже хрень какая то
case 20: pop_horizontal(); break; // красные вспышки спускаются вниз
case 21: quad_bright_curve(); break; // полумесяц
case 22: flame(); break; // эффект пламени
case 23: rainbow_vertical(); break; // радуга в вертикаьной плоскости (кольцо)
case 24: pacman(); break; // пакман
case 25: random_color_pop(); break; // безумие случайных вспышек
case 26: ems_lightsSTROBE(); break; // полицейская мигалка
case 27: rgb_propeller(); break; // RGB пропеллер
case 28: kitt(); break; // случайные вспышки красного в вертикаьной плоскости
case 29: matrix(); break; // зелёненькие бегают по кругу случайно
case 30: new_rainbow_loop(); break; // крутая плавная вращающаяся радуга
case 31: strip_march_ccw(); break; // чёт сломалось
case 32: strip_march_cw(); break; // чёт сломалось
case 33: colorWipe(0x00, 0xff, 0x00, thisdelay);
colorWipe(0x00, 0x00, 0x00, thisdelay); break; // плавное заполнение цветом
case 34: CylonBounce(0xff, 0, 0, 4, 10, thisdelay); break; // бегающие светодиоды
case 35: Fire(55, 120, thisdelay); break; // линейный огонь
case 36: NewKITT(0xff, 0, 0, 8, 10, thisdelay); break; // беготня секторов круга (не работает)
case 37: rainbowCycle(thisdelay); break; // очень плавная вращающаяся радуга
case 38: TwinkleRandom(20, thisdelay, 1); break; // случайные разноцветные включения (1 - танцуют все, 0 - случайный 1 диод)
case 39: RunningLights(0xff, 0xff, 0x00, thisdelay); break; // бегущие огни
case 40: Sparkle(0xff, 0xff, 0xff, thisdelay); break; // случайные вспышки белого цвета
case 41: SnowSparkle(0x10, 0x10, 0x10, thisdelay, random(100, 1000)); break; // случайные вспышки белого цвета на белом фоне
case 42: theaterChase(0xff, 0, 0, thisdelay); break; // бегущие каждые 3 (ЧИСЛО СВЕТОДИОДОВ ДОЛЖНО БЫТЬ КРАТНО 3)
case 43: theaterChaseRainbow(thisdelay); break; // бегущие каждые 3 радуга (ЧИСЛО СВЕТОДИОДОВ ДОЛЖНО БЫТЬ КРАТНО 3)
case 44: Strobe(0xff, 0xff, 0xff, 10, thisdelay, 1000); break; // стробоскоп

case 45: BouncingBalls(0xff, 0, 0, 3); break; // прыгающие мячики
case 46: BouncingColoredBalls(3, ballColors); break; // прыгающие мячики цветные

case 888: demo_modeA(); break; // длинное демо
case 889: demo_modeB(); break; // короткое демо

На этом настройка закончена и можно прошивать скетч в Arduino

Монтаж готового устройства в корпусе ПК

Монтаж светодиодных колец производил на штатное место 120мм кулера на передней панели корпуса через переходник напечатанный на 3д принтере.

Переходник
Переходник

Сами же кольца крепил на переходник с помощью обычных кабельных стяжек.

Крепление колец
Крепление колец

Плату с Ардуино также спрятал в напечатанный на 3д принтере корпус.

Корпус для Adruino
Корпус для Adruino

Все необходимые файлы для печати можно найти в архиве проекта в папке 3dmodel

Управление режимами подсветки с ПК

Для управления яркостью и режимами подсветки непосредственно с ПК написал простенькую утилиту на Processing. Найти ее можно в папке ledGUI в архиве с проектом. Для полноценной работы требуется установка OpenJDK 17.0.5. Для управления подсветкой Ардуино должна быть подключена к компьютеру по USB
После запуска программы мы видим следующее окно:

Окно программы
Окно программы

Выбираем COM порт, соответствующий Ардуино управляющей подсветкой, в выпадающем списке, Жмем Подключить. Если все прошло удачно, то вы должны увидеть сообщение что программа подключена к выбранному COM порту. Далее в выпадающем списке выбираем эффект, настраиваем яркость. На этом все

Видео работы устройства

И напоследок небольшое виде с демонстрацией работы устройства

Файлы проекта

Все необходимы файлы для проекта вы сможете скачать на сайте https://projectalt.ru