Например TDA7294

РадиоКот > Схемы > Цифровые устройства > Бытовая техника

Система светодиодной подсветки садовых насаждений

Автор: Aheir
Опубликовано 11.10.2011.
Создано при помощи КотоРед.

 

Известно, что каждый сходит с ума по-своему… Кто-то картошку выращивает, а я вот, знаете ли, больше по электронике... Но как бы там ни было, дачная тема не обошла и меня. Вобщем, сегодня делаем систему подсветки садовых насаждений, кодовое название – LED Garden.
Как это часто бывает, началось все достаточно спонтанно. В руки попало 5 корпусов от сканеров штрих-кодов, примерно вот таких, только светло-серых и маленько поквадратнее:

 

При наличии одной прозрачной стенки сразу напрашивалось применение в виде некоего светильника, естественно – светодиодного, конечно же – не самого простого.

Была разработана плата светодиодов:

 

36 RGB светодиодов NM5050 в последовательно-параллельных группах по 3 штуки, балласт резистивный. Кроме того, на плате размещен ИК-фотоприемник TSOP для управления светильником. Все это соединяется через разъем IDC-14 с платой контроллера и вживую выглядит вот как-то так:

 

Плата контроллера собрана по следующей схеме:

 

Управляющий микроконтроллер – Atmega8515 (выбран из наличия). Интерфейс во внешний мир – RS-485 – реализован с помощью микросхемы DS75176. Силовые ключи для управления светодиодами на полевых транзисторах. Источник питания – понижающий DC/DC на LM2676-12 в типовом включении, дроссель L3 выполнен на расколотом 25мм кольце из отечественного 2000 феррита 20 витками провода (параметры намотки подбирались для каждого устройства индивидуально по оптимуму работы преобразователя). Питание МК – LM7805 на небольшом радиаторе (алюминиевая пластина), входное напряжение 12В после DC/DC. В качестве разъемов – 8P8C (RJ-45, который), установлено два в параллель для возможность объединения нескольких контроллеров в цепочку. Первые 6 контактов каждого разъема запараллелены по 3 и используются для подачи питания, оставшиеся 2 – RS-485. Еще один шестиконтактный телефонный разъем используется для программирования и задания режима работы устройства (об этом ниже). Вообще, контроллер на 90% собран из б/у компонентов. Конденсаторы из телевизоров, древние МЛТ резисторы, полевики из старых БП (часто довольно высоковольтные, но здесь это не важно), в качестве Q4, Q6 и Q8 – 2Т312 и т.д. Результат на фото:

 

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

 

 

 

Всего было изготовлено 5 комплектов, по числу имеющихся в наличии корпусов.

 

Далее устанавливаем контроллер в корпус (там есть посадочное место под плату и отсек с отверстиями для выходных разъемов на боковой поверхности корпуса:

 

 

Все лишние отверстия в корпусе загерметизированы тем же силиконом.

Соединяем платы шлейфом:

 

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

 

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

Теперь, собственно, о том, что оно умеет. Напомню, что всего было изготовлено 5 таких светильников. Каждый из них может выступать в качестве ведущего и управлять остальными светильниками, подключенными к нему по RS-485, (режим мастера) или же быть ведомым (управляемым) светильником с определенным адресом (номером).

Функция светильника определяется состоянием портов МК, подключенных к разъему U2. Если к портам PB.5 – PB.7 ничего не подключено – светильник работает в режиме мастера, если какие-либо из этих линий замкнуты на землю, светильник становится ведомым с соответствующим адресом. Адрес выставляется в двоичном коде на этих самых линиях (PB.7 – младший бит), замыкание на землю соответствует 1 в адресе, таким образом может быть подключено всего 0b111 или в десятичном виде 7 ведомых светильников. Поскольку у меня их 5 и больше не предвидится, то этого вполне достаточно. Для удобного задания режимов и адреса были сделаны соответствующие заглушки в разъем U2 (обжатый в телефонный разъем кусочек шлейфа минимальной длины с заранее замкнутыми нужным образом жилами в нем). В качестве протокола связи светильников между собой выбран DMX512 (точнее, его несколько урезанная версия, полностью описывать стандарт не буду, эта информация доступна в Сети), представляющий собой просто последовательность байт, каждый из которых в явном виде задает яркость какого-либо канала (цвета) какого-либо светильника. В режиме мастера светильник должен генерировать такую посылку для всех ведомых (ну и для себя тоже, конечно же), а в режиме ведомого – просто выделять из полученного пакета относящуюся к нему часть на основании собственного адреса и выставлять соответствующие яркости цветовых каналов.

В режиме мастера все управление светильником осуществляется через ИК-канал по протоколу RC-5 с помощью пульта:

 

Подробнее про этот протокол и особенности его применения можно прочитать в этой статье . Имеется возможность выбирать одну из 10 программ работы (различные световые эффекты) и изменять скорость выбранной программы.

Программа выбирается цифровыми кнопками от 0 до 9 (программа 0, равно как и кнопка выключения, гасит светильник), ch-/ch+ или left/right. Скорость регулируется vol-/vol+ или up/down.

Светодиоды управляются ШИМом, поэтому доступны эффекты с плавной сменой цвета и яркости. Программы такие:

  1. Плавная смена цвета (радуга)

  2. Поочередная плавная смена R-G-B

  3. Плавный переход R-G-B волной по всем светильникам

  4. Случайный цвет с плавным переходом к нему

  5. Случайный цвет для каждого светильника с плавным переходом к нему

  6. Случайный цвет и с плавным переходом к нему через волны R-G-B

  7. «Ползущие» плавные вспышки R-G-B

  8. Поочередное плавное R-G-B мерцание

  9. Случайная смена программ

На словах это объяснить довольно трудно, проще посмотреть видео в конце статьи. С программной точки зрения все это реализовано весьма просто. С помощью некой несложной математики рассчитывается значение каждого цвета (его интенсивности в виде числа 8-ми битного ШИМа) каждого светильника для каждого шага программы (естественно, программы цикличны) и заносится в соответствующий массив, элементы которого в прерывании по таймеру с помощью USART отправляются во внешний мир к другим светильникам. Скорость регулируется длительностью паузы после каждого шага программы. Все настройки (номер последней активной программы и скорости для каждой программы) сохраняются в энергонезависимой памяти. Эффекты можно написать любые, здесь уж на вкус и цвет. У меня самой востребованной программой является плавная смена цвета.

В режиме ведомого, как уже было сказано, светильник просто вычленяет из сгенерированной мастером посылки кусочек, соответствующий его, ведомого, адресу, и приравнивает величину коэффициентов программного ШИМа цветовых каналов к полученным от мастера значениям. Если корректный сигнал в линии отсутствует более 2с, ведомый зажигает матрицу одним из семи цветов (R, G, B, R+G, G+B, R+B, R+G+B) в зависимости от своего адреса (это позволяет использовать светильник для простой статичной подсветки или освещения).

Микроконтроллер в данном случае несколько разогнан (работает на частоте 20МГц), что выходит за пределы рекомендованных даташитом режимов. Насущной необходимости в этом нет, просто у меня были куски кода, уже «заточенные» под эту частоту и пересчитывать не хотелось. Устройство без проблем будет работать и на штатных 16МГц. Так что, хотя весь мой опыт в количестве 1500 контроллеров, работающих на частоте 20МГц без единого сбоя уже не первый год, говорит о допустимости такого решения, я все же не рекомендую так делать. Исходники и платы доступны в конце статьи, фьюзы такие:

 

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

 

Схема вот такая и состоит из двух частей. Основная плата:

 

Дополнительная плата с часами реального времени и силовым реле:

 

Схемотехника во многом похожа на контроллеры светильников, добавлены только органы управления и индикации, силовое реле (для отключения питания светильников) и модуль RTC (для работы по расписанию). Вместо U7 для питания пульта использован модуль DC/DC на TL2575-05, поскольку LM7805 было бы в данном случае жарковато… Схему модуля можно посмотреть здесь .

Фактически, пульт выполняет функцию мастера. Программы все те же самые, логика работы тоже. Дополнительно реализована функция работы по расписанию (включение и выключение), кроме того, пульт выполняет функцию инжектора питания.

Основной режим работы пульта – показ текущего времени.

 

По нажатию на кнопку «Mode» попадаем в меню выбора программ («Р» от 0 до 9)

 

Повторное нажатие – выбор скорости текущей программы («S» от 1 до 99).

 

Если программа отлична от 0, горит десятичная точка в последнем разряде индикатора. После истечения времени неактивности (примерно 10с) происходит возврат к основному экрану.

 

Все нажатия на кнопки озвучиваются. При удержании кнопки «Mode» до первого звукового сигнала попадаем в меню настройки текущего времени (кнопки «+» и «-» увеличивают значение часов и минут соответственно), внешне экран не отличается от основного режима показа времени.

При удержании кнопки «Mode» до второго звукового сигнала попадаем в меню настройки времени включения «on:xx» (c точностью до часа).

 

При удержании кнопки «Mode» до третьего звукового сигнала попадаем в меню настройки времени выключения «oF:xx» (c точностью до часа).

При удержании кнопки «Mode» до четвертого звукового сигнала попадаем в меню настройки количества подключенных ведомых «SL0x» от 1 до 7.

 

Если текущая рабочая программа 0, то питание от ведомых физически отключается при помощи реле.

Если установленные значения часов включения и выключения не равны друг другу, то осуществляется работа по расписанию, т.е. включение и выключение системы.

В качестве RTC можно установить DS1307 или МТ41Т8хS (потребуется изменение прошивки), в итоге применена DS1307. Фьюзы такие же, как и для светильников.

Конструктивно все оформлено в пластиковом корпусе от какого-то адаптера питания, платы размещены в два этажа:

 

 

Вся система на тестовом прогоне:

 

Питание осуществляется от AC/DC на 20В 3А, а если говорить попроще – то от ноутбучного блока питания, который остался за кадром.

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

Вопросы, как всегда, в Форум .

 

 


Файлы:
ПП светильников (P-CAD 2006)
Исходники для светильников (CVAVR)
ПП пульта (P-CAD 2006)
Исходники для пульта (CVAVR)


Все вопросы в Форум.


ID: 1004

Как вам эта статья?

 Нравится
 Так себе
 Не нравится

Заработало ли это устройство у вас?

 Заработало сразу
 Заработало после плясок с бубном
 Не заработало совсем

9 1 1
2
Подробно