Подсветка системного блока ПК на адресных кольцах
Проект  RGB подсветки системного блока ПК с помощью адресных светодиодных колец на чипе WS2812b. Проект очень простой и по силам любому начинающему самодельщику
Подсветка системного блока ПК на адресных кольцах
Версия для печати

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

logo

Хочу представить вашему вашему вниманию мой старый проект  RGB подсветки системного блока ПК с помощью адресных светодиодных колец на чипе WS2812b. В реализации все очень и очень просто, требует минимум пайки и вполне под силу любому, кто хоть раз в жизни держал в руках паяльник

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

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

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

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

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

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

схема гайвера

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

Моя схема

Питание самой Ардуино берем либо с 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д принтере корпус.

корпус для ардуино

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

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

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

После запуска программы мы видим следующее окно

Программа управления

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

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

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

Материал также доступен на моем канале: Яндекс Дзен и в группе ВК
Категория: Ардуино | Добавил: | Теги: адресные кольца, rgb, WS2812B, Arduino Nano, Ардуино, модинг
Просмотров: 1462 | Загрузок: 43 | Рейтинг: 0.0/0
Поделиться:
Всего комментариев: 0
avatar