LED коледна елха
Неделя вечер, остават само няколко дни до новата година и е време да сглобите ексклузивно коледно дърво за себе си. Желанието да събера такава елха се появи след като видях снимка с друга LED елха. Току-що намерих схемата на триона на MKPIC16F628 с изходния код. В изходния код е по-описано как да промените какво. Едно време изгарях от желание да записвам звуци в микроконтролер и сега мечтата ми се сбъдна. Но тъй като мечка стъпи на ухото ми, не можах сам да съчиня мелодия, въпреки че се опитах. Добре, нека започнем проекта за LED дърво. След неуспешния спектрален анализатор (най-вероятно платката е крива или самата верига, защото качих фърмуера много пъти и промених MK не работи), имах много светодиоди, които не знаех къде да адаптирам.
Въз основа на тях планирах да направя дизайн. Няма да обръщам специално внимание на сглобяването на светодиоди в коледно дърво, тук всичко е ясно и всеки ще го направи, стига въображението му да е достатъчно.
Всички светодиоди са запоени паралелно.
Във веригата има и светодиоди, които мигат сами. Това бяха най-трудните. Багажникът на моята коледна елха е направен от дебела тел с диаметър 1,5 мм. Този багажник имам захранване "МИНУС". Според схемата запояваме светодиодите към минуса на местата, където искаме. И към "ПЛЮС" на светодиодите, запояваме проводниците и ги спускаме към основата на коледната елха.
Принципна схема на LED коледно дърво на MK
Резисторите, които отиват към светодиодите, имам всички по 1k. Обикновен хартиен високоговорител от 4 ома е свързан чрез резистор от 100 ома.
Да преминем към съдържанието на MK. Ако просто искате да качите фърмуера в MK, тогава всъщност нямате нужда от нищо друго освен програмист. Ако не ви е достатъчно това, което е в готовия фърмуер, можете да го промените. Това ще изисквасреда за разработкаMPLab.
Ето как изглежда средата за разработка. Изтеглете нашия източник, всякакъв, но по-добър elka2.asm е най-новият и усъвършенстван фърмуер.Внимание ! Програмата не поддържа български имена в пътя на файла, така че е по-добре просто да хвърлите този източник в папката на програмата, в противен случай ще се появят грешки.
Ето как изглежда нашият фърмуер в асемблер. Намираме раздела "Константи". Вече го коригирах, но не е страшно. В MK има няколко светлинни ефекта, светодиодите мигат по различен начин. Нека се върнем малко към схемата, когато захранването е включено, светодиодите започват да мигат, когато натиснете бутона "MUSIC", започва първата мелодия и след това мелодиите се възпроизвеждат в автоматичен режим, ако не натиснете бутона, музиката няма да се възпроизведе.
Надписът "след колко светлинни ефекта да се пусне мелодията 1-ви път след включване ". Тук задавам 0, т.е. След натискане на бутона музиката се възпроизвежда веднага. Ако е зададено на 1, след натискане на бутона ще премине 1 цикъл на мигане на светодиода - ще се възпроизведе музика. 2 - музиката ще се възпроизведе след 2-рата промяна на цикъла и т.н.
Надписът "след колко светлинни ефекти да изсвири мелодия в процеса на работа ". Тук съм го поставил на 1. Тоест след всяка смяна на комбинацията от светодиоди, музиката се възпроизвежда по време на работа. Слагаме 2 - музиката се възпроизвежда след всеки втори цикъл.
Слизаме надолу по кода и спираме на секцията „Програма за декодиране на продължителност“ и „Програма за декодиране на бележки“. Именно тези данни са ни необходими, за да създаваме мелодии. Продължителността се изразява в секунди, т.е. 1/8=0,125s, 1/4=0,250s, 1/2=0,5s и т.н. Тези продължителности съответстват на кодовете в двоичната система. Например "HHHHH000" = 1/8. Където HHHHH е звук с определена честота (за това по-късно), 000 е продължителността на този звук, вв този случай 1/8 секунда.
След това имаме бележки за декодиране. Алгоритъмът, по който се задава честотата, тук е малко неясен, така че задавайте честотите на око). Не забелязах признаци на закономерност и зависимост на честотата от кода. Резултатът е нещо подобно (за тези, които са запознати с двоичния код, няма да е трудно). Започни с:
00000DDD (продължителност на DDD, обсъдена по-горе) 00001DDD
След това ще продължим да броим в двоичен код (ще пиша без DDD)
00010 00011 00100 00101 00110 00111 01000
И така до края на честотния списък. За да не се объркате, можете да пишете в самата програма, да поставите точка и запетая и да напишете каквото искате, тази програма не възприема, но за нас служи като ориентир.
Изглежда, че са разбрали нотите и продължителността на нотите. Сега можете да напишете мелодия, но не всичко е толкова просто, поне не можах да намеря продължителността и нищо не се получи. Мелодията е взета отjingle bells, в уебсайта за детски песни намерих тази мелодия, разложена на ноти:
ми-ми-ми, ми-ми-ми ми-сол-до-ре-ми фа-фа-фа, фа-ми-ми-ми ми-ре-ре-ми-ре, сол
ми-ми-ми, ми-ми-ми ми-сол-до-ре-ми фа-фа-фа, фа-ми-ми-ми сол сол-до-ре-до
do-fa-mi-re-do do-do-sol-fa-mi-re re-sol-fa-mi-la-la-la si-la-sol-si-do (горе)
Намерих таблица с честоти и бележки:
Започна да пише песен в двоичен код:
Ето какво имам
Паметта на микроконтролера не е голяма, така че не трябва да записвате твърде дълги мелодии. Лично аз изтрих една мелодия и поставих моята на нейно място. Запазване,файл>запазване като >запазване (без да променяте името, но можете да го промените) > заменете (ако непроменете името на файла). Половината от работата е свършена, остава да се компилира в HEX. За да направите това, отидете в папката с инсталираната среда за разработка, потърсете папкатаMPASM Suite, стартирайтеMPASMWIN.exe в тази папка.
Избираме нашия файл с бутонаПреглед и щракнете върхуСглобяване. Ако всичко е успешно, ще се появи прозорец:
В папката, където се намира източникът, ще се появят няколко файла с различни разширения, но с иметоelka2. Намираме коледно дърво с разширение HEX, това ще бъде нашият фърмуер за MK, остава само да го попълним. Сега изглежда, че е разказал всичко.
Видео за работа с LED дърво
Видео на готовото коледно дърво, сглобих всичко с навес, MK в гнездото, всичко останало към гнездото). Забравих за втория бутон, това е бутонът за нулиране, той първо стартира MK, тоест само светлинни ефекти без музика, ако натиснете "MUSIC", музиката ще се възпроизведе. Всички работни файлове за коледната елха на микроконтролера можете да изтеглите тук.
По-добре е да се захранва по-мощно, имам зарядно устройство от мобилен телефон 5V 0.5A и очевидно не е достатъчно, светодиодите едва светят. Успех на всички и честита нова година! ))[)eHiS.