Контроллер светодиодной ленты на ATtiny13a

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

Начнём!

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

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

 

Светодиодная лента:

1. Лента должна быть рассчитана на 12В(любого свечения).

2. Максимальная потребляемая мощность ленты не должна превышать 50Вт.

Это обусловлено контроллером, силовые дорожки которого выдерживают ток до 4А.

 

Блок питания:

Основными параметрами блока питания являются мощность и выходное напряжение:

1. Так как мы выбрали ленту на 12 вольт, то нам необходим блок питания на это же напряжение.

2. Мощность блока питания определяется лентой.

Рассчитать её не сложно. Для этого необходимо добавить к потребляемой лентой мощности 25% запаса. Для удобного расчёта я вывел формулу. в которой так же учитывается потребление 5 вольтовой части контроллера подсветки и запас мощности. С помощью неё очень удобно рассчитать необходимую мощность для ленты любой длины и потребляемой мощности:
x = 0.3 * (4 * z * y + 1) при x < 50

Где: 
  x – требуемая мощность блока питания (Вт)
   z – длина ленты (м)
   y – мощность ленты (Вт)
Например мне нужен блок питания для ленты 1 метр(14.4Вт/м):
x = 0.3 * (4 * 1 * 14.4 + 1)
x = 17.58 Вт

То есть метровая лента потребляет от блока питания 18Вт.

Примечание: максимальная мощность блока питания для этого контроллера должна составлять около 60Вт(при 3.5 метрах ленты 14.4Вт/м), т.к контроллер выдерживает ток до 4А.

 

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

В качестве регулятора яркости использовал потенциометр. Его сопротивление будет измерять АЦП МК. Для непосредственного управления лентой(и регулирования её яркости) поставил силовой MOSFET, который будет использовать ШИМ сигнал с МК. Для управления затвором 5 вольт не достаточно, поэтому добавил 12 вольтовую схему управления. Она обеспечивает необходимое напряжение управления, а так же ускоряет зарядку и разрядку ёмкости затвора для быстрого переключения транзистора.

МК и периферия питаются от линейного стабилизатора, который понижает входное напряжение 12В до 5-ти. В качестве контроллера выбрал ATtiny13a. т.к у него есть АЦП, можно организовать ШИМ и достаточное количество ножек для датчиков.

Печатная плата

Разводка производилась с учётом использования технологии ЛУТ. Все дорожки расположены на нижнем слое, кроме двух перемычек по линии «земли» на верхнем слое. Исходники PDF оставлю в конце статьи.

Программа

Основная задача устройства — регулирование яркости светодиодной ленты. Для этого используется ШИМ, который генерируется на одной из ножек МК.

Для автоматического включения ленты, МК мониторит состояние порта, к которому подключён датчик движения. При возникновении высокого уровня сигнала, начинается отсчёт до выключения. Если во время срабатывания, лента была выключена, то она плавно загорается. Если во время работы ленты срабатывает прерывание, то отсчёт до выключения начинается сначала.

Для регулировки яркости, АЦП снимает показания с потенциометра и заносит их в регистр ШИМа.

Примечание: во время включения ленты, яркость возрастает до значения считанного с АЦП, следовательно до яркости, которая установлена потенциометром.

Чтобы микроконтроллер успевал обрабатывать информацию, я повысил частоту с 1.2МГц(заводскую) до 9.6МГц с помощью фьюз-битов:(E: FF, H: FF, L: 7A). Для этого снял галочку CKDIV8(деление частоты на 8) при инверсной настройке.

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

В конце статьи приложу оба исходника программы.

Корпус

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

Итог

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

А на втором — измерять показания АЦП с фоторезистора и вводить как коэффициент корректировки яркости.

Желаю удачи, тем кто решится повторить проект!

Список радиоэлементов

Обозначение Тип Номинал Количество Примечание Магазин Мой блокнот
DD1 МК AVR 8-бит ATtiny13A 1 в DIP корпусе
DA1 Линейный регулятор LM7805 1
 
VT1 MOSFET-транзистор IRF540NPBF 1
VT2, VT3 Биполярный транзистор 2N5551 2
 
VD1 Выпрямительный диод BYV26C 1
 
HL1 Светодиод 3 мм 1 любого свечения
 
R1, R6 Резистор 10 кОм 2
R3, R4, R7 Резистор 1 кОм 3
R2 Резистор 470 Ом 1
R5 Резистор 10 Ом 1
XP2 Переменный резистор 10кОм 1 подключается к колодке XP2
 
C1 Конденсатор 0.1 мкФ 1
C2 Конденсатор 220 мкФ 1
C3 Конденсатор 2.2 мкФ 1
 
XP1 Разъём PLS-3 1 датчик HC-SR501
XP2 Разъём PSL-4 1 потенциометр и свободный порт
XP3 Разъём PLS-6 1
 
XS3, XS2 Разъём 2×5 мм 2 клеммник с шагом контактов 5мм