Բովանդակություն:

Tiny LED Matrix Display ockամացույց ՝ 8 քայլ
Tiny LED Matrix Display ockամացույց ՝ 8 քայլ

Video: Tiny LED Matrix Display ockամացույց ՝ 8 քայլ

Video: Tiny LED Matrix Display ockամացույց ՝ 8 քայլ
Video: Mini LED Matrix Audio Visualizer #Adafruit #3DPrinting 2024, Հուլիսի
Anonim
Image
Image
Փոքր LED մատրիցային ցուցադրման ժամացույց
Փոքր LED մատրիցային ցուցադրման ժամացույց
Փոքր LED մատրիցային ցուցադրման ժամացույց
Փոքր LED մատրիցային ցուցադրման ժամացույց
Փոքր LED մատրիցային ցուցադրման ժամացույց
Փոքր LED մատրիցային ցուցադրման ժամացույց

Ես միշտ ցանկացել եմ ունենալ հնաոճ աշխատասեղան, որը նման է 90-ականների ֆիլմերին, բավականին համեստ գործառույթներով ՝ իրական ժամանակի ժամացույց, ամսաթիվ, ֆոնի լուսարձակի փոփոխություն, ազդանշանային ազդանշան և զարթուցիչ: Այսպիսով, ես եկել եմ մեկ գաղափար ստեղծելու ՝ թվային սարք, որը հիմնված է միկրոկառավարիչի վրա ՝ վերը նշածս բոլոր հատկանիշներով և սնուցվում է USB- ով ՝ ԱՀ կամ բջջային USB լիցքավորիչ: Քանի որ ես ցանկանում էի այն ծրագրավորելի դարձնել ՝ ընտրացանկերով և պարամետրերի ճշգրտմամբ, MCU- ի տեղադրումն այս նախագծում անխուսափելի էր: ATMEGA328P IC- ն (որից կազմված է յուրաքանչյուր Arduino Uno տախտակ) ընտրվել է որպես շրջանի «ուղեղ» (որի մասին խոսելու համար ես պարզապես ունեի դրանցից շատերը): Համակցելով որոշ էլեկտրոնային մասեր ՝ որպես RGB LED, լիցքավորման ժամանակաչափի չիպ և կոճակներ, հնարավորություն ընձեռեց ամբողջ նախագծի ծնունդը.

Այսպիսով, նախագծի էությունը լուսաբանելուց հետո եկեք կառուցենք այն:

Քայլ 1: Գաղափարը

Գաղափարը
Գաղափարը

Ինչպես նշվեց նախկինում, մեր սարքը պարունակում է մի քանի գեղեցիկ LED մատրիցային էկրաններ, գույնը փոխող RGB LED լուսային լուսավորություն, հոսանքի լիցքավորման ժամանակաչափի չիպ, հարմար USB սնուցման սարք և փոքր չափի պատյան:

Եկեք նկարագրենք սարքի շահագործման բլոկային դիագրամը ըստ մասերի.

1. Էներգամատակարարման միավոր:

Քանի որ սարքը գործում է 5 վոլտ DC- ով, էլեկտրամատակարարման բաղադրիչը բաղկացած է երկու առանձին սխեմաներից.

  • Միկրո USB մուտք - Ուղղակի լիցքավորիչ / ԱՀ սնուցման համար:
  • 5V Գծային լարման կարգավորիչի միացում `հիմնված LM7805 IC- ի վրա:

LM7805 IC միացումն ընտրովի չէ, եթե չեք նախընտրում էներգիայի մատակարարման տարբեր մուտքերի առկայություն: Մեր սարքում օգտագործվում է Micro-USB PSU:

2. Միկրոկառավարիչ միավոր:

Միկրոկոնտրոլեր ATMEGA328P, գործում է որպես ամբողջ սարքի «ուղեղ»: Դրա նպատակն է հաղորդակցվել բոլոր ծայրամասային սխեմաների հետ, տրամադրել անհրաժեշտ տվյալներ և վերահսկել սարքի օգտագործողի միջերեսը: Քանի որ ընտրված միկրոկառավարիչը ATMEGA328P- ն է, մեզ պետք կգա Atmel Studio- ն և հիմնական C գիտելիքները (սխեմաներն ու ծրագրավորման հաջորդականությունները նկարագրված են հետագա քայլերում):

3. Իրական ժամանակի ժամացույցի միացում

Երկրորդ ամենակարևոր սխեման սարքում: Դրա նպատակն է տրամադրել ամսաթվի և ժամի տվյալներ ՝ դրանք պահելու պահանջով, առանց մուտքային հոսանքի միացումից կախվածության, այսինքն ՝ ժամանակի տվյալները թարմացվում են իրական ժամանակի ռեժիմում: Որպեսզի RTC բաղադրիչը կարողանա շարունակել փոփոխել ժամանակի / ամսաթվի տվյալները, միացմանը միացվում է 3V մետաղադրամ բջջային մարտկոց: IC- ն DS1302 է, դրա գործողությունը նկարագրված է հետագա քայլերում:

4. Մուտքային ինտերֆեյս - սեղմիչ կոճակների անջատիչներ

Մուտքային PB անջատիչները օգտվողին ապահովում են մուտքային միջերես: Այս անջատիչները մշակվում են MCU- ում և վերահսկիչ սարքի կողմից սահմանված ծրագրում:

5. LED մատրիցային էկրան

Սարքի ցուցադրումը բաղկացած է երկու IC- ով փաթաթված HCMS-2902 ալֆան թվային LED մատրիցներից, յուրաքանչյուր IC- ն ունի 5x7 փոքր LED մատրիցի 4 նիշ: Այս էկրանները պարզ են օգտագործման համար, 3-Wire հաղորդակցությունն ապահովված է և փոքր չափսերով `այն ամենը, ինչ մեզ անհրաժեշտ է այս նախագծում:

6. RGB լուսավորություն

Գույնը փոխող լուսավորությունը հիմնված է արտաքին RGB LED- ի վրա, որը վերահսկվում է MCU- ից եկող PWM ազդանշաններով: Այս նախագծում RGB LED- ն ունի ընդհանուր 4 կապում `R, G, B և սովորական, որտեղ R, G, B գույնի ներկապնակը վերահսկվում է PWM- ի միջոցով MCU- ի կողմից:

7. Buzzer:

Buzzer սխեման օգտագործվում է որպես ձայնային ելք, հիմնականում ահազանգման նպատակով: BJT անջատիչն օգտագործվում է ազդանշանային բաղադրիչին բավարար հոսանք ապահովելու համար, այնպես որ դրա ձայնը բավական բարձր կլինի կենդանի մարդուն արթնացնելու համար:

Քայլ 2: Մասեր և գործիքներ

Մասեր և գործիքներ
Մասեր և գործիքներ

I. Էլեկտրոնիկա:

Ա. Ինտեգրված և ակտիվ բաղադրիչներ

  • 1 x ATMEGA328P - MCU
  • 2 x HCMS2902 - AVAGO ցուցադրում
  • 1 x DS1302 - RTC
  • 1 x 2N2222A - BJT (NPN)

B. Պասիվ բաղադրիչներ

  • Ռեզիստորներ.

    • 5 x 10K
    • 1 x 180R
    • 2 x 100R
  • Կոնդենսատորներ:

    • 3 x 0.1uF
    • 1 x 0.47uF
    • 1 x 100uF
    • 2 x 22pF
  • 1 x 4-փին RGB LED
  • 1 x Buzzer
  • 1 x 32,768 ԿՀց բյուրեղ

C. Միակցիչներ:

  • 1 x Micro-USB միակցիչ
  • 2 x 6-պինական ստանդարտ սկիպիդար (100 մղոն) միակցիչ:
  • 2 x 4-պինական ստանդարտ սկիպիդար (100 մղոն) միակցիչ:
  • 1 x Մետաղադրամների մարտկոցի պատյան:

D. Տարբեր:

  • 3 x SPST Push-Button անջատիչներ
  • 1 x 3V մետաղադրամ բջջային մարտկոց:

E. Լրացուցիչ PSU:

  • 1 x LM7805 - գծային կարգավորիչ
  • 2 x 0.1uF կափարիչ
  • 2 x 100uF կափարիչ

II. Մեխանիկական:

  • 1 x Պլաստիկ պատյան
  • 4 x Ռետինե կցորդներ
  • 1 x զոդման տախտակի նախատիպ
  • 1 x MCU վերնագիր (միկրոկառավարիչի խափանման դեպքում)
  • 2 x 8 մմ փոքր պտուտակներ
  • 2 x 8 մմ լվացքի մեքենա

III. Գործիքներ և նյութեր

  • Oldոդման լարեր
  • Նեղացող խողովակներ
  • Oldոդման անագ
  • Oldոդման երկաթ
  • Դանակ
  • Աքցան
  • Պինցետ
  • Հորատման բիթեր
  • Փոքր չափի ֆայլ
  • Տարբեր պտուտակահաններ
  • Կալիպեր
  • Բազմաչափ
  • Հացաթուղթ (ըստ ցանկության)
  • Միկրո USB մալուխ
  • Միջին չափի ֆայլ
  • Տաք սոսինձ ատրճանակ
  • AVR ISP ծրագրավորող

IV. Programրագրավորում

  • Atmel Studio 6.3 կամ 7.0.
  • ProgISP կամ AVRDude
  • Microsoft Excel (ցուցադրման նիշերի ստեղծման համար)

Քայլ 3. Սխեմաների նկարագրություն

Սխեմաների նկարագրություն
Սխեմաների նկարագրություն

Շղթայի աշխատանքը հասկանալն ավելի դյուրին դարձնելու համար սխեմատիկ քայլը բաժանված է յոթ ենթախմբի: Պետք է նկատել, որ ցանցային անունները սահմանված են սխեմատիկ էջում, ինչպես նաև սահմանում են կապեր սարքի առանձին ենթաշղթաների միջև:

Ա. Հիմնական բաղադրիչների խորհուրդ

Ինչպես նշվեց նախկինում, բոլոր համապատասխան ենթաշրջանները, որոնք մենք ցանկանում ենք լինել «սարքի ներսում», տեղադրված են մեկ կտրված նախատիպի տախտակի վրա: Եկեք անցնենք հիմնական տախտակի տեղադրված սխեմաների շահագործման բացատրությանը.

1. Միկրոկառավարիչ միացում

Այս նախագծում օգտագործվող MCU- ն ATMEGA328P է: Այն սնուցվում է արտաքին 5 Վ էլեկտրամատակարարմամբ, այս դեպքում ՝ միկրո USB միակցիչով: Բոլոր համապատասխան I/O կապումներն միացված են ըստ նախագծման պահանջների: Նավահանգիստների մուտքի/ելքի քարտեզագրումը հեշտ է հասկանալ, քանի որ բոլոր զուտ անունները սահմանվում են ճիշտ այնպես, ինչպես այն օգտագործվելու է ծրագրավորման փուլում: MCU- ն ունի պարզ RC զրոյական միացում, որն օգտագործվում է կամ ծրագրավորման հաջորդականության և էներգիայի սկզբնավորման ժամանակ:

MCU- ի վճռական մասը ծրագրավորման սխեման է: Գոյություն ունի 6 -պին ծրագրավորման միակցիչ `J5, համոզվեք, որ VCC, GND և RESET ցանցերը ընդհանուր են արտաքին ISP ծրագրավորողի և հիմնական բաղադրիչների տախտակի համար:

2. Իրական ժամանակի ժամացույցի միացում

Հաջորդ շրջանը նախագծի հիմնական ծայրամասային մասն է: DS1302- ը լիցքավորման ժամանակացույց է, որը տրամադրում է մշակված ժամանակի և ամսաթվի արժեքներ մեր մշակման միավորին: DS1302- ը MCU- ի հետ հաղորդակցվում է եռալար ինտերֆեյսի միջոցով, որը նման է եռալար SPI հաղորդակցությանը, հետևյալ տողերով.

  • RTC_SCK (Արդյունք). Կատարում է SDO գծով փոխանցվող տվյալների վարում և նմուշառում:
  • RTC_SDO (I/O). Տվյալների վարման գիծ: Գործում է որպես մուտքագրում MCU- ին, երբ տվյալները/ժամերն են ստացվում և որպես ելք, երբ տվյալները փոխանցվում են (լրացուցիչ բացատրության համար տե՛ս Programming Essentials քայլը):
  • RTC_CE: (Ելք). Տվյալների փոխանցման միացման գիծ: Երբ MCU- ի կողմից սահմանվում է HIGH, տվյալները պատրաստ են փոխանցման/ստացման:

DS1302- ը պահանջում է արտաքին 32.768KHz բյուրեղային տատանում `համարժեք շղթայի վարքագծի համար: Շղթաների հաշվման համակարգի վրա մեծ շեղումից խուսափելու համար (այս տիպի ինտեգրալ սխեմաներում դրեյֆի երևույթներն ուղղակի անխուսափելի են), յուրաքանչյուր բյուրեղապակու վրա պետք է տեղադրել երկու տրամաչափիչ կոնդենսատոր (տե՛ս սխեմաներում X1, C8 և C9 մասերը): Այս նախագծում ժամանակի պահպանման բազմաթիվ փորձերից հետո 22pF- ն օպտիմալ արժեքներ էին, այնպես որ, երբ դուք պատրաստվում եք միացնել միացումն ամբողջությամբ, համոզվեք, որ կա այդ կոնդենսատորները այլ արժեքներով փոխարինելու տարբերակ: Բայց 22pF փոքր չափի տախտակի համար բավականին լավ աշխատեց շատ փոքր դրեյֆի համար (ամսական 7 վայրկյան):

Այս շրջանի վերջին, բայց ոչ պակաս կարևոր բաղադրիչը `3 Վ մետաղադրամանոց մարտկոցը պետք է տեղադրվի տախտակի վրա` DS1302 IC- ին բավականաչափ էներգիա մատակարարելու համար, որպեսզի այն շարունակի ժամանակի հաշվման աշխատանքը:

4. 8 Նիշերի LED մատրիցա

Սարքի ցուցադրումը հիմնված է 2 x 4 նիշ LED Մատրիցային ցուցադրման IC- ների վրա, որոնք ծրագրավորված են 3-լարային ինտերֆեյսով, RTC- ի DS1302- ի նմանությամբ, մեկ տարբերությամբ, որ տվյալների տրամադրման տողը (SDI) սահմանվում է որպես MCU- ի ելք (եթե չեք ցանկանում ավելացնել ձեր ցուցադրման սխեմայի կարգավիճակի ստուգման ունակություն): Disուցադրությունները համակցված են 3-Wire շարքի ընդլայնման մեջ, ուստի երկու IC- ն գործում են որպես մեկ ցուցադրման սարք, որտեղ կա հնարավորություն ծրագրավորելու այն ցուցադրման բոլոր նիշերի սահմանման համար (տես SPI շարքի համադրություն): Շղթայի բոլոր զուտ անվանումները համընկնում են MCU- ի համապատասխան միացումների հետ - նշեք, որ կան ընդհանուր ցանցեր, որոնք հաղորդակցություն են հաստատում դիսփլեյների միջև, և անհրաժեշտություն չկա երկու էկրանին հաղորդակցման միջերեսները միացնել MCU- ին: Mingրագրավորումը և կերպարների կառուցման հաջորդականությունը սահմանվում են հետագա քայլերում: Օգտվողի միջերեսի միացում.

Օգտվողի միջերեսը բաժանված է երկու ենթախմբի `Մուտքային և ելքային համակարգեր. Մուտքային համակարգ. Սարքն ինքն է օգտվողին տրամադրել մուտքագրում, որը սահմանվում է որպես SPST կոճակի երեք անջատիչ, լրացուցիչ ձգվող դիմադրիչներով` սահմանված տրամաբանությունը բարձր կամ ցածր հասցնելու համար: MCU- ն: Այս անջատիչներն ապահովում են կառավարման համակարգ ամբողջ ծրագրավորված ալգորիթմի համար, քանի որ անհրաժեշտ է հարմարեցնել ժամի/ամսաթվի արժեքները, մենյուի կառավարումը և այլն:

6. Ելքային համակարգ

A. Buzzer- ի միացումն ապահովում է ձայնի ելք երկու նահանգներում, մենյուի փոխարկումը ճանաչում է ձայնի և ահազանգի ալգորիթմը: NPN տրանզիստորը օգտագործվում է որպես անջատիչ ՝ ազդանշանին ապահովելով բավականաչափ հոսանք ՝ այն հնչեցնելով համապատասխան ճկունությամբ: Buzzer- ը վերահսկվում է անմիջապես MCU- ի ծրագրակազմով: B RGB LED- ն օգտագործվում է որպես սարքի լուսային լուսավորություն: Այն վերահսկվում է անմիջապես MCU- ի կողմից, լուսավորության ընտրության չորս տարբերակով `ԿԱՐՄԻՐ, Կանաչ, ԿԱՊՈՀ, PWM կամ OFF ռեժիմներ: Նկատի ունեցեք, որ LED R, G և B կապանքներին հաջորդաբար միացված դիմադրողները ունեն տարբեր արժեքներ, քանի որ յուրաքանչյուր գույն ունի տարբեր ինտենսիվություն հաստատուն հոսանքի նկատմամբ: Կանաչ և կապույտ LEDS- ի համար կան նույն բնութագրերը, երբ կարմիրն ունի մի փոքր ավելի մեծ ինտենսիվություն: Այսպիսով, կարմիր LED- ն միացված է դիմադրության ավելի մեծ արժեքին `այս դեպքում` 180 Օմ (տես RGB LED բացատրություն): 7. Միակցիչներ:

Միակցիչները տեղադրված են հիմնական տախտակի վրա `արտաքին ինտերֆեյսի բաղադրիչների միջև հաղորդակցություն ապահովելու համար, ինչպիսիք են` Displayուցասարքը, RGB LED- ն, հոսանքի մուտքի և սեղմման կոճակները և հիմնական տախտակը: Յուրաքանչյուր միակցիչ նվիրված է տարբեր միացումներին, ուստի սարքի հավաքման բարդությունը կտրուկ ընկնում է: Ինչպես կարող եք տեսնել սխեմաներում, միակցիչների ցանցերի յուրաքանչյուր կարգը պարտադիր չէ և կարող է փոխանակվել, եթե դա էլեկտրամոնտաժման գործընթացը շատ ավելի պարզ է դարձնում: Բոլոր սխեմատիկ հասկացություններն ընդգրկելուց հետո անցնենք հաջորդ քայլին:

Քայլ 4: Sոդում

Oldոդման
Oldոդման
Oldոդման
Oldոդման
Oldոդման
Oldոդման

Հավանաբար, մեզանից ոմանց համար դա ամենածանր քայլն է ամբողջ նախագծում: Որպեսզի սարքը հնարավորինս արագ աշխատեցնելը շատ ավելի դյուրին դարձնելու համար զոդման գործընթացը պետք է ավարտվի հետևյալ հաջորդականությամբ.

1. MCU և ծրագրավորման միակցիչ. Խորհուրդ է տրվում ինքնին MCU- ի փոխարեն զոդել 28 փին վերնագիր, որպեսզի ձախողման դեպքում կարողանաք փոխարինել MCU IC- ն: Համոզվեք, որ սարքը կարող է ծրագրավորվել և միացվել: Itրագրավորման միակցիչի վրա խորհուրդ է տրվում տեղադրել նկարագրության քորոց (տես երրորդ նկարը):

2. RTC միացում. Բոլոր անհրաժեշտ մասերը զոդելուց հետո համոզվեք, որ չափիչ կոնդենսատորները հեշտությամբ փոխարինվում են: Եթե ցանկանում եք օգտագործել 3V մետաղադրամների մարտկոցի պատյան, համոզվեք, որ այն համապատասխանում է սարքի պարիսպի չափսերին:

3. Displayուցասարք. Առանձին փոքր չափի տախտակի վրա պետք է զոդել երկու ցուցադրման IC (նկ. 1): Բոլոր անհրաժեշտ ցանցերը միացնելուց հետո անհրաժեշտ է պատրաստել լարերից դուրս (նկ. 4). Այդ լարերը պետք է զոդել և անցկացնել ցուցադրման տախտակի կողքին, նշեք, որ լարերի վրա կիրառվող լարվածությունն ու մեխանիկական սթրեսը չեն ազդել ցուցադրման տախտակի վրա ամրացվող հոդերի վրա:

4. Նախորդ քայլի լարերի վրա պետք է տեղադրվեն պիտակների կպչուն պիտակներ, ինչը հետագա քայլում հավաքման գործընթացը շատ ավելի դյուրին կդարձնի: Լրացուցիչ քայլ. Յուրաքանչյուր մետաղալարին ավելացրեք արական միակողմանի միակցիչ (Arduino ոճ):

5. boardոդեք հիմնական տախտակի մնացած միակցիչները, ներառյալ ծայրամասային բաղադրիչները: Մեկ անգամ ևս խորհուրդ է տրվում տեղադրել կպչուն պիտակներ `յուրաքանչյուր միակցիչի համար քորոց նկարագրությամբ:

6. Ազդանշանային միացում. Ազդանշանը գտնվում է սարքի ներսում, ուստի այն պետք է զոդել հիմնական տախտակին, փոխկապակցվող միակցիչի կարիք չկա:

7. RGB LED. Հիմնական տախտակի տարածքը խնայելու համար ես միացրել եմ շարանի դիմադրիչները LED լուսադիոդների վրա, որտեղ յուրաքանչյուր ռեզիստոր համապատասխանում է իր համապատասխան գույնին և համապատասխան MCU կապին (նկ. 5):

Քայլ 5: Հավաքում

Հավաքում
Հավաքում
Հավաքում
Հավաքում
Հավաքում
Հավաքում

Այս քայլը սահմանում է նախագծի տեսքը `էլեկտրական և մեխանիկական: Եթե հաշվի առնվեն բոլոր առաջարկվող գրառումները, հավաքման գործընթացը շատ հեշտ է կատարվում: Հետևյալ քայլ առ քայլ հաջորդականությունը տալիս է ամբողջական տեղեկատվություն գործընթացի վերաբերյալ.

Մաս Ա

1. Հորատեք երեք անցք ՝ ըստ կոճակի կոճակի տրամագծի (այս դեպքում 3 մմ): 2. Drանկապատի կողքին փորեք մեկ ազդանշանի համար նախատեսված մեկ անցք: Կարելի է օգտագործել ցանկացած ցանկալի փորվածք տրամագիծ: Փոքր փոս պատրաստեք որպես հղկման հիմք ՝ ըստ USB միակցիչի, որը պետք է օգտագործեք (այս դեպքում միկրո USB): Դրանից հետո մանրեցրեք փոքր չափի ֆայլը ՝ միակցիչի չափսերին համապատասխանելու համար: 4. Համեմատաբար մեծ փոս հորատեք որպես հղկման հիմք: Կատարեք հղկում միջին չափի ֆայլով ՝ ըստ ցուցադրման չափսերի: Համոզվեք, որ ցուցադրման IC- ներ առկա են պարիսպի արտաքին կողմում: Սարքի ներքևի հատվածում փորեք միջին չափի անցք ՝ ըստ RGB LED տրամագծի: Մաս Բ - հավելվածներ.

1. pushոդեք երկու լար երեք կոճակներից յուրաքանչյուրին (GND և ազդանշան): Լարերի վրա առաջարկվում են պիտակների կպչուն պիտակներ և միակցիչ միակցիչներ: RGB LED կապում ամրացրեք չորս պատրաստված լար: Labelոդման հոդերի վրա տեղադրեք պիտակի կպչուն պիտակներ և փոքրացող խողովակներ: Սարքի ներքևում ամրացրեք չորս ռետինե ոտք: Մաս C - Մասերի միացում.

1. Տեղադրեք RGB LED- ը պարիսպի ներքևում, միացրեք այն հիմնական տախտակի հատուկ միակցիչին: Կցեք այն տաք սոսինձով: 2. Տեղադրեք երեք կոճակ անջատիչ, միացրեք դրանք հիմնական տախտակին նվիրված միակցիչին, ամրացրեք դրանք տաք սոսինձով: Տեղադրեք USB միակցիչ, միացրեք այն ծրագրավորման միակցիչի սնուցման աղբյուրներին (VCC և GND): Համոզվեք, որ էլեկտրահաղորդման գծերի բևեռականությունը համընկնում է եռակցված մասերի հետ: Կցեք այն տաք սոսինձով: 4. Տեղադրեք ցուցադրման տախտակը, միացրեք այն նվիրված միակցիչին: Կցեք այն տաք սոսինձով: Նշումներ.

1. Խորհուրդ է տրվում պտուտակ-ընկույզի զույգեր ավելացնել հիմնական տախտակի պարիսպին և վերին ծածկին (ինչպես ցույց է տրված այս դեպքում): 2. Կոտրված լարերի խափանումից խուսափելու համար դրանք հաշվի են առնում պարիսպի ներսում:

Քայլ 6: Համառոտ ծրագրավորման ներածություն

Հակիրճ ծրագրավորման ներածություն
Հակիրճ ծրագրավորման ներածություն
Հակիրճ ծրագրավորման ներածություն
Հակիրճ ծրագրավորման ներածություն
Հակիրճ ծրագրավորման ներածություն
Հակիրճ ծրագրավորման ներածություն

Բոլոր մասերը միացնելուց հետո խորհուրդ է տրվում սարքի նախնական փորձարկում կատարել նախքան հավաքման վերջին փուլին անցնելը: MCU ծածկագիրը գրված է C- ով, իսկ ATMEGA328P- ը ծրագրավորվում է ցանկացած ISP ծրագրավորողի միջոցով (Atmel ծրագրավորման սարքերի տարբեր տեսակներ կան. AVR MKII, AVR DRAGON և այլն. Programրագրավորման միջավայրը պետք է լինի Atmel Studio 4 և ավելի բարձր (խստորեն խորհուրդ եմ տալիս ծրագրային ապահովման նորագույն տարբերակները): Եթե օգտագործվում է արտաքին, ոչ Atmel Studio- ին բնորոշ ծրագրավորող, անհրաժեշտ է.hex ֆայլի ուղի տալ ծրագրավորման ծրագրին (սովորաբար գտնվում է ծրագրի Debug կամ Release թղթապանակում): Համոզվեք, որ նախքան հավաքման փուլին անցնելը, սարքը կարող է ծրագրավորվել, և ցանկացած հիմնական AVR նվիրված նախագծի կառուցման և կազմման գործընթացը հիմնված է ATMEGA328P միկրոկառավարիչի վրա (տես Atmel Studio ձեռնարկը):

Քայլ 7: Կոդի նկարագրություն

Կոդի նկարագրությունը
Կոդի նկարագրությունը
Կոդի նկարագրությունը
Կոդի նկարագրությունը

Decice կոդի ալգորիթմը շերտավորվում է երկու կիսափակ շերտերի ՝ 1. Հիմնական շերտ. Շփում ծայրամասային սխեմաների հետ, սարքի գործառնությունների սահմանում, նախաստորագրում և բաղադրիչի հայտարարագրեր: Ինտերֆեյսի շերտ. Օգտվող-սարք փոխազդեցություն, ընտրացանկի ֆունկցիոնալություն, ժամացույց/ազդանշան/գույնի/ահազանգի ճշգրտում: sequenceրագրի հաջորդականությունը նկարագրված է Նկարում: 1, որտեղ յուրաքանչյուր բլոկ համապատասխանում է MCU- ի վիճակին: Նկարագրված ծրագիրը գործում է որպես հիմնական «օպերացիոն համակարգ», որն ապահովում է ինտերֆեյս ապարատային և արտաքին աշխարհի միջև: Հետևյալ բացատրությունը նկարագրում է ծրագրի էական աշխատանքը ըստ մասերի. Մաս Ա. Հիմնական շերտ.

1. MCU I/O Initialization: Առաջին հերթին, անհրաժեշտ է սկզբնավորել ապարատային բաղադրիչները.

2. Հիմնական ընդհանուր գործառույթներ. Որոշ գործառույթներ օգտագործվում են առանձին կոդերի բլոկների միջոցով, սահմանում են ծրագրակազմի կողմից վերահսկվող կապում գործողությունները.- Միացնել/անջատել RTC- ի և ցուցադրման տախտակի հաղորդակցությունը: up/Clock down գործառույթները:- characterուցադրել կերպարի ստեղծման գործառույթներ: Ipայրամասային սկզբնավորում. I/O նավահանգիստների կազմաձևումից հետո տեղի է ունենում հաղորդակցություն սխեմաների գործառույթների միջև սահմանում: Ավարտելուց հետո - MCU- ն սկսում է RTC- ի և ցուցադրման սխեմաների սկզբնավորումը `օգտագործելով վերը սահմանված գործառույթները:

4. Հիմնական գործառույթների սահմանում. Այս փուլում սարքը պատրաստ է և պատրաստ է հաղորդակցություն իրականացնել որոշ ծայրամասային սխեմաների հետ: Այս գործառույթները սահմանում են.

5. Displayուցադրման գործառույթներ. Ես ինտերնետում շատ բան չեմ գտել իմ օգտագործած HSMS IC- ների մասին, ուստի դրա գրադարանը գրել եմ ինքս: Displayուցադրման գործառույթները ապահովում են բնույթի ցուցադրման ամբողջական գործառույթ, ներառյալ ASCII նիշերի և ցանկացած ամբողջ թվերի ցուցադրումը: Գործառույթները գրված են ընդհանրացված ձևով, այնպես որ, եթե անհրաժեշտ է կոդի ցանկացած հատվածից կանչել ցուցադրման գործառույթներ, դրանք հեշտ է օգտագործել, քանի որ դրանք ընդհանրացված են գործողությամբ (օրինակ ՝ լարային ցուցադրում, մեկ նիշ ցուցադրում և այլն):

6. RTC- ի շահագործման գործառույթները. RTC- ի բոլոր գործառույթները գրված են ընդհանրացված ձևով (նման է ցուցադրված գործառույթներին) `համաձայն DS1302 IC- ի գործողության: Կոդը հիմնված է գրավոր գրադարանի վրա, որը հասանելի է gitHub- ի բազմաթիվ տատանումներով: Ինչպես կտեսնեք վերջնական ծածկագրում, ցուցադրման և RTC գործառույթների հավաքածուն ներառված է առանձին.c և.h ֆայլերում: Մաս B - ինտերֆեյսի շերտ.

1. Հիմնական գործառույթ. Void main () բաժնում կա սկզբնավորման բոլոր հիմնական գործառույթների հայտարարագիր: Բոլոր բաղադրիչների սկզբնավորումից անմիջապես հետո MCU- ն մտնում է անսահման օղակ, որտեղ սարքի ֆունկցիոնալությունը վերահսկվում է օգտագործողի կողմից:

2. Իրական ժամանակի անջատիչներ, լուսային լուսավորություն և ցուցադրման հսկողություն. Անսահմանափակ հանգույցով աշխատելիս MCU- ն թարմացում է կատարում սարքի յուրաքանչյուր մասում: Այն ընտրում է, թե ինչ տվյալներ ցուցադրվեն, որ կոճակը սեղմված է և որ լուսավորման ռեժիմն է ընտրված:

3. Օգտվողի ընտրացանկի գործառույթները. Այս գործառույթներն ունեն ծառի տեսք (տես նկ. X), որտեղ ընտրացանկի համակարգը և հիերարխիան սահմանվում են որպես պետական մեքենա: Յուրաքանչյուր պետական մեքենա, որը վերահսկվում է օգտագործողի մուտքի միջոցով. Այն նախագծված է այնպես, որ ընտրացանկում կատարված սարքի ցանկացած փոփոխություն անմիջապես փոխվի:

4Օգտվողի ընտրացանկի փոխում. Երբ մուտքագրվում է օգտվողը, ընտրացանկի վիճակը պետք է փոխի իր վիճակը: Այսպիսով, այս գործառույթները ապահովում են օգտվողից կախված վերահսկողություն պետական մեքենայի նկատմամբ: Այս կոնկրետ դեպքում ՝ հաջորդ, նախորդ և OK:

Քայլ 8: Վերջնական ծածկագիր և օգտակար ֆայլեր

Եվ վերջ! Այս քայլում կարող եք գտնել ձեզ անհրաժեշտ բոլոր ֆայլերը.. Եթե ցանկանում եք ինքնուրույն կերպարներ կառուցել, Print_Character ('') գործառույթում ավելացրեք մեծատառերի վիճակ ASCII հղումով (տե՛ս display.c գործառույթները): Հուսով եմ, որ այս Instructable- ը օգտակար կգտնեք:) Շնորհակալություն կարդալու համար:

Խորհուրդ ենք տալիս: