Данная конструкция реализована на микроконтроллере 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-бит | PIC12F629 | 1 | Поиск в магазине Отрон | ||
Q1, Q2 | Биполярный транзистор | 2N1711 | 2 | Поиск в магазине Отрон | ||
D1-D7 | Светодиод | Синий | 7 | Поиск в магазине Отрон | ||
R5-R8 | Резистор | 2 кОм | 4 | Поиск в магазине Отрон | ||
SB1, SB2 | Тактовая кнопка | 2 | Поиск в магазине Отрон | |||
Скачать список элементов (PDF)
Прикрепленные файлы:
- lamp.rar (44 Кб)
Комментарии (1) | Я собрал (0) | Подписаться
Для добавления Вашей сборки необходима регистрация
Без прошивки тупик, а программировать не могу.
Ищу выход из проблемы. Можно в вашу схему добавить регулировку ШИМ с кнопок больше меньше и таймер изменить на 15, 30, 45, 60 минут? Спасибо за статью, на крайний случай использую её и отдельный китайский ШИМ регулятор.