Мазмуну:

3 Easy ATTiny майрамдык белектери: 4 кадам
3 Easy ATTiny майрамдык белектери: 4 кадам

Video: 3 Easy ATTiny майрамдык белектери: 4 кадам

Video: 3 Easy ATTiny майрамдык белектери: 4 кадам
Video: Electronic Basics #3: Programming an Attiny+Homemade Arduino Shield 2024, Ноябрь
Anonim
3 Easy ATTiny майрамдык белектери
3 Easy ATTiny майрамдык белектери

Жыл сайын каникул мезгили айланып, досторума жана үй -бүлөмө эмне берүүнү билбей калам. Элдер дайыма белекти дүкөндөн сатып алгандан көрө, өзүң жасаган жакшы деп айтышат, ошондуктан быйыл мен так ошондой кылдым. Биринчиси абада толкундаганда ысымды же негизги сүрөттү көрсөтөт, экинчиси эки ак жолчунун ортосунда жылмакай өчөт (Ошондой эле аны кийимге же капчыкка тагуу үчүн коопсуздук пини бар), үчүнчүсү маанайдын жарыгы, жылдыруу түстөр ортосунда үзгүлтүксүз. Баары 15 доллардан төмөн жана бир саатка жетпей монтаждалат. Сиз ошондой эле бул көрсөтмөлөрдү жана бөлүктөрдү электрониканы үйрөнүүгө кызыккан адамга белек катары бере аласыз.

Эскертүү: ширетүүнүн негизги деңгээли кабыл алынат. Бирок, мурунку көрсөтмөлөрүмдөн айырмаланып, мен AVRди кантип программалоону түшүндүрөм. Мен чындап эле бул электрониканы баштоого аракет кылып жаткан адамдарга жардам берет деп үмүттөнөм. Мен ал жерде болгонумду эстейм жана сизди кызыктырган суроолорду берүүгө кубанычта болом. Эч кандай акылсыз суроолор жок экенин унутпаңыз! Мен сиз тарткан жөнөкөй схемаларды көрсөтүүнүн жаңы жолун ойлоп табасыз деп, электр тактаңызды кантип жайып салууну аныктоону сизге ачык калтырдым. Сураныч, бүткөндөн кийин сүрөттөрдү коюңуз, мен ойлоп жатканымды күтө албайм! Долбоорлордун бардык бөлүктөрү N = долбоорлордун саны x N ATTiny45 (www.digikey.com) x N 8-пин DIP розеткасы (RadioShack) x 1 Large Perf Board (Мен RadioShack -те меники бар) x N 3v Монета Клеткасынын Батареясы жана кармагычы (RadioShack) x1 Программист (мен муну колдоном жана берилген makefile муну колдонуу үчүн конфигурацияланат) x2 N Резисторлор, бир 10 ом жана бир 10k ohm (RadioShack) Бул жерде үч бүткөн долбоордун сүрөтү келтирилген:

1 -кадам: Аты -жөнү

Name Flasher
Name Flasher
Name Flasher
Name Flasher
Name Flasher
Name Flasher

Башка бөлүктөр x5 DIFFUSED 3мм диоддору (RadioShack) Бул долбоор тез жылганда сүрөттү же текстти көрсөтүү үчүн көрүүнүн туруктуулугун колдонот. Караңгы болгондо жакшы иштейт. AVR менен биз LED диоддорун тезирээк алмаштырып жатабыз, анда биз көрө алабыз, биз абада өтө аз компоненттери бар сүрөттү түзө алабыз. Код: (код, makefile ж.б. үчүн беттин ылдый жагындагы.zip файлын жүктөп алыңыз. Бул коддо бул коддо кеңири комментарийлер жок, бирок эгер бул код иштебесе, анда zip file)) #define F_CPU 1000000 #include #include void dispClear () {PORTB = ~ 0b00000000; } int main () {DDRB = 0xFF; // Сиди эч качан окубагандар үчүн, кош сызык комментарийди көрсөтөт. Бул аврдын казыктарын x = 10 чыгаруу чарасы катары белгилейт; // x кечигүүнү орнотуу үчүн колдонулат. Маанини жогорулатуу пикселдердин ортосунда жайыраак өтүүнү, азаюуну, бир аз болсо дагы (1) // While (шарты туура); {Муну кыл} (Cде 1 туура) {PORTB = ~ 0b00010001; // Менин досумдун аты Зое, ошондуктан мен каармандарды графикалык кагазга түшүрүп, анан PORTBге киргиздим. Биринчи үч нөлдүн мааниси жок, анткени беш гана лед туташкан. Калган беш мейкиндиктин биринде LED күйүк, нөл, өчүк экенин көрсөтөт. _ кечиктирүү (x); // милисекунддарда кечигүү PORTB = ~ 0b00010011; _ кечиктирүү (x); PORTB = ~ 0b00010101; _ кечиктирүү (x); PORTB = ~ 0b00011001; _ кечиктирүү (x); PORTB = ~ 0b00010001; _ кечиктирүү (x); dispClear (); // _delay_ms (x) белгилеринин ортосундагы боштук; PORTB = ~ 0b00001110; _ кечиктирүү (x); PORTB = ~ 0b00010001; _ кечиктирүү (x*3); PORTB = ~ 0b00001110; _ кечиктирүү (x); dispClear (); _ кечиктирүү (x); PORTB = ~ 0b00011111; _ кечиктирүү (x); PORTB = ~ 0b00010101; _ кечиктирүү (x); PORTB = ~ 0b00010001; _ кечиктирүү (x); dispClear (); _delay_ms (x*5); // Сөз ушунчалык көрөгөчтүк үчүн жасалды Менде сөздөрдүн арасында чоңураак жер бар}} Эми 4 -беттеги көрсөтмөлөрдү аткарып, бул кодду түзүп, AVRге жөнөтүңүз.

2 -кадам: Капчыктын жарыгы

Капчыктын жарыгы
Капчыктын жарыгы
Капчыктын жарыгы
Капчыктын жарыгы

Башка бөлүктөр x2 LEDдин ЭМЕС Диффузияланбаган (RadioShack) Бул долбоор эки LEDдин ортосунда бир калыпта өчөт. Апам капчыгына түн ичинде көрүүгө жардам берүү үчүн бир нерсе алгысы келген. Мен велосипеддин жарыгы өтө көп көңүл бура тургандыгын сездим, ошондуктан мен муну жасадым. Бул PWM (Pulse Width Modulation) колдонуп, күңүрт жана жарыктандыруучу эффект берет. Чындыгында болуп жаткан нерсе, өзгөрүүнү окшоштуруу үчүн, LED ар кандай аралыкта көзгө караганда тезирээк жарк этип жатат. Сиз муну Аты жаркылдатуудагыдай бетиңизге шилтегенде дагы даана көрө аласыз. Кодду бул баракчанын аягында жүктөп алсаңыз болот. AVRге кантип компиляциялоо керек 4 -бетти караңыз. Бул жерде кодду комментарийлөөнүн ордуна мен түшүнүктү кыскача түшүндүрүп берем. PWM таймер тарабынан түзүлөт. Ар бир сааттын цикли таймерди бирден санап турат. Белгилүү бир мааниге жеткенде (Бул учурда OCR1B) ал пиндин абалын өзгөртөт (Бул учурда OC1B). Светодиоддорду "өчүрүү" үчүн мен экинчисин [OPPOSITE] OC1B менен байланыштырдым (Жогорудагы тилке ушуну билдирет). Андан кийин биз LEDди күйгүзүү үчүн убакытты көбөйтүү жана азайтуу үчүн x колдонобуз.

3 -кадам: Color Scroller

Color Scroller
Color Scroller
Color Scroller
Color Scroller

Башка Partsx1 RGB LED (чачырандысы жакшы) (RadioShack) Бул мага классика. Мен ар дайым ушундай чырактарга берилип кеттим жана аларды абдан тынчтандыруучу деп табам, ошондуктан мен аны жасагым келди. Ошондой эле алардын коомдогу көрүнүшү аларга чыныгы WOW факторун берет. "Сен муну кылдыңбы ?!" Код дээрлик бирдей жана менин оюмча, окуу оңой. Төмөнкү жактагы жүктөп алсаңыз болот. Бул жолу биз RGB светодиодундагы ар бир жерге туташтыруу үчүн PWM'дин пинин камсыздайбыз. Ушундай жол менен биз чип аркылуу жерге түшөбүз. Вольтту эки чекиттин айырмасы катары ченесе болот. 3v-0v = 3v 5v-2v = 3v *** 3v-3v = 0v *** Бул акыркы мисал, биз чип аркылуу жерге түшкөндө эмне кылып жатабыз. Эки тарапта тең үч вольт болгондо, айталы, светодиодду иштетүү үчүн вольт жетишсиз. Ошентип, түстөрдүн арасында өчүү үчүн биз түс менен башка түстү тандап алдык. Бирин xке, экинчисин 255-xке же INVERSE xке барабар кылыңыз. Биз мурунку долбоордо болгон сыяктуу. Эми программалоо үчүн 4 -кадамга өтүңүз.

4 -кадам: Программалоо

Программалоо
Программалоо

Алгач Emacs, avr-gcc жана Avrdude жана алар ээ болгон бардык көз карандылыктарды жүктөп алып, орнотуңуз. Arch linuxта мен муну менен кылдым: sudo pacman -Sy emacs avrdude

Эми программистиңизди avrга туташтыра турган убак келди. 6-pin ISP программистиндеги казыктарды (төмөндөгү сүрөттө) AVR'иңиздеги коросподинциялоочу казыктарга туташтырыңыз (Маалыматтар баракчасы, 2-бет) (Мен муну нан тактасында жасадым). Эми программистти компьютериңизге туташтырыңыз жана AVRдин үстүнө абдан тез тийиңиз. Эгерде ал ысык болсо, ПРОГРАММЕРДИ КОМПЬЮТЕРИҢДЕН БИР БЕРИҢИЗ, туташууларыңызды текшерип, кайра аракет кылыңыз (Power жана Gnd артка?). Эгерде ал ысык болбосо, анда emacs ачыңыз жана.t файлын табуу үчүн Ctl-x Ctl-f басыңыз. Аны ачып, андан кийин Meta (Usualy Alt) -x басып, compile териңиз. Enterди эки жолу басыңыз, эгер сиз бактылуу болсоңуз, анда AVR азыр кодуңузду иштетиши керек! Окуганыңыз үчүн рахмат! Сизге жакты жана бир нерсе үйрөндүңүз деп үмүттөнөм. Сураныч, суроо берүүдөн тартынбаңыз жана ойлоп тапканыңыздын сүрөттөрүн жарыялоону унутпаңыз. Майрамыңыздар менен жана добуш берүүнү унутпаңыз!

Сунушталууда: