Съдържание:

3 лесни празнични подаръка ATTiny: 4 стъпки
3 лесни празнични подаръка ATTiny: 4 стъпки

Видео: 3 лесни празнични подаръка ATTiny: 4 стъпки

Видео: 3 лесни празнични подаръка ATTiny: 4 стъпки
Видео: СВАДЕБНЫЙ ПОДАРОК ИДЕЯ 2023 2024, Ноември
Anonim
3 лесни празнични подаръка ATTiny
3 лесни празнични подаръка ATTiny

Всяка година ваканционният сезон се търкаля и аз се забивам какво да подаря на приятелите и семейството си. Хората винаги казват, че е по -добре да направите подаръка сами, отколкото да го купите в магазин, така че тази година направих точно това. Първият показва име или основно изображение, когато се размахва във въздуха, вторият избледнява плавно между два бели светодиода (Той също има предпазен щифт, който да го прикрепи към дрехите или чантата), а третият е своеобразна светлина за настроение, превъртане безпроблемно между цветовете. Всички те са под $ 15 и са лесни за сглобяване за по -малко от час. Можете също така да дадете тези инструкции, както и части като подарък на някой, който се интересува от изучаване на електроника.

Забележка: Предполага се основно ниво на запояване. Въпреки това, за разлика от предишните ми инструкции, ще разгледам как да програмирам AVR. Наистина се надявам, че това ще помогне на хората, които се опитват да започнат работа в електрониката. Спомням си, когато бях там и с удоволствие ще отговоря на всички ваши въпроси. Не забравяйте, че няма глупави въпроси! Оставих ви отворено, за да определите как ще подредите вашата платка с надеждата, че ще измислите нов начин за показване на простите схеми, които съм начертал. Моля, публикувайте снимки, след като приключите, нямам търпение да видя какво ще измислите! Части за всички проекти N = брой проекти x N ATTiny45 (www.digikey.com) x N 8-пинов DIP гнездо (RadioShack) x 1 Голяма Perf Board (получих моята в RadioShack) x N 3v Монетна клетъчна батерия и държач (RadioShack) x1 програмист (използвам това и предоставеният makefile ще бъде конфигуриран да използва този) x2 N резистори, един 10 ома и един 10k ohm (RadioShack) Ето снимка на трите завършени проекта:

Стъпка 1: Името мига

Името Flasher
Името Flasher
Името Flasher
Името Flasher
Името Flasher
Името Flasher

Други части x5 ДИФУЗИРАНИ 3 мм светодиоди (RadioShack) Този проект използва постоянство на зрението за показване на изображение или текст при бързо преместване. Работи по -добре, когато е тъмно. С AVR превключваме между светодиодите по -бързо, отколкото окото вижда, че можем да създадем картина във въздуха с много малко компоненти. Кодът: (Изтеглете.zip файла в долната част на страницата за кода, makefile и т.н. (Този код няма обширни коментари, които прави този код, но ако този код не работи, опитайте този в zip файл)) #дефинирайте F_CPU 1000000 #include #include void dispClear () {PORTB = ~ 0b00000000; } int main () {DDRB = 0xFF; // За тези от вас, които никога не са чели C, преди двойната наклонена черта да посочи коментар. Това задава щифтовете на avr като изходна char x = 10; // x се използва за задаване на дължината на забавяне. Увеличаването на стойността дава по -бавно превключване между пиксели, намаляващо, по -ниско while (1) // Докато (условието е вярно); {Направи това} (True в C е 1) {PORTB = ~ 0b00010001; // Името на приятеля ми е Зоуи, затова извадих героите на милиметрова хартия и след това ги вписах в PORTB. Първите три нули нямат значение, защото има свързани само пет светодиода. Едно в едно от останалите пет интервала показва, че светодиодът е включен, нула, изключен. _ закъснение_ms (x); // забавяне в милисекунди PORTB = ~ 0b00010011; _ закъснение_ms (x); PORTB = ~ 0b00010101; _ закъснение_ms (x); PORTB = ~ 0b00011001; _ закъснение_ms (x); PORTB = ~ 0b00010001; _ закъснение_ms (x); dispClear (); // Отворено пространство между знаци _delay_ms (x); PORTB = ~ 0b00001110; _ закъснение_ms (x); PORTB = ~ 0b00010001; _ закъснение_ms (x*3); PORTB = ~ 0b00001110; _ закъснение_ms (x); dispClear (); _ закъснение_ms (x); PORTB = ~ 0b00011111; _ закъснение_ms (x); PORTB = ~ 0b00010101; _ закъснение_ms (x); PORTB = ~ 0b00010001; _ закъснение_ms (x); dispClear (); _ закъснение_ms (x*5); // Думата е направена така, че за яснота имам по -голямо пространство между думите}} Сега следвайте инструкциите на страница 4, за да компилирате този код и да го изпратите на вашия AVR.

Стъпка 2: Светлината на портмонето

Светлината на портмонето
Светлината на портмонето
Светлината на портмонето
Светлината на портмонето

Други части x2 LED не са разпръснати (RadioShack) Този проект избледнява плавно между два светодиода. Майка ми искаше нещо да отиде на чантата й, за да помогне на пчелата да се вижда през нощта. Имах чувството, че мигащата светлина на велосипеда ще привлече твърде много внимание, затова направих това. Той използва PWM (Pulse Width Modulation), за да даде ефект на затъмняване и изсветляване. Това, което всъщност се случва, е, че светодиодът мига по -бързо, отколкото окото може да види на различни интервали, за да симулира промяна. Можете да видите това по -ясно, когато го махнете с лице, както бихте направили с Името за мигане. Кодът може да бъде изтеглен в края на тази страница. Вижте страница 4 за това как да компилирате към вашия AVR. Вместо да коментирам кода тук, ще обясня накратко концепцията. ШИМ се генерира от таймер. Всеки цикъл на часовника таймерът брои по един. Когато достигне определена стойност (в този случай OCR1B), тя променя състоянието на щифт (В този случай OC1B). За да накарам светодиодите да се "изключат", свързах другия към [ПРОТИВО] OC1B (Това означава лентата отгоре). След това използваме x, за да увеличим и намалим времето за включване на светодиодите.

Стъпка 3: Цветовият скролер

Цветният скролер
Цветният скролер
Цветният скролер
Цветният скролер

Други Partsx1 RGB LED (дифузен е по -добър) (RadioShack) Това за мен е класика. Винаги съм бил очарован от такива светлини и ги намирам за много успокояващи, така че естествено исках да направя такава. Също така тяхната видимост в обществото им дава истински WOW фактор. "НАПРАВИХТЕ ЛИ ?!" Кодът е почти същият и според мен е по -лесен за четене. Можете да изтеглите най -долу. Този път предоставяме PWM -щифт за всеки заземяващ щифт на RGB LED. По този начин ние заземяваме чипа. Волтата може да бъде измерена като разлика между две точки. 3v-0v = 3v 5v-2v = 3v *** 3v-3v = 0v *** Този последен екземпляр е това, което правим, когато заземяваме чипа. Когато има три волта от двете страни, например, няма достатъчно волта за задвижване на светодиод. За да избледним между цветовете, избрахме цвят и друг цвят. Задайте една равна на x, а другата равна на 255-x или обратната на x. Както правехме в предишния проект. Сега преминете към стъпка 4, за да програмирате.

Стъпка 4: Програмиране

Програмиране
Програмиране

Първо изтеглете и инсталирайте Emacs, avr-gcc и Avrdude и всички зависимости, които те могат да имат. На Arch linux направих това с: sudo pacman -Sy emacs avrdude

Сега е време да свържете вашия програмист към вашия avr. Свържете щифтовете на 6-пиновия ISP програмист (снимката по-долу) към короспондиращите щифтове на вашия AVR (Лист с данни, страница 2) (Направих това на макет). Сега включете програмиста към вашия компютър и МНОГО БЪРЗО докоснете горната част на AVR. Ако е горещо, ИЗТЕГЛЕТЕ ПРОГРАММЕРА ОТ ВАШИЯ КОМПЮТЪР ВЕДНАГА проверете връзките си и опитайте отново (Power и Gnd назад?). Ако не е горещо, отворете emacs и натиснете Ctl-x Ctl-f, за да намерите.c файла. Отворете го и след това натиснете Meta (Usualy Alt) -x и въведете компилиране. Натиснете enter два пъти и ако имате късмет, сега вашият AVR трябва да изпълнява вашия код! Благодаря за четенето! Надявам се да ви е харесало и да сте научили нещо. Моля, не се колебайте да задавате въпроси и не забравяйте да публикувате снимки на това, което сте измислили. Весели празници и не забравяйте да гласувате!

Препоръчано: