- Објашњење:
- Компоненте:
- Програмирање:
- Дизајн кола и ПЦБ-а користећи ЕасиЕДА:
- Израчунавање и наручивање узорака ПЦБ на мрежи:
У овом пројекту ћемо користити ПИЦ микроконтролер за даљинско управљање неколико оптерећења наизменичном струјом само помоћу ИЦ даљинског управљача. Сличан пројекат ИР даљинске контроле кућне аутоматизације већ је урађен и са Ардуином, али овде смо га дизајнирали на ПЦБ-у користећи ЕасиЕДА-ин мрежни дизајнер ПЦБ-а и симулатор и користили њихове услуге дизајнирања ПЦБ-а за наручивање ПЦБ плоча као што је приказано у следећем одељку чланак.
На крају овог пројекта моћи ћете да укључите (УКЉУЧИТЕ / ИСКЉУЧИТЕ) свако оптерећење наизменичном струјом помоћу обичног даљинског управљача из удобности ваше столице / кревета. Да бисмо овај пројекат учинили занимљивијим, омогућили смо и функцију за контролу брзине вентилатора уз помоћ Триаца. Све се то може учинити једноставним притиском на ваш даљински управљач. За овај пројекат можете користити било који даљински управљач за ТВ / ДВД / МП3. Различите ИР сигнале са даљинског управљача прима микроконтролер који затим управља одговарајућим релејима преко кола управљачког релеја. Ови релеји се користе за повезивање и одвајање АЦ оптерећења (светла / вентилатор).
Објашњење:
Рад овог пројекта прилично је једноставан за разумевање. Када се на ИР даљинском управљачу притисне дугме, он шаље секвенцу кода у облику кодираних импулса користећи модулациону фреквенцију од 38Кхз. Ове импулсе прима сензор ТСОП1738, а затим их чита контролер. Затим контролер декодира примљени низ импулса у хексадецималну вредност и упоређује га са унапред дефинисаним хексадецималним вредностима у нашем програму.
Ако се догоди било какво поклапање, контролер извршава релативну операцију активирањем одговарајућег релеја / триака, а одговарајући резултат се такође приказује уграђеним ЛЕД лампицама. Овде смо у овом пројекту користили 4 сијалице (мале сијалице) различитих боја као оптерећења за осветљење, а друга сијалица (већа сијалица) сматра се вентилатором у сврху демонстрације.
Одабрали смо тастер 1 за пребацивање релеја1, 2 за пребацивање релеја2, 3 за пребацивање релеја3, 4 за пребацивање релеја4 и Вол + за повећање брзине вентилатора и Вол- за смањење брзине вентилатора.
Напомена: Овде смо користили сијалицу од 100 вати уместо вентилатора.
Постоји много врста ИЦ даљинских управљача доступних за различите уређаје, али већина њих ради на фреквенцији од 38КХз. Овде у овом пројекту контролишемо кућне уређаје помоћу даљинског управљача ИР телевизора, а за откривање ИЦ сигнала користимо ТСОП1738 ИР пријемник. Овај сензор ТСОП1738 може осетити фреквенцијски сигнал од 38 кХз. Рад ИР даљинског управљача и ТСОП1738 детаљно је описан у овом чланку: ИЦ предајник и пријемник
Наш ПИЦ микроконтролер ради на + 5В, а релеји на + 12В, стога користимо трансформатор да одступимо од 220В наизменичне струје и исправимо га помоћу исправљача са пуним мостом. Овај исправљени једносмерни напон се затим регулише на + 12В и + 5В помоћу ИЦ-регулатора 7812 односно 7805.
За активирање релеја користимо транзисторе попут БЦ547 који могу деловати као електронски прекидач за УКЉУЧИВАЊЕ / ИСКЉУЧИВАЊЕ релеја на основу сигнала из ПИЦ микроконтролера. Даље за контролу брзине вентилатора користимо ТРИАЦ. ТРИАЦ је полупроводник снаге који је у стању да контролише излазни напон; ова способност се користи за контролу брзине вентилатора.
Такође смо користили Триац Дривер за контролу Триаца помоћу нашег ПИЦ микроконтролера. Овај покретач служи за давање импулса угла пуцања Триацу, тако да се може контролисати излазна снага. Овде смо користили 6 нивоа контроле брзине. Када је ниво 0, вентилатор ће бити искључен. Када ниво буде 1 тада ће брзина бити 1/5 од пуне брзине. Када ниво буде 2, тада ће брзина бити 2/5 пуне брзине, односно за остале. Тренутни ниво брзине може се пратити помоћу уграђеног 7-сегментног дисплеја.
Блок шема пројекта приказана је у наставку.
Компоненте:
Компоненте потребне за изградњу овог пројекта дате су у наставку:
- ПИЦ18ф2520 Микроконтролер -1
- ТСОП1738 -1
- Даљински управљач за ИР ТВ / ДВД -1
- Транзистор БЦ547 -4
- Релеји од 12 волти -4
- Сијалица са држачем -5
- Прикључне жице -
- ЕасиЕда ПЦБ -1
- ЛЦД 16к2
- Напајање 12в
- Конектор терминала 2-полни `-8
- Конектор прикључка 3 пинска -1
- Трансформатор 12-0-12 -1 -
- Регулатор напона 7805 -1
- Регулатор напона 7812 -1
- Кондензатор 1000уф -1
- Кондензатор 10уф -1
- Кондензатор 0,1уф -1
- Кондензатор 0,01уф 400В `-1
- 10к -5
- 1к -5
- 100охм -7
- Уобичајени сегмент катоде -1
- 1н4007 диода -10
- БТ136 тријак -1
- Мушко / женско заглавље -
- ЛЕД -6
- Опто-спојница моц3021 -1
- Опто-спојница мтц2е или 4н35 -1
- Кристал од 20 МХз - 1
- 33пф кондензатор -2
- 5.1в зенер диода -1
- Отпор од 47 вати од 2 вата -1
Све ове компоненте се обично користе и могу се лако купити. Међутим, ако тражите најповољнију куповину на мрежи, тада бисмо вам препоручили ЛЦСЦ.
ЛЦСЦ је сјајна интернет продавница за куповину ваших електроничких компонената за све врсте пројеката. Садрже око 25.000 врста компонената, а најбоља ствар је што продају чак и мале количине предмета за мале пројекте, а имају и Глобал Схиппинг.
Декодирање ИР даљинског управљача:
Као што је раније речено, за свој пројекат можете користити било који даљински управљач. Али морамо знати за какав се сигнал генерише са тог одређеног даљинског управљача. За сваки појединачни кључ на даљинском управљачу постојаће еквивалентна ХЕКС вредност за тај кључ. Користећи ову ХЕКС вредност можемо разликовати сваки тастер на нашој страни микроконтролера. Дакле, пре него што се одлучимо за употребу даљинског управљача, требали бисмо знати ХЕКС вредност за тастере унапред подешене на том даљинском управљачу. У овом пројекту користили смо НЕЦ даљински управљач. Вредности ХЕКС за тастере на даљинском управљачу НЕЦ дате су у наставку.
Као што можете приметити, ХЕКС вредност има 7 знакова од којих се разликују само последње две, стога можемо размотрити само последње две цифре да бисмо разликовали сваки кључ.
Кружни дијаграм:
Шема пројекта је приказана у наставку.
Горња шема је олакшана коришћењем есаиЕДА шематског уређивача, јер пружају распоред свих компоненти коришћених у овом пројекту. Такође не захтева инсталацију и може се користити на мрежи у покрету.
Пиноутс и вредности компонената су јасно наведени у горњој шеми. Шематску датотеку такође можете преузети одавде.
Програмирање:
Програм за овај пројекат урађен је помоћу МПЛАБКС-а, код је такође прилично једноставан и лак за разумевање. Комплетни код ће бити дат на крају овог водича, а следећих неколико важних делова програма објашњено је у наставку.
На почетку кода требали бисмо укључити потребне библиотеке, дефинисати пинове и декларисати променљиве.
#инцлуде
Након тога креирали смо једноставну функцију кашњења помоћу петље „фор“.
воид делаи (инт тиме) {фор (инт и = 0; и
Након тога, иницијализовали смо тајмер помоћу следеће функције
воид тимер () // 10 -> 1ус {Т0ПС0 = 0; Т0ПС1 = 0; Т0ПС2 = 0; ПСА = 0; // Извор сата тајмера је из Пресцалера Т0ЦС = 0; // Пресцалер добија сат од ФЦПУ (5МХз) Т08БИТ = 0; // 16 БИТ МОДЕ ТМР0ИЕ = 1; // Омогући ТИМЕР0 Прекид ПЕИЕ = 1; // Омогући периферни прекид ГИЕ = 1; // Омогући ИНТ-ове глобално ТМР0ОН = 1; // Сада покрените тајмер! }
Сада у главној функцији дајемо упутства одабраним пиновима и иницијализујемо тајмер и спољни прекид инт0 да бисмо открили прелазак нуле.
АДЦОН1 = 0б00001111; ТРИСБ1 = 0; ТРИСБ2 = 1; ТРИСБ3 = 0; ТРИСБ4 = 0; ТРИСБ5 = 0; ТРИСЦ = 0к00; ТРИСА = 0к00; ПОРТА = 0кц0; ТРИСБ6 = 0; РБ6 = 1; релеј1 = 0; релеј2 = 0; релеј3 = 0; релеј4 = 0; рли1ЛЕД = 0; рли3ЛЕД = 0; рли2ЛЕД = 0; рли4ЛЕД = 0; фанЛЕД = 0; и = 0; ир = 0; трик = 0; тајмер (); ИНТЕДГ0 = 0; // Прекид на падајућој ивици ИНТ0ИЕ = 1; // Омогућавање спољног прекида ИНТ0 (РБ0) ИНТ0ИФ = 0; // брише ИНТ0 екстерни заставицу прекида бит ПЕИЕ = 1; // Омогући периферни прекид ГИЕ = 1; // Омогућите ИНТ-ове глобално
Сада овде не користимо начин прекида или снимања и упоређивања за откривање ИЦ сигнала. Овде смо управо користили дигитални пин за читање података баш као што читамо тастер. Кад год сигнал крене високо или ниско, ми само ставимо методу оповргавања и покренемо тајмер. Кад год пин промени своје стање у друго, вредности времена биће сачуване у низу.
ИР логика даљинског слања 0 као 562,5ус и логика 1 као 2250ус. Кад год тајмер очита око 562,5ус, претпостављамо да је 0, а када тајмер чита око 2250ус, претпостављамо као 1. Тада га претварамо у хексадецимално.
Долазни сигнал са даљинског управљача садржи 34 бита. Спремимо све бајтове у низ, а затим декодирамо последњи бајт који се користи.
док (ир == 1); ИНТ0ИЕ = 0; док (ир == 0); ТМР0 = 0; док (ир == 1); и ++; дат = ТМР0; иф (дат> 5000 && дат <12000) {} елсе {и = 0; ИНТ0ИЕ = 1; } иф (и> = 33) {ГИЕ = 0; кашњење (50); цмд = 0; за (ј = 26; ј <34; ј ++) {ако (дат> 1000 && дат <2000) цмд << = 1; иначе ако (дат> 3500 && дат <4500) {цмд- = 0к01; цмд << = 1; }} цмд >> = 1;
Горњи комад кода прима и декодира ИЦ сигнал користећи тајмер прекида и чува одговарајућу ХЕКС вредност у променљивој цмд. Сада можемо упоредити ову ХЕКС вредност (цмд променљива) са нашим унапред дефинисаним ХЕКС вредностима и пребацити релеј као што је приказано испод
иф (цмд == 0кАФ) {релеј1 = ~ релеј1; рли1ЛЕД = ~ рли1ЛЕД; } иначе иф (цмд == 0к27) {релаи2 = ~ релаи2; рли2ЛЕД = ~ рли2ЛЕД; } иначе иф (цмд == 0к07) {релаи3 = ~ релаи3; рли3ЛЕД = ~ рли3ЛЕД; } иначе иф (цмд == 0кЦФ) {релаи4 = ~ релаи4; рли4ЛЕД = ~ рли4ЛЕД; } иначе иф (цмд == 0к5ф) {брзина ++; иф (брзина> 5) {брзина = 5; }} иначе иф (цмд == 0к9ф) {спеед--; иф (брзина <= 0) {брзина = 0; }}
Сада да бисмо знали на ком вентилатору тренутно ради, требало би да користимо 7-сегментни екран. Следећи редови се користе за упућивање пинова 7-сегментног екрана.
ако (брзина == 5) // искључен 5к2 = 10мс тригер // брзина 0 {ПОРТА = 0кЦ0; // приказ 0 РБ6 = 1; фанЛЕД = 0; } елсе иф (брзина == 4) // 8 мс окидач // брзина 1 {ПОРТА = 0кфц; // приказ 1 РБ6 = 1; фанЛЕД = 1; } елсе иф (брзина == 3) // окидач од 6 мс // брзина 2 {ПОРТА = 0кЕ4; // приказ 2 РБ6 = 0; фанЛЕД = 1; } елсе иф (брзина == 2) // окидач од 4мс // брзина 3 {ПОРТА = 0кФ0; // приказ 3 РБ6 = 0; фанЛЕД = 1; } елсе иф (брзина == 1) // окидач од 2мс // брзина 4 {ПОРТА = 0кД9; // приказујемо 4 РБ6 = 0; фанЛЕД = 1; } елсе иф (брзина == 0) // 0мс окидач // брзина 5 пуне снаге {ПОРТА = 0кД2; // приказује 5 РБ6 = 0; фанЛЕД = 1; }
Следећа функција је за спољни прекид и преливање времена. Ова функција је одговорна за откривање преласка нуле и вожњу Триаца.
воид интеррупт иср () {иф (ИНТ0ИФ) {делаи (спеед); трик = 1; за (инт т = 0; т <100; т ++); трик = 0; ИНТ0ИФ = 0; } иф (ТМР0ИФ) // Проверите да ли је ТМР0 Оверфлов ИСР {ТМР0ИФ = 0; }}
Коначна ПЦБ за ову ИЦ даљинско управљану кућну аутоматизацију изгледа као што је приказано доле:
Дизајн кола и ПЦБ-а користећи ЕасиЕДА:
Да бисмо дизајнирали ову даљинску контролу кућне аутоматизације, користили смо ЕасиЕДА који је бесплатан мрежни ЕДА алат за креирање кола и ПЦБ-а на неприметан начин. Претходно смо наручили неколико ПЦБ-а од ЕасиЕДА-е и још увек користимо њихове услуге пошто смо пронашли читав процес, од цртања кола до наручивања ПЦБ-а, погоднијих и ефикаснијих у поређењу са другим произвођачима ПЦБ-а. ЕасиЕДА нуди бесплатно цртање, симулацију, дизајн ПЦБ-а, а такође нуди и висококвалитетну, али ниску цену прилагођену услугу ПЦБ-а. Овде потражите комплетан водич о томе како користити Еаси ЕДА за израду шема, распореда ПЦБ-а, симулације кола итд.
ЕасиЕДА се побољшава из дана у дан; додали су многе нове функције и побољшали целокупно корисничко искуство, што ЕасиЕДА чини лакшим и употребљивијим за дизајнирање кола. Ускоро ће лансирати његову верзију за радну површину, која се може преузети и инсталирати на рачунар за офлајн употребу.
У ЕасиЕДА-и можете да учините дизајн својих кола и ПЦБ-а јавним, тако да их други корисници могу копирати или уредити и од тога имати користи. Такође смо учинили јавним читав свој распоред кола и ПЦБ-а за ову даљинску контролу кућне аутоматизације.
Испод је Снимак горњег слоја изгледа ПЦБ-а од ЕасиЕДА-е, можете видети било који слој (горњи, доњи, горњи део, дно итд.) ПЦБ-а избором слоја из прозора „Слојеви“.
Израчунавање и наручивање узорака ПЦБ на мрежи:
Након завршетка дизајна ПЦБ-а, можете кликнути на икону излаза за производњу , која ће вас одвести на страницу за наручивање ПЦБ-а. Овде можете прегледати ПЦБ у програму Гербер Виевер или преузети Гербер датотеке са ПЦБ-а и послати их било ком произвођачу, а такође је и много лакше (и јефтиније) наручити директно у ЕасиЕДА-и. Овде можете одабрати број ПЦБ-а које желите да наручите, колико слојева бакра вам треба, дебљину ПЦБ-а, тежину бакра, па чак и боју ПЦБ-а. Након што одаберете све опције, кликните на „Спреми у корпу“ и довршите наруџбину, а затим ћете у року од неколико дана добити своје ПЦБ плоче.
Можете директно наручити ову ПЦБ или преузети Гербер датотеку помоћу ове везе.
Након неколико дана наручивања ПЦБ-а, добили смо ПЦБ-ове. Даске које смо добили приказане су у наставку.
Једном када смо добили ПЦБ-ове, монтирао сам све потребне компоненте преко ПЦБ-а, и на крају смо припремили нашу даљинску контролу аутоматизоване куће, проверите овај круг који ради у демонстрацијском видеу на крају чланка.