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

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

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

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

  • 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