Mood Lamp – лампочка с характером

Опубликовано в рубрике "Баловство,Источники питания", 15 декабря, 2009.
Тэги: , , , автор:

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

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

Я давно хотел устроить себе цветное освещение комнаты. И вот выдался случай.

Драйвер светодиода

Ахтунг, меня попросили написать эту секцию поподробнее, поэтому многабуфкаф!

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

Падение уменьшается с увеличением температуры, а это – очень подло. Давайте представим, что будет, если воткнуть светодиод напрямую в источник напряжения.

Итак, светодиод включился, и начал светиться. Вместе с этим он начал нагреваться. Из-за нагрева, падение уменьшилось, ток возрос, светодиод начал еще сильнее нагреваться. В конце-концов ток через диод превышает предельно допустимый и диод сгорает.

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

У включения с резистором есть существенный недостаток – на резисторе рассеивается очень много мощности. К примеру, мой светодиод потребляет 350мА и падение на нем – 3В. Мощность, передаваемая в диод – 1.05 Вт. Пусть схема питается от 12 вольт. В таком случае необходимо поставить резистор (12-3)/0.35 = 25 Ом. На резисторе будет рассеиваться 5.76 Вт – а это, скажу вам, некислая печка. КПД включения с резистором получилось равным 18%. Ужасный результат.

И вот тут появляются импульсные драйвера. Пример драйвера, который я использовал в своей лампочке.

image

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

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

Ток через диод определяется резистором R11.

КПД такого источника составляет 70-80%. Минимальное напряжение питания – 9В. Максимальное ограничено напряжением пробоя затвора Q2 и составляет 20В. Этот драйвер может выдавать мощность до сотен ватт при соответствующем Q2.

Внимание, можете не пытаться сделать сколь-либо вменяемый драйвер на mc34063. Драйвер работать будет, но проблем не оберетесь – светодиод будет моргать из-за дискретности регулирования ШИМа, индуктор будет влетать в насыщение из-за полу-автогенераторного принципа работы. Не повторяйте моих ошибок!

 

Схема лампы

Итак, с драйвером разобрались. Осталось прилепить три таких драйвера к контроллеру и написать прошивку. Получившаяся схема:

Комментировать особо нечего. Ну, кроме аудио усилителя. Если вдруг меня потянет сваять цветомузыку на базе этой лампы, то не придется ничего паять.

Собранная железяка выглядит так

lamp3 

Линейная регулировка яркости

Человеческое восприятие нелинейно. Если увеличить яркость светодиода с 1 до 2 то это будет восприниматься совсем не так, как если увеличить яркость с 101 до 102.

Практически все органы чувств человека имеют логарифмическую зависимость выхода от входа. Это позволяет нам одними и теми-же глазами смотреть и ночью и днем.

Если мы будем плавно увеличивать средний ток через светодиод, то сначала воспринимаемая яркость резко возрастет, а потом скорость нарастания яркости уменьшится.

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

 

Алгоритм

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

 

HSV->RGB

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

http://ru.wikipedia.org/wiki/HSV_(цветовая_модель)

Теперь я случайным образом выбираю цветовой тон, а насыщенность и яркость у меня стоят на максимуме. Получается намного красивей. Траектория изменения цвета в HSV системе показана на картинке:

image

 

Прошивка

Написана на си и скачать ее можно тут:

Я использовал atmega88, а ресурсов там просто завались. Поэтому никакой оптимизации.

 

Результаты

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




Комментарии
  1. …. написал(а) 16 декабря, 2009 в 10:04

    Очень клевая статья, спасибо! Светодиодики интересуют, а нормальных, понятных статей в рунете по ним практически нет. :'( у меня лежит недоделанная светодиодная лампа (попроще твоей, конечно, раз так в 5 %), но вот как раз проблема была в том, что светодиоды сильно нагревались и яркость была на всю мощь — вырви глаз, блин Х) теперь, вроде как, понятно, в какую сторону копать — буду пробовать её доделать ))

  2. Bird55 написал(а) 17 декабря, 2009 в 20:28

    Сергей, можно попросить у Вас проект в Altium Disiner?

    BSVi Reply:

    Нет, проекты я не раздаю.

  3. sharkzp написал(а) 24 декабря, 2009 в 15:46

    Музычка зашибись)))

  4. SchDoc написал(а) 28 мая, 2010 в 11:09

    Сергей объясни пожалуйста как рассчитать мощность и сопротивление шунта R11 для импульсного режима. Твои расчеты в статье это для DC режима.
    Хочу воткнуть параллельно два RGB диод, и того на канал I=0.350A*2=0.7A.
    Дроссель L3=470-680uH, R11=?
    По умолчанию забил в схему footprint для резистора на 2W
    Если не сложно объясни или дай хоть какую нить ссылку на расчеты в PWM режиме.
    Сайт зачетный, много объяснено на пальцах, без прочтения томов Ленина )
    А на счет музычки – металл всегда победит )

    BSVi Reply:

    >Сергей объясни пожалуйста как рассчитать мощность и сопротивление шунта R11 для импульсного режима.

    Если чесно, то расчитать его довольно сложно (на него вличют куча параметров — индуктивность, емкость C18, напряжение стабилизации микросхемы). Намного проще просто взять и подобрать.

    В качестве стартовой точки можно взять Vsens_max/Idiode. Vsens_max — напряжение срабатывания токовой обратной связи (есть в даташите, для UC38xx = 1В), Idode — желаемый ток диода. Расчетное значение получится слегка завышенным.

    >Хочу воткнуть параллельно два RGB диод
    Параллельно включать диоды крайне не рекомендуется. Лучше — последовательно.

    >какую нить ссылку на расчеты в PWM режиме.
    Есть такая книжка — Семенов, «Основы силовой электроники» — там очень много полезного.

    SchDoc Reply:

    Спасибо за ответ.
    Вот пару толковых книг по схемотехнике (мож кому надо) http://zntu-ea.org.ua/index.php?dn=down&to=cat&id=17

    MTh Reply:

    Расчеты там действительно достаточно мудрены и подобрать действительно проще. Если есть интерес почитайте вот здесь — очень все обстоятельно и подробно: http://www.ferrite.com.ua/site/page-Trancformatori_i_drocceli

    Вам нужно будет учесть запаздываение фазы в фильтре и снижение амплитуды…

  5. MTh написал(а) 1 сентября, 2010 в 6:06

    А можно расшифровать схему работы вывода enable? Не совсем понятно как оно работает 🙂

    BSVi Reply:

    Да все просто, в UC3843 есть ограничитель пикового тока, то есть, если напряжение на выводе 3 (который должен быть подключен к токоизмерительному резистору) превышает некоторый порог, микросхема закрывает ключ.

    Я просто напросто от внешнего генератора подаю на защиту по току сигнал мол «ток многократно превышает максимальный», микросхема в попытке защитить транзистор спешно его вырубает. Я подаю заперт работы через диод, чтобы не нарушать работу защиты во «включенном» режиме.

    MTh Reply:

    Те даиоде упадет примерно 0,8 вольта — от 5 останется 4,2 — входное напряжение у 3843 по токовому каналу 2,5 вольта. Резистор последовательно с диодом ограничивает ток чтобы не мешал работе самой микросхемы. В таком случае с положительной частью (высоким уровнем ШИМ) напряжения все ясно. А низкий уровень ШИМа просто не используется…

    Я правильно понял?

    BSVi Reply:

    Ага. Низкий уровень не мешает работать микрухе, а высокий — выключает.

    MTh Reply:

    Отличною Благодарю!

    MTh Reply:

    Повторил конструкцию токового драйвера для светодиода — очень хорошо работает. Повторяющим дам пару советов:
    1. На вход нужна емкость — иначе сбивается UC из-за помех по линии входного питания (если Вы конечно не от батарейки питаетесь). У автора она вынесена в общую схему.
    2. Индуктивность нужно подбирать как и токовый шунт — КПД сильно от них зависит (у меня плавал от 51% до 79%)…
    3. Входное напряжение в такой схеме как у автора — до 30 Вольт (UC больше не выдержит судя по даташиту). Также оно влияет на КПД…
    4. На выход рекомендую поставить еще и электролит…

    MTh Reply:

    Позволит ли автор разместить у меня на сайте наработки по данной схеме с выкладками некоторых моих размышлений? Само собой со ссылкой на первоисточник 🙂

    BSVi Reply:

    Конечно! Автор офигенно горд, что его статья чем-то помогла )))

  6. aviapunk666 написал(а) 8 февраля, 2011 в 10:58

    Спасибо за идею! У меня подруга крутит пои, а все светодиодное есть на рынке — дерьмо собачье! Вот и хочу ей сделать нормальные на базе подобного светодиодика, тока не на полную его запускать. Один только вопрос: мозги возможно на MSP430 сделать? Ибо в ждущем режиме он жрет меньше всех.

    BSVi Reply:

    Возможно.

  7. Kenny написал(а) 17 апреля, 2011 в 23:11

    bsvi, Я не совсем понял почему Rs=7.29ом. по даташиту запирающее напряжение 1 вольт и при токе в 0,35а Rs вроде должен быть 2,85ом или я не прав?
    кстати нашёл в интернете удобные драйвера cpc9909 и удобный app note по расчётам такой схемки http://www.clare.com/home/pdfs.nsf/www/AN-301_R01.pdf/$file/AN-301_R01.pdf там примеры под микруху но в принципе теория и к другим микрухам подходит.
    мне в друг понадобился драйвер для мошного светодиода на 3 ампера, сам сижу экспереминтирую

    BSVi Reply:

    >или я не прав?
    Прибавь к этому сопротивление 47пФ+емкость ножки на твоей частоте через 10к.

    >удобные драйвера cpc9909
    Удобных драйверов существует масса, только их не найдешь просто так.

    Kenny Reply:

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

    BSVi Reply:

    Ну, смотри, конденстор с резистором формируют делитель напряжения. Этот делитель съедает высокие частоты и треугольник который там должен быть слегка сглашижвается.

    Вообще, я резистор подбирал эксперементально, расчитать его — еще тот геморрой.

  8. cronit написал(а) 3 июня, 2011 в 18:35

    полностью собрал плату и прошил фьюзы (драконом), но вот программу залить не могу. IAR выдает 68 ошибок типа:
    Error[Pe020]: identifier «uint8» is undefined C:\iar\main.cpp 17
    и 4 предупреждения. В Си и IAR почти не разбираюсь. Возможно ошибки пошли из-за того, что мой иар (версии 5.51.0) сообщил о старой версии проекта и сконвертировал его. В связи с чем хотел спросить, нуждается ли проект в доработке или мне своих тараканов лечить?

    PS Можт у кого хекс завалялся…

    BSVi Reply:

    Привет, я случайно прописал абсолютный путь к global.h. Исправил и положил туда-же hex. Скачай заново.

    cronit Reply:

    Спасибо Большущее!

  9. Sanches написал(а) 14 октября, 2011 в 15:18

    А можно на основе этой схемы сделать бестрансформаторный сетевой источник тока, если добавить обмотку для питания микросхемы и использовать высоковольтный полевик?

    BSVi Reply:

    Нет, микросхема не сможет работать на таких маленьких коэффициентах заполнения.

  10. jimm64 написал(а) 30 марта, 2012 в 0:32

    Привет, я в этом деле новичок, вы могли бы мне пояснить пару моментов по схеме?

    1) Драйвер, как я понял, нужен на каждый выход enable (1,2,3)?
    2) С чем и как соединять P3?
    3) Выходы PVCC со всех трёх драйверов нужно соединить вместе?

    Буду очень благодарен за советы.

    BSVi Reply:

    1. Да, по драйверу на диод.
    2. Да не с чем. Планировалась светомузыка, но я ее так и не написал.
    3. Ага

    jimm64 Reply:

    Не могу разобраться с драйвером, отказывается работать — на выходе постоянные 1,5-2 вольта, и периодически мигает.
    Напряжение на UC-шку надо отдельное подавать, или только + с PVCC и — с ENABLE?
    Помогите пожалуйста, уже 4 платы перевёл…
    (с мегой всё нормально, работает как надо)

    BSVi Reply:

    На UC должен быть + с PVCC, GND — земля и на ENABLE должен быть 0

  11. cronit написал(а) 22 октября, 2012 в 19:34

    Подойдет ли драйвер для питания лазерного диода из dvd привода? Там очень важно не превышать ток дольше 10 нс, иначе хана оптическому резонатору.

    BSVi Reply:

    По идее, нет. Там должна быть обратная связь от встроенного фотодиода.

  12. cronit написал(а) 23 октября, 2012 в 11:00

    В большинстве приводов используют лаз диод без встроенного фотодиода. Он там стоит отдельно. Ладно попробую смоделировать в multisim и посмотреть график тока.

  13. Sanek546 написал(а) 10 января, 2013 в 11:09

    Здравствуй, Сергей! Я вот что хотел спросить: бывают ли такие моменты времени, когда все три кристалла горят в полную мощность? Дело вот в чем, хочу сделать подобную штуку с питанием от сети. Будет один источник питания, стабилизирующий напряжение 20 В. Дальше три ветки, в каждой светодиодная линейка, линейный регулятор тока и транзистор, которым будет управлять МК. И размышляю, на какую мощность делать источник питания…

    BSVi Reply:

    С HSL контроллером — нет, не бывает. Одновременно в полную силу может гореть только один кристалл.

    Sanek546 Reply:

    Предположим, каждый кристалл твоего светодиода одноваттный. Получается, что в любой момент времени все три кристалла в сумме потребляют не более 1 Вт? Я правильно понимаю?

    BSVi Reply:

    Угу

    Sanek546 Reply:

    Спасибо))

    RockKickstart Reply:

    Для питания от сети, очень хорошо подходят микросхемы HV9910,IL9910. В ИМРАДЕ есть в продаже. В даташитах есть схема. Для IL9910 даташит на русском языке. Схема проверена ,можно подключить и управлять около 115 светодиодами последовательно.

  14. Tronand написал(а) 31 января, 2013 в 12:31

    Добрый день. Хочу сделать драйвер для питания светодиода рассчитанного на 12 V, 3,5 W, Что нужно поменять в этой схеме? С помощью каких формул рассчитать нужные компоненты? Или киньте ссылку на другу схему.

  15. Sanek546 написал(а) 22 марта, 2013 в 14:59

    Здравствуй, Сергей! Пытаюсь первый раз прошить микроконтроллер. Взял у знакомого AVR Dragon. В схеме стоит кварц как у тебя на 20 МГц. Прошиваю через AVR. С первого раза получилось не то что нужно. А именно, мерцания видны невооруженным глазом. Вообщем, думаю дело во фьюзах. Какие значения нужно им присвоить, напиши если не сложно. Не хочу, чтобы контроллер ушел в отключку…

Создать новую ветку комментариев


Вы должны войти или зарегистрироваться чтобы оставить комментарий.