Настоящият проект представлява светорегулатор (димер) за светодиодни осветителни тела на ниско напрежение, базиран на софтуерен ШИМ (широчинно-импулсна модулация) генератор с променлив коефициент на запълване. Използваният микроконтролер е PIC12F629 на компанията Microchip. Това е контролер от нисък клас, който не разполага с вграден ШИМ модул, поради което е създаден такъв с помощта на софтуер. Схемата на светорегулатора е дадена на долния чертеж.
Устройството се захранва от един източник с напрежение 12V, като 5-те волта нужни за микроконтролера се осигуряват от стабилизатор 78L05 – U2. Контролът се осъществява посредством сензорен бутон – SW1, представляващ проводима пластина или друг метален предмет с добра проводимост (без значение от формата). Диодите D13 и D14 са свързани така, че ако от сензора се получи напрежение извън границите 0÷5V, то бива подавано към маса или към стабилизатора, като така се предпазва микроконтролера. Този тип сензорен бутон е от капацитивен тип. Микроконтролерът подава 5V напрежение към сензора и така зарежда пръста на потребителя с много малко количество електрическа енергия. След това този извод се преконфигурира като вход и се извършва проверка за напрежението. Ако пръстът на потребителя е докоснал сензора, то той е бил зареден и за кратък интервал от време се разрежда през R1, като през този интервал микроконтролерът възприема потенциала от заредения пръст като сигнал за натиснат бутон. За по-добра защита от смушения този резистор трябва да бъде с по-малка стойност (за препоръчване не по-малка от 10кΩ). Напрежението на което се подлага потребителят е напълно безопасно. Въпреки това, за да се гарантира безопасността е задължително изходът на захранващия източник да е галванически развързан от захранващата мрежа (например чрез използване на мрежов трансформатор или импулсно захранване с изходен импулсен трансформатор). При използване на друг тип захранване е нужно да се вземат допълнителни мерки за защита на потребителя. Изходният сигнал се подава от три от изводите на микроконтролера, като може да се използва и само един от тях. Това е направено с цел при евентуална повреда на един от изводите (например претоварване) да се запази функционалността на схемата. Сигналът се подава през резистор R2 към транзистор Q1. Избраният транзистор е BC547C, който е маломощен биполярен транзистор. С него можете да захраните светодиоди при граничен ток от 100мА и 0,5W разсейвана мощност. Транзисторът има голям коефициент на предаване по ток (500), което означава малко натоварване на изводите на микроконтролера и по-голяма енергийна ефективност. Светодиодите са свързани в 4 линии по 3 с последователен резистор от 200Ω във всяка линия. Този резистор ограничава тока през светодиодите и неговата стойност зависи от параметрите на самите светодиоди. Поради тази причина ако някой реши да изработи схемата, трябва сам да избере стойностите на тези резистори.
Управлението на схемата става по следният начин. Кратко докосване на сензорния бутон включва или изключва светодиодите плавно с помощта на ШИМ генератора. След включване интензитетът е максимален. При задържане на сензорния бутон се променя плавно силата на светене от минимум до максимум и обратно и така докато не бъде пуснат бутонът. При задържане на бутона промяната в интензитета е към намаляване и за получаване на по-голяма осветеност трябва да се изчака преминаване през минимум и последващото увеличаване. Спирането на светодиодите винаги става плавно.
За свързване на по-голям брой светодиоди трябва да се смени транзисторът Q1 с по-мощен, като се измерва базовият му ток, за да не се претоварят изводите на микроконтролера. Възможно е и използването на MOSFET транзистор, който може да работи с ТТЛ нива.
Можете да използвате компилираният HEX файл публикуван по-долу. За целта се убедете, че сте копирали цялото съдържание. Отворете нов прозорец на Notepad и поставете кода в него. Запишете файла с произволно име без празни места и разширение HEX. Кодировката трябва да бъде от тип ANSI. Задължително се оставя един празен ред в края на файла. Стартирайте използваният от вас софтуерен продукт за програмиране на микроконтролери, изберете PIC12F629 като устройство за програмиране и заредете HEX файла. Програмирайте чипа и той е готов за използване.
Компилиран софтуер за създаване на HEX файл:
Копирайте всичко между редовете със знака =
=========================================
:10000000D801D901DA01DB01DC01DD01DE01831653
:10001000FF23900083010C28F1238316051283121D
:1000200005160330A000A00B1328831605168312B3
:10003000051E232A6430DA005B08D800D901D808ED
:1000400003192628FF308500D8032A2885010000DF
:1000500000000000D90A590F1F28DA03031D1C28CD
:1000600083160512831205160330A000A00B362854
:10007000831605168312051E5E29DE01DE03831634
:100080000512831205160330A000A00B4528831625
:1000900005168312051E5C29DF080319D1285B0AA7
:1000A0000319CF28DB0A05305B02031859284030BA
:1000B000DA000A305B020318632805305B02031C78
:1000C00063282A30DA0010305B0203186D280A30EA
:1000D0005B02031C6D281C30DA0017305B0203182A
:1000E000772810305B02031C77281430DA001C30AC
:1000F0005B020318812817305B02031C81280F3034
:10010000DA0028305B0203188B281C305B02031CCA
:100110008B280B30DA0038305B0203189528283022
:100120005B02031C95280930DA005F305B0203187C
:100130009F2838305B02031C9F280730DA007F308D
:100140005B020318A9285F305B02031CA928053055
:10015000DA00C3305B020318B3287F305B02031C54
:10016000B3280430DA00C3305B02031CB928033023
:10017000DA00DA08031953295B08D800D901D80836
:100180000319C628FF308500D803CA28850100005E
:1001900000000000D90A590FBF28DA03B928DF018F
:1001A0005329DB0803195129DB0305305B020318CF
:1001B000DB284030DA000A305B020318E5280530FE
:1001C0005B02031CE5282A30DA0010305B020318BA
:1001D000EF280A305B02031CEF281C30DA001730CE
:1001E0005B020318F92810305B02031CF928143055
:1001F000DA001C305B020318032917305B02031C72
:1002000003290F30DA0028305B0203180D291C3057
:100210005B02031C0D290B30DA0038305B02031837
:10022000172928305B02031C17290930DA005F30D8
:100230005B020318212938305B02031C2129073097
:10024000DA007F305B0203182B295F305B02031C4E
:100250002B290530DA00C3305B02031835297F30C3
:100260005B02031C35290430DA00C3305B02031C37
:100270003B290330DA00DA08031953295B08D80058
:10028000D901D80803194829FF308500D8034C2923
:100290008501000000000000D90A590F4129DA0346
:1002A0003B29DF01DF038316051283120516033095
:1002B000A000A00B59294728DF01232A5E0FC62979
:1002C000DB08031D6629DD01DD0368295B08DD000D
:1002D0005D08DC00DC080319C32902305C02031846
:1002E00073290A30DA0003305C0203187D290230DA
:1002F0005C020730031C7E29DA0007305C02031819
:10030000872903305C02031C87290530DA000F308F
:100310005C020318912907305C02031C9129043008
:10032000DA001F305C0203189B290F305C02031CAB
:100330009B290330DA003F305C020318A5291F30E7
:100340005C02031CA5290230DA003F305C02031C6A
:10035000AB29DA01DA0ADA080319C1295C08D800E6
:10036000D901D8080319B829FF308500D803BC2962
:100370008501000000000000D90A590FB129DA03F5
:10038000AB29DC036A29DB01DE01232AFF30DB0015
:10039000DE00DC0102305C020318D0290A30DA00EA
:1003A00003305C020318DA2902305C020730031CB8
:1003B000DB29DA0007305C020318E42903305C0211
:1003C000031CE4290530DA000F305C020318EE2923
:1003D00007305C02031CEE290430DA001F305C0297
:1003E0000318F8290F305C02031CF8290330DA00E7
:1003F0003F305C020318022A1F305C02031C022AF1
:100400000230DA003F305C02031C082ADA01DA0A03
:10041000DA0803191E2A5C08D800D901D808031984
:10042000152AFF308500D803192A85010000000035
:100430000000D90A590F0E2ADA03082ADC0AFE3016
:100440005C02031CCA295E0F0D285B08D800D90185
:10045000D80803192F2AFF308500D803332A8501D5
:10046000000000000000D90A590A03190D28282AA3
:1007E20038308316850083128501073099008B010A
:0C07F200DB01D801DE01DF01DF0308009D
:02400E00843FED
:00000001FF
=========================================