Управление RGB-прожекторами

Узнайте, как управлять RGB-прожекторами без DMX-контроллера. Используйте ИК-пульт и микроконтроллер Attiny2313 для создания уникальных световых эффектов.

Попались мне как-то на глаза RGB прожектора фирмы MADIX. Понадобились  для подсветки шоу мыльных пузырей.

RGB Прожектора Управление Светом

Подкупила в них приемлемая  цена , широкий угол засветки — порядка  160 градусов, герметичность. Дальше  шли минусы — отсутствие  управления по DMX. Присутствовало  управления от  ИК — пульта по неизвестному на тот момент протоколу. Причём от любого пульта работал любой прожектор. Фотоприёмники не имели светофильтров и слепли от рядом стоящих собратьев. Количество оттенков цвета весьма скромное. Усложнялось всё тем, что давалась гарантия — вскрывать нельзя.

Но, как говорится, охота пуще неволи. Купил четыре штуки — минимально необходимое количество. Задача такая  — добиться совместной работы прожекторов по заданному алгоритму.

RGB Прожектора Управление Светом

Для начала расшифровал протокол ИК пульта с помощью фотодиода на микрофонном входе ноута. Оказался  NEC. Вот коды кнопок:

 ON — 0xC0; OFF — 0x40;  v — 0x80; ^ — 0x00; W — 0xE0; B — 0x60; G — 0xA0; R — 0x20; FLASH -0xD0; B1 — 0x50; G1 — 0x90; R1 — 0x10; STROBE — 0xF0; B2- 0x70; G2 — 0xB0; R2 — 0x30; FADE — 0xC8; B3 — 0x48; G3 — 0x88; R3 — 0x08; SMOOTH — 0xE8; B4 — 0x68; G4 — 0xA8; R4 — 0x28;

Вот так выглядит пакет — два байта адреса, далее код команды прямой и инверсный
00000000   11110111   11100000   00011111 — белый

Для независимого управления решил к каждому прожектору подвести свой сигнал по проводной линии и поставить напротив фотоприёмников (ими оказались TSOP-ы  на 38kHz)  ИК светодиоды

RGB Прожектора Управление Светом

По задумке прожекторы  должны располагаться на полу в линию. Расстояние между соседними  в  пределах метра. Блок управления по центру, между прожекторами. Максимальная длина проводов управления  около 2-х метров. Схема управления должна включаться вместе с прожекторами при подаче сетевого питания и работать в автоматическом режиме в течение 20 минут, последовательно меняя эффекты.

В  качестве микроконтроллера выбрал  Attiny2313. Управляющий сигнал подаётся в линии через оптопары. Причём на аноды светодиодов оптопар последовательно подаются единицы. А на объединённые катоды —  NEC сигнал, модулированный  частотой 38kHz. Такое схемное решение несколько упростило программную часть.

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

Программа отрабатывает по времени  4 режима :

  • После подачи сетевого питания на прожекторы и блок  управления, прожекторы по умолчанию отрабатывают плавную смену различных оттенков цвета. Просто ждём некоторое время. После чего  переходим ко второму режиму.
  • Работаем по псевдо случайным числам, выбирая из таблицы предпочтительных оттенков для каждого прожектора свой вариант.
  • Тут я сам выбрал четыре  цвета  и программа гоняет их по принципу RGBV, GBVR, BVRG, VRGB…
  • Этот режим работает до выключения сети по принципу 4R,4G,4B,4V. Т.е. заливка площадки одним из четырёх цветов.
  • Принципиальная схема

    Кнопка последовательно переключает режимы. Светодиод LED5 индицирует работу различным количеством вспышек. Модулированный сигнал управления с 14-ой ножки U3 подаётся  на базу транзистора Т5. Далее через оптопары  и транзисторы T1 — T4, на ИК светодиоды. Обязательно нужно на ножки питания U1 и U2 повесить конденсаторы C1 и C2.

    RGB Прожектора Управление Светом

    Готовый  девайс  служит мне верой и правдой уже около десяти месяцев. Работает надёжно. И вполне оправдывает возложенные на него надежды.

    RGB Прожектора Управление Светом

    RGB Прожектора Управление Светом

    Все подробности в файлах программы, написанной на  «C» в среде  WinAVR. Всё смоделировано в Proteus. Жутко тормозит, зато видно, как работает. Ну, и схема там  лишь для моделирования.

    Обсуждение статьи на форуме

    Скачать список элементов (PDF)

    Прикрепленные файлы:

    Добавить комментарий

    Ваш адрес email не будет опубликован. Обязательные поля помечены *