Ардуино: трехцветный светодиод — RGB. Быстрая доставка цветов. Плавное изменение цвета

Требуется специальная программа, которую хочу представить в этой статье.

Программа позволяет задавать цвет с его насыщенностью, использовать прошитый в контроллер спецэффекты и имеет режим цветомузыки, который раскрасит любимые композиции всеми цветами радуги.

Программа поделена на три части: цветомузыку, эффекты и настройки. Первые два раздела уместились на двух вкладках, настройки справа.

Для начала работы RGB контроллер нужно подключить к компьютеру. В случае использования USB порта потребуется установка дров на микросхему , при использование беспроводного подключения Bluetooth адаптер нужно будет сопрячь с контролером. В результате обоих действий в системе станет доступным виртуальный COM порт, который нужно указать программе на панели «Порт».

Для начала разберемся, как работает цветомузыка, вкладка показана на первом рисунке. Из настроек нужно выбрать источник звукового сигнала, настроить уровень сигнала с помощью поля множитель, так, что бы в спектрограмме начали бегать уровни. Задержка задаёт период между считываниями данных со звуковой карты и отправкой их контроллеру. Слишком большой интервал сделает световые эффекты менее динамичными, а слишком малый может перегрузить контроллер или канал связи (в случае использования bluetooth версии контроллера на значительном удалении от компьютера), поэтому нужно задержку подобрать так, что бы динамика была одновременно и комфортной, и не было потери пакетов. Эффект затухания даст плавное угасание каналов, а не их резкие прыжки. Как показала практика, не все каналы имеют одинаковые уровни, поэтому программа позволяет подредактировать эти самые уровни у выбранных каналов. Сам же алгоритм цветомузыкальных эффектов прост: с каждым из трёх цветов сопоставляется один из 16 каналов и уровни сигнала на этих каналах соответствуют яркости свечения соответствующего красного, зеленого или синего светодиодов.

Для информативности справа вверху отображается текущий цвет RGB (сам светодиод должен быть правильно подключен, иначе возможна разбалансировка цветов) и интенсивность каждого из трёх кристаллов в отдельности. Раздельное отображение каналов может быть полезно при использование не одного трехцветного светика, а трёх отдельных диодов. Так же яркость каждого из канала показана в цифровых единицах.

Перейдём к вкладке эффектов:

Эта вкладка позволяет как задавать нужный цвет в ручную на одной из трёх вкладок: палитра, пользовательские цвета на вкладке рисунок и температурно (последнее пока в разработке). Пользовательская палитра располагается в файле palette.bmp , его можно заменить любым точечным файлом с разрешением 282х250.

Так же здесь доступны спецэффекты контроллера: плавное переливание одного или трёх цветов, разгорание и затухание произвольного цвета, стробоскоп и смена цветов. Скорость проигрывания спецэффектов задаётся в небольшом интервале от 1 до 255.

После настройки программа сворачивается в трей и не мешает работе, вызвать её можно в любой момент двойным клико по иконке.

На последок пара видео работы контроллера и программы:

Возможности программы

Цветомузыкальная лампа настроения

28 комментариев на « Al RGB Controller – программа для RGB контроллера»

    Здравствуйте.Есть небольшие проблемы с работой программы.При первом включении спецэффекты работают нормально.При попытке изменить скорость эффекта происходит сбой, светодиоды начинают мигать как в режиме стробоскоп.Скорость не меняется, на переключение эффектов не реагирует.В режиме цветомузыки не удается настроить чувствительность.Вернее удается, но получается очень большое число, больше макимально возможного в программе.9999999-более менее работает,выбор источника у меня один- общая громкость…Если можно-исправьте в программе максимально возможную регулировку множителя.Тк работает, но при попытке дальнейших настроек множитель сбрасывает на 1000000, этого очень мало.

    Спасибо, что обнаружили недочёт.
    В программе чувствительность расширил до миллиарда, проверяйте – (потребуется только замена исполняемого файла).
    На счёт скорости выполнения спецэффектов – в течение недели подправлю прошивку.

    Извините за беспокойство, просто схему проверял поздней ночью, и намучился с сопряжением уровней Сом-pic, так как никогда с этим не сталкивался, и только спустя долгие поиски узнал что сигнал нужно инвертировать.Сегодня на свежую голову оказалось что проблемы как таковой небыло.Мелочь, о которой я не знал, доходит до смешного.Настраивая множитель не выключая музыки я усиливал мелкий фон пк, и показалось что цму работает.Прошерстив интернет-нашел статейку как настроить стереомикшер: lightportal.at.ua/publ/cvetomuzykalnye_ustanovki/cvetomuzykalnyj_medalon_koshachij_glaz_cat_39_s_eye/3-1-0-13 .Все заработало как часы.В действительности устройство скрыто, и что его надо включать просто так не догадаешься.
    А вот спецэффекты не работают.

    Мне уже стыдно:(. Подключив стереомикшер чувствительность программы значительно повысилась.И опять я подумал что все нормально.Музыку не выключал, цветомузыка нормально работала.А на самом деле это был фон.Сегодня с удивлением обнаружил,что и при выкл музыке программа продолжает работать.Настройки звука облазил, все возможное попробовал.Безрезультатно.А сейчас программа вообще перестала работать.Выскакивает ошибка.Скрин высылаю вам на почту…Помогите чем сможете.И еще небольшой недостаток самой схемы, который думаю не составит вам труда устранить.Дело в том что при отключенном компьютере контроллер является мертвым грузом.Хотелось бы сделать драйвер универсальным, как ночник, или использовать в месте где рядом нет компьютера.У PIC есть свободные порты, подключить к ним микропереключатели и при желании включать ими уже имеющиеся в контроллере спецэффекты.Если еще и регулятор скорости добавить-будет вообще супер.Спасибо за любую помощь.

    В основной версии проекта есть кнопка переключения эффектов, можно её в выложенную версию вернуть.
    На остальные вопросы ответы отправил на почту.

    здравствуйте, а исходники программы появятся на свет?

    Не планировал этого.
    С какой целью интересуют исходики? Есть ли возможности улучшить программу?

    хочу попытаться сделать Ambilight

    Есть ли возможность расширить возможности программы для увеличения количества каналов? Готов попробывать покапаться в исходниках.Спасибо

    Можно, можно даже и больше. В свой время подключал к программе даже два похожих контроллера.
    Но только контроллер поддерживает всего 3 канала и увеличивать их число нежелательно.

    Хочу сделать на ардуино-подобном контроллере (так как начинающий:)), потому разработка, схемы для мк будет скорее всего вестись с нуля. Главное, чтобы программа передавала соответствующую информацию.

    И еще при запуске вашей программы на windows7 home, выскакивает ошибка invalid floating operation и программа закрывается. В чем может быть проблема?
    Буду благодарен любым комментариям!
    Спасибо.

    Добрый день! Нет ли желания, возможностей, планов развить цветомузыкальную линию конструкции и программы дальше и больше? Самое главное, на большее количество каналов? Конечно, мы уже имеем в просторах Сети хорошие USB-шние цветомузыки «Союз-1», «Кошкин Глаз», «Эффектор-12» (что я забыл?), но одним больше всегда лучше 🙂
    Спасибо и успехов в творчестве!

    В медленной разработке есть новый 3-х канальный RGB контроллер, который, если удастся, точнее если выбранный МК потянет всю мою фантазию, будет не только работать с ПК, но и позволит записывать эффекты на контроллер для последующей автономной работы.
    Что касательно работы от ПК и цветомузыки: идей, как расширить функционал пока не приходило (если есть желающие могу скинуть ПО на самостоятельную доработку, но сам этим пока заниматься не буду). Что касательно большего количества каналов, то в версии с Rs485 такую штуку проделывал ради эксперимента, работает, но практического применения пока что не нашло.

    Из пожеланий- неудобно каждый раз подстраивать цветомузыку когда меняешь уровень громкости.Она очень чувствительна к этому.Может АРУ какой нибудь нужен.

    В следующих версиях ПО об этом подумаю, но на данный момент работы по направлению цветомузыки остановлены.

    Валентин пишет 08.01.2014 в 17:19

    Здравствуйте Alex_EXE! С прошедшими праздниками!
    У меня возник вопрос по программной части светомузыкальных эффектов. С помощью библиотеки BASS я получаю значения FFT. Затем я беру какой-то диапазон значений из массива, например от FFT до FFT. А что дальше? Нужно выбирать максимальное значение из этого диапазона и это будет значение полосы? Затем надо брать логарифм или квадратный корень, чтобы получить окончательное значение уровня? Я читал различные источники в интернете — везде предлагают сделать по разному. Я пробовал несколько способов, но в итоге получаю не ритмичное мигание светодиодов. Как лучше обрабатывать значения массива FFT?

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

Если вы любите играть в интересные игры, то мы советуем скачать RGB Express на андроид прямо сейчас. В чем заключается смысл? Красивая и в некотором смысле уникальная игра, позволяющая кататься по лабиринту. С первого взгляда игра является очень простой, она удивляет всех своим прекрасным видом. Уникальность заключается в том, что здесь можно по-настоящему развлечься и попробовать противостоять любому игроку, оказавшемуся на пути. Если же вы все-таки решите поиграть в данный проект, то обязательно нужно пройти подготовленную разработчиками компанию.

Быстрая доставка цветов

Попробуйте с головой окунуться в игре и за короткий срок времени пройти как можно больше уровней. Проводите для водителя собственный путь. Попробуйте убедиться, что любой из ваших домов сможет получить именно нужный пакет. Нажимайте на кнопку игры и сразу же приступайте к прохождению довольно-таки тяжелых миссий. Садитесь удобно и наблюдайте за доставкой в игре. Если вы готовы стать развозчиком, тогда советуем прямо сейчас скачать RGB Express на андроид и с головой погрузиться в новый проект.

Игра, имеющая несколько особенностей

Насколько известно, проект обладает огромным количеством разнообразных особенностей. Проходите множество уровней и знакомьтесь с интересными картами. Геймплей является очень простым и подойдет для людей, относящихся к разным возрастам. Отправляйтесь в лабиринт и попробуйте отыскать выход. Если вам удастся сделать все задуманное, то вы сможете получить хорошие бонусы. Мы уверены, что у вас все обязательно получится. Поначалу мы должны будем ознакомиться с простыми схемами проезда, а уже через время вся ситуация кардинально изменится и станет в несколько раз интереснее. Подготовьте себя к сложным заданиям, изучите мосты и разберитесь во всех кнопках. Мы уверены, что игра заинтересовала вас, и вы захотите скачать RGB Express на андроид устройство прямо сейчас. Бросайте вызов опасным соперникам, распланируйте для грузчиков самые короткие пути и попытайтесь справиться с многочисленными заданиями. Насколько известно, игра предлагает нам ознакомиться с 200 разнообразными уровнями. Приложение позволяет совершать как внутренние покупки, за денежные средства игры, так и за свои деньги. Задумка очень интересная и будем надеяться, что всем она понравится.

Теперь же разберемся с многоцветным светодиодом, который часто называют сокращенно: RGB-светодиод .

RGB — это аббревиатура, которая расшифровывается как: Red — красный, Green — зеленый, Blue — синий. То есть внутри этого устройства размещается сразу три отдельных светодиода. В зависимости от типа, RGB-светодиод может иметь общий катод или общий анод.

1. Смешение цветов

Чем RGB-светодиод, лучше трех обычных? Всё дело в свойстве нашего зрения смешивать свет от разных источников, размещенных близко друг к другу. Например, если мы поставим рядом синий и красный светодиоды, то на расстоянии несколько метров их свечение сольется, и глаз увидит одну фиолетовую точку. А если добавим еще и зеленый, то точка покажется нам белой. Именно так работают мониторы компьютеров, телевизоры и уличные экраны.

Матрица телевизора состоит из отдельно стоящих точек разных цветов. Если взять лупу и посмотреть через нее на включенный монитор, то эти точки можно легко увидеть. А вот на уличном экране точки размещаются не очень плотно, так что их можно различить невооруженным глазом. Но с расстояния несколько десятков метров эти точки неразличимы.

Получается, что чем плотнее друг к другу стоят разноцветные точки, тем меньшее расстояние требуется глазу чтобы смешивать эти цвета. Отсюда вывод: в отличие от трех отдельностоящих светодиодов, смешение цветов RGB-светодиода заметно уже на расстоянии 30-70 см. Кстати, еще лучше себя показывает RGB-светодиод с матовой линзой.

2. Подключение RGB-светодиода к Ардуино

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

В уроке мы используем RGB-светодиод с общим катодом, так что провод к земле будет только один.

Принципиальная схема

Внешний вид макета

3. Программа для управления RGB-светодиодом

Составим простую программу, которая будет по очереди зажигать каждый из трех цветов.

Const byte rPin = 3; const byte gPin = 5; const byte bPin = 6; void setup() { pinMode(rPin, OUTPUT); pinMode(gPin, OUTPUT); pinMode(bPin, OUTPUT); } void loop() { // гасим синий, зажигаем красный digitalWrite(bPin, LOW); digitalWrite(rPin, HIGH); delay(500); // гасим красный, зажигаем зеленый digitalWrite(rPin, LOW); digitalWrite(gPin, HIGH); delay(500); // гасим зеленый, зажигаем синий digitalWrite(gPin, LOW); digitalWrite(bPin, HIGH); delay(500); }

Загружаем программу на Ардуино и наблюдаем результат.

Немного оптимизируем программу: вместо переменных rPin, gPin и bPin применим массив. Это нам поможет в следующих заданиях.

Const byte rgbPins = {3,5,6}; void setup() { for(byte i=0; i<3; i++) pinMode(rgbPins[i], OUTPUT); } void loop() { digitalWrite(rgbPins, LOW); digitalWrite(rgbPins, HIGH); delay(500); digitalWrite(rgbPins, LOW); digitalWrite(rgbPins, HIGH); delay(500); digitalWrite(rgbPins, LOW); digitalWrite(rgbPins, HIGH); delay(500); }

4. Семь цветов радуги

Теперь попробуем зажигать одновременно по два цвета. Запрограммируем такую последовательность цветов:

  • красный
  • красный + зеленый = желтый
  • зеленый
  • зеленый + синий = голубой
  • синий
  • синий + красный = фиолетовый

Оранжевый цвет мы для упрощения опустили. Так что, получилось шесть цветов радуги 🙂

Const byte rgbPins = {3,5,6}; const byte rainbow = { {1,0,0}, // красный {1,1,0}, // жёлтый {0,1,0}, // зелёный {0,1,1}, // голубой {0,0,1}, // синий {1,0,1}, // фиолетовый }; void setup() { for(byte i=0; i<3; i++) pinMode(rgbPins[i], OUTPUT); } void loop() { // перебираем все шесть цветов for(int i=0; i<6; i++){ // перебираем три компоненты каждого из шести цветов for(int k=0; k<3; k++){ digitalWrite(rgbPins[k], rainbow[i][k]); } delay(1000); } }

В результате работы программы получается:

Your browser does not support the video tag.

5. Плавное изменение цвета

Мы не зря подключили RGB-светодиод к выводам 3, 5 и 6. Как известно, эти выводы позволяют генерировать ШИМ сигнал разной скважности. Другими словами, мы можем не просто включать или выключать светодиод, а управлять уровнем напряжения на нем. Делается это с помощью функции analogWrite .

Сделаем так, что наш светодиод будет переходить между цветами радуги не скачкообразно, а плавно.

Const byte rgbPins = {3,5,6}; int dim = 1; void setup() { for(byte i=0; i<3; i++){ pinMode(rgbPins[i], OUTPUT); } // начальное состояние - горит красный цвет analogWrite(rgbPins, 255); analogWrite(rgbPins, 0); analogWrite(rgbPins, 0); } void loop() { // гасим красный, параллельно разжигаем зеленый for(int i=255; i>=0; i--){ analogWrite(rgbPins, i/dim); analogWrite(rgbPins, (255-i)/dim); delay(10); } // гасим зеленый, параллельно разжигаем синий for(int i=255; i>=0; i--){ analogWrite(rgbPins, i/dim); analogWrite(rgbPins, (255-i)/dim); delay(10); } // гасим синий, параллельно разжигаем красный for(int i=255; i>=0; i--){ analogWrite(rgbPins, i/dim); analogWrite(rgbPins, (255-i)/dim); delay(10); } }

Переменная dim определяет яркость свечения. При dim = 1 имеем максимальную яркость.

Загружаем программу на Ардуино.

Your browser does not support the video tag.

Задания

  1. Индикатор температуры. Добавим в схему термистор и подключим его к аналоговому входу. Светодиод должен менять свой цвет в зависимости от температуры термистора. Чем ниже температура, тем более синий цвет, а чем выше, тем более красный.
  2. RGB лампа с регулятором. Добавим в схему три переменных резистора и подключим их к аналоговым входам. Программа должна непрерывно считывать значения резисторов и менять цвет соответствующей компоненты RGB-светодиода.

RGB Fusion - это программа для обладателей материнских плат и видеокарт от GIGABYTE, оснащенных LED диодами. Благодаря данной утилите можно настроить эту самую подсветку, выбрав цвета, режимы работы и многие другие параметры. Сразу отметим, что приложение не является самостоятельным и запускается только "в паре" с . Еще обратите внимание на тот факт, что для разных моделей "материнок" и видеокарт предусмотрены разные версии RGB Fusion.

Возможности

Итак, пользуясь данной программой вы можете выбрать цвета подсветки и режим ее мерцания. RGB Fusion позволяет очень точно настроить оттенки, которым будут светиться диоды. Для этих целей даже предусмотрена удобна палитра (вроде той, что предлагает в различных графических редакторах) и окошко для ввода HEX кода нужного цвета.

Программа предлагает два режима: простой и продвинутый. В первом от пользователя требуется просто выбрать один из готовых вариантов подсветки: "Пульс", "Цветной круг", "Мерцание", "Случайный", "Волна" и "Умная подсветка". На некоторых картах и платах также доступен режим вариант "Музыка", который подразумевает мигание подсветки в такт звуку, что способствует погружению при игре или просмотре фильма.

При использовании продвинутого режима пользователь может самостоятельно выбрать цвета для отдельных диодов и настроить режим "переливов" по собственному желанию. Данный режим, опять же, доступен владельцами далеко не всех моделей комплектующих.

Интерфейс

Графическая оболочка RGB Fusion выполнена в том же стиле, что и остальные компоненты GIGABYTE APP Center. В целом интерфейс приятный и интуитивный. Также стоит отметить что оболочка полностью переведена на русский язык и "снабжена" вплывающими подсказками, которые помогают освоиться в программе.

Ключевые особенности

  • позволяет управлять LED подсветкой на графических адаптерах и материнских платах GIGABYTE;
  • дает возможность выбрать цвета и "характер" мерцания;
  • поддерживает простой и продвинутый режимы;
  • работает только на новых версиях Windows;
  • является официальным программным обеспечением от производителя.
Статьи по теме: