Самодельный светодиодный светильник

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

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

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

В качестве резервного способа управления на корпусе установлены три кнопки. Одна из них отвечает за включение/выключение. Две других увеличивают и уменьшают яркость.

Пульт является более универсальным cредством управления, так как на нем имеется достаточно кнопок, чтобы запрограммировать всевозможные режимы работы лампы.
Сейчас я использую кнопку ОК для включения лампы. Стрелки для регулировки освещенности и температуры свечения. На цифру 1 запрограммирован максимальный режим свечения, при котором все светодиоды работают на максимум. Решетка выравнивает баланс белого и желтого света.
Давайте посмотрим на электронную схему устройства.

В качестве управляющего устройства используется Arduino.  Пять портов его (5, 6, 9, 10, 11) выведены на клеммную колодку. Эти порты будут управлять светодиодами с помощью шим сигнала. Сразу скажу, что здесь я ошибся и одиннадцатый порт задействовать не получится, так как он использует тот же таймер, что и инфракрасный пульт.
Это не создаст особой проблемы, так как можно пару светодиодов подключить от одного порта, я подключил два крайних светодиода на 5 порт.
Так же на схеме есть две колодки питания. Они полностью идентичны. Одна из них будет использоваться для питания ардуино, а со второй питание пойдет на драйверы светодиодов.
Еще на схеме мы видим клавиатуру из трех кнопок. При нажатии любой из кнопок на соответствующем порту ардуино появляется низкий уровень сигнала.
И небольшую схемку для подключения инфракрасного приемника TSOP1838. Приемник продается вместе с инфракрасным пультом. В комплекте уже есть специальная схемка для подключения этого приемника к ардуино, но я не буду ее использовать и размещу свою на уравляющей плате. Схема эта взята из даташита к приемнику.

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

Понятно, что мощный светодиод нельзя подключить напрямую к микроконтроллеру. Мы будем подключать светодиод через полевой транзистор Q2. Так же добавим к полевому транзистору пару биполярных Q1 и Q3. Они будут работать в качестве драйвера полевого транзистора. Когда с Arduino придет высокий уровень сигнала, откроется верхний транзистор и зарядит затвор полевого транзистора. Полевой транзистор в свою очередь откроется и зажжет светодиод. Как только с Arduino придет низкий уровень сигнала, верхний транзистор закроется, а откроется нижний. Затвор полевого транзистора разрядится через транзистор Q3 и полевой транзистор закроется. Светодиод потухнет.
С ардуино будет приходить шим сигнал,  с помощью скважности которого и будет регулироваться яркость светодиода.
В схеме установлен пятиваттный резистор R1 на полтора ома. Он ограничивает ток, который поступает на светодиод при максимальном режиме свечения, когда полевой транзистор всегда открыт.
Так же в схему добавлен самовосстанавливающий предохранитель на 0.9 ампер, который будет защищать схему от замыкания, если вдруг светодиод выйдет из строя.
Один такой драйвер будет зажигать один светодиод.
Нам потребуется пять таких драйверов.

Корпус светильника хотелось сделать аллюминиевым. Долго не мог найти подходящий материал в нашем городе. В итоге купил аллюминиевый порог для прихожей. Еще мне удалось найти кусок более толстого аллюминия для нижней части светильника.
Немного рабочего бардака)

Расположение эелементов внутри корпуса. Первым идет блок питания на 12 вольт. Следом идут радиаторы для светодиодов совместно с драйверами. Последней расположим управляющую плату с ардуино.

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

После первого включения и тестирования появилась первая проблема. Даже при минимальном сигнале светодиоды все равно немного светятся. То есть получается, что когда мы выключаем лампу, светодиоды все равно тускло горят. Причем разные светодиоды светятся с разной яркостью. Желтые светились больше, белые меньше. Для решения этой проблемы я установил резисторы 1.5 кОм параллельно желтым светодиодам. Это решило вопрос с выключением. Белые светодиоды не стал трогать, так как они все равно практически не светятся.
Вторая проблема связана с пульсацией света светодиодов. По умолчанию шим сигнал ардуино имеет частоту 500 или 1000 Гц на разных портах. Это хорошо было видно при съемке на камеру. Перевел режим работы на максимальную частоту 30 и 60 кГц. Теперь мерцания светодиодов незаметно. И на глаз свет стал более мягким, глаза от него не устают.
В результате получился интересный светильник с нужными мне функциями.
Исходный код для ардуино

Ссылки:

Светодиоды: http://itworkclub.ru/LED_Diode
Инфракрасный пульт управления с приемником: http://itworkclub.ru/Remote
Резисторы для подключения светодиодов от 12V: http://itworkclub.ru/Resistor
Блок питания 12V 6A: http://itworkclub.ru/Power6A
Arduino nano V3: http://itworkclub.ru/arduino_nanoV3
Схема: https://easyeda.com/zhelezny.andrey/Lamp-f27ee2fa7a7d4006ae4bb4c62acf12a4
Скетч: https://create.arduino.cc/editor/zhelezny-andrey/69e0b41d-5658-4d6f-a3d9-bc561c48c762/preview