LED светильник с ШИМ и таймером

Данная конструкция реализована на микроконтроллере PIC12F683. Этот выбор обусловлен как размерами, так и невысокой стоимостью последнего. Схема, как видите, повторяема даже самыми начинающими из начинающих радиолюбителей, хоть немного знакомых с микроконтроллерами (хотя и знания микроконтроллеров тут не надо, просто вставил микроконтроллер в программатор, нажал на кнопку «программировать», указал .hex файл и все).

Теперь подробнее о работе программы. После включения питания программа ждет нажатия кнопки SB2. При нажатии кнопки (время нажатия < 1 с) происходит выбор времени таймера (одно нажатие — 50 секунд, второе — 300 секунд, третье — 900 секунд). При желании, можно изменить время таймера (свечения). Рассмотрим это на примере задержки равной 50 секунд ( изменим значение на 100 секунд). Итак, для этого достаточно в .с файле найти строчки:
//Delay
//Delay: 50 s
delay_s(50);
Там где значение 50, нужно подставить 100
//Delay
//Delay: 100 s
delay_s(100);

На этом изменения в коде заканчиваются. Что касается ШИМа, то в микроконтроллере PIC12F683 имеется аппаратный ШИМ, что я и использовал в этой схеме. Его работа тут сводится к минимуму: он применяется лишь для плавного включения/выключения светодиодов.

Схема устройства:

Как я уже говорил, схема очень простая. Кроме микроконтроллера из внешних деталей лишь два транзистора, четыре резистора да  пару кнопок не считая светодиодов. Резисторы R4 и R1(R6, R5) для того, что бы ноги микроконтроллера не висели «в воздухе», пока кнопки не нажаты.А R2,R3 для ограничения тока(если их убрать, то микроконтроллер может выйти из строя). Кнопка SB1, как уже говорилось выше, кнопка управления, а SB2 — сброс микроконтроллера (применяется для прерывания работы таймера). Питание стандартное, 5V. Для усиления мощности портов микроконтроллера, я использовал банальные биполярные ключи. ВНИМАНИЕ! Транзистор Q1 выбирайте в зависимости от применяемых вами светодиодов, и при необходимости снабдите его радиатором! В своей схеме я использовал маломощные светодиоды, потому что планировал питать светильник от аккумуляторов, либо от батарей, поэтому у меня на схеме маломощный транзистор.

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

Но в силу сложности изготовления второго и объемности первого было решено их совместить:

В итоге получилась не большая и простая (в смысле монтажа и разводки) плата.

Что касается замены деталей:
Транзистор Q2 можно заменить на КТ315(буква любая),Q1 любой n-p-n средней мощности, резисторы R1 и R4 любые от 2-х до 10-ти кОм, R2 и R3 от 2-х до 5-ти кОм. Параллельно источнику питания желательно поставить блокировочный конденсатор в районе 0,01-0,1 микрофарад. Это предотвратит возможные помехи и сбои в работе программы. Если вы используете сетевой источник питания, то ещё можно подключить параллельно ему конденсатор емкостью 1000-2200 микрофарад на напряжение 16 вольт. Микроконтроллер (без изменений в программе) другим заменить нельзя! Использовать МК PIC12F629 и PIC12F675 так же невозможно, потому что у них отсутствует ШИМ.

О проблемах:
В этот раз не обошлось и без проблем, так например работу ШИМа PROTEUS ну никак моделировать не хотел (в приложении прошивка с ШИМ и без него, сами попробуйте, что вас устраивает больше). Так же в приложении выкладываю исходники программы, скомпилированную прошивку, проект в PROTEUSе (файл печатной платы в проекте есть, открывается ARES), а так же проект в Flowcode.

Управление светильником:
Управление у этого девайса очень простое. Кратковременным нажатием кнопки SB1(до выключения светодиода LED1) производится выбор времени выключения таймера (подробнее в начале статьи). Если кнопку нажать и удерживать пока светодиод не загорится второй раз, и отпустить до того как он выключится, то активируется таймер, с тем временем выключения которое вы установили кратковременными нажатиями. Обратите внимание! Если кнопка ни разу не была нажата кратковременно, то таймер не активируется и светильник опять уйдет в режим ожидания. Если нажать кнопку и отпустить ее после того как светодиод выключится второй раз, то включится режим «постоянного освещения» то есть светильник будет светить пока не разрядится аккумулятор или не сядет батарейка (в случае питания от сети будет светить постоянно). Что бы сбросить устройство в первоначальное состояние во время работы таймера используется кнопка «сброс» SB1.

P.S. Это мой первый самостоятельно созданный с нуля проект на микроконтроллере, поэтому не судите строго. Если заметите какие то неточности в схеме или прошивке — оставляйте комментарии к статье.

Ниже вы можете скачать исходники, прошивку, проект в Proteus и Flowcode

Список радиоэлементовОбозначение
Тип
Номинал
Количество
ПримечаниеМагазинМой блокнот

U1
МК PIC 8-битPIC12F6291
Q1, Q2
Биполярный транзистор2N17112
D1-D7
СветодиодСиний7
R5-R8
Резистор2 кОм4
SB1, SB2
Тактовая кнопка2
Добавить все

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

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

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

Ваш адрес email не будет опубликован.