Բովանդակություն:
- Գոլեր
- Փորձ և հմտություններ
- Հրաժարում և վարկ
- Քայլ 1: Մասեր
- Մասերի ցուցակ
- Ընդհանուր մասեր
- Հատուկ մասեր, որոնք օգտագործվում են այստեղ
- Մասերի վերաբերյալ նշումներ
- Քայլ 2: Մատրիցա
- Շինարարության նկատառումներ
- Մատրիցայի կառուցում
- Կարևոր
- Քայլ 3: Վերահսկիչ սարքավորում
- Կառավարման սարքավորումների ստեղծում
- Քայլ 4: Softwareրագրակազմ
- Հնարքը
- Shift գրանցամատյաններ. Ինչպես դա անել
- Դիմելով էկրանին
- Ծրագրավորում
- Գործողության մեջ
- Քայլ 5: Մոդուլային հասկացություններ
- Մաթեմատիկա
- Կասկադային հերթափոխի գրանցամատյաններ
- Բազմակի տողերի վարորդներ
- Օրինակ
- Քայլ 6: Եզրակացություն
- Հնարավոր լրացումներ
- Քայլ 7: Հետևեք
- Տախտակի առանձնահատկությունները
- Ժողով
Video: LED մատրիցա ՝ օգտագործելով Shift գրանցամատյանները. 7 քայլ (նկարներով)
2024 Հեղինակ: John Day | [email protected]. Վերջին փոփոխված: 2024-01-30 09:52
Այս ուսուցանվողը պետք է լինի ավելի ամբողջական բացատրություն, քան մյուսները, որոնք հասանելի են առցանց: Հատկանշական է, որ սա ավելի շատ ապարատային բացատրություն կտա, քան առկա է LED555- ով հրահանգվող LED Marquee- ում:
Գոլեր
Այս ձեռնարկը ներկայացնում է հերթափոխի մատյանների և բարձր կողմնակի վարորդների հետ կապված հասկացությունները: Այս հասկացությունները լուսաբանելով 8x8 LED մատրիցով, ես հույս ունեմ ձեզ տրամադրել այն գործիքները, որոնք անհրաժեշտ են ձեր նախագծի չափերին և դասավորությանը հարմարվելու և ընդլայնվելու համար:
Փորձ և հմտություններ
Ես կգնահատեի այս նախագիծը միջին դժվարության.
- Եթե դուք արդեն ունեք միկրոկառավարիչների ծրագրավորման և LED- ների հետ աշխատելու փորձ, ապա այս նախագիծը ձեզ համար պետք է լինի բավականին հեշտ ավարտելու և լուսավորելու ավելի մեծ զանգվածներ:
- Եթե դուք նոր եք սկսում միկրոկառավարիչներով և լուսավորել եք մեկ կամ երկու լուսադիոդ, ապա պետք է կարողանաք ավարտել այս նախագիծը մեր ընկերոջ ՝ Google- ի օգնությամբ:
- Եթե դուք ունեք միկրոկոնտրոլերների կամ ծրագրավորման փոքր փորձ կամ ընդհանրապես չունեք, դա, ամենայն հավանականությամբ, գերազանցում է այն, ինչին դուք պետք է զբաղվեիք: Փորձեք մի քանի այլ սկսնակ նախագծեր և վերադառնաք, երբ միկրոկոնտրոլերների համար ծրագրեր գրելու ավելի մեծ փորձ ունենաք:
Հրաժարում և վարկ
Նախ, ես էլեկտրատեխնիկ չեմ: Եթե տեսնում եք ինչ -որ բան, որը սխալ է կամ լավագույն փորձ չէ, խնդրում եմ ինձ տեղյակ պահեք, և ես ուղղում կկատարեմ: Դա արեք ձեր ռիսկով: Դուք պետք է իմանաք, թե ինչ եք անում, կամ կարող եք վնաս հասցնել ձեր համակարգչին, ձեր միկրոկառավարիչին և նույնիսկ ինքներդ ձեզ: Ես շատ բան եմ սովորել ինտերնետից, մասնավորապես ֆորումներից ՝ https://www.avrfreaks.net տառատեսակների հավաքածու, որն ուղեկցվել է ks0108 ունիվերսալ C գրադարանով: Ստուգեք այստեղ ՝
Քայլ 1: Մասեր
Մասերի ցուցակ
Ընդհանուր մասեր
LED- ների 8x8 ցանց պատրաստելու և դրանք կառավարելու համար ձեզ հարկավոր է.
- 64 LED ձեր ընտրությամբ
- 8 դիմադրություն LED- ների համար
- 1 Shift գրանցում սյուների համար
- 1 Վարորդների շարք շարքերի համար
- 8 դիմադրիչներ վարորդի զանգվածը փոխելու համար
- 1 միկրոկոնտրոլեր
- 1 ժամացույցի աղբյուր միկրոկառավարիչի համար
- 1 նախատիպային տախտակ
- 1 էլեկտրամատակարարում
- Կախիչ մետաղալար
Հատուկ մասեր, որոնք օգտագործվում են այստեղ
Այս հրահանգի համար ես օգտագործեցի հետևյալը.
- 64 կանաչ LED (մուսեր մաս #604-WP7113GD)
- 8 220 օմ 1/4 վտ հզորությամբ դիմադրիչներ LED- ների համար (Մուսեր մաս #660-CFS1/4CT52R221J)
- 1 HEF4794 LED վարորդ հերթափոխի գրանցամատյանով (Mouser մաս #771-HEF4794BPN)
- 1 mic2981 բարձրավոլտ բարձրավոլտ աղբյուրի վարորդի զանգված (Digikey մաս #576-1158-ND)
- 8 3.3kohm 1/4 վտ հզորությամբ դիմադրիչներ `վարորդի զանգվածը փոխելու համար (Radio Shack մաս #271-1328)
- 1 Atmel ATmega8 միկրոկառավարիչ (Mouser մաս #556-ATMEGA8-16PU)
- 1 12 ՄՀց բյուրեղ միկրոկառավարիչի ժամացույցի աղբյուրի համար (Մուսեր մաս #815-AB-12-B2)
- 1 2200 փոս նախատիպերի տախտակ (Radio Shack մաս #276-147)
- Փոխարկված ATX սնուցման աղբյուր. Տես այս հրահանգը
- Պինդ միջուկ 22-awg մալուխ (Radio Shack մաս #278-1221)
- Առանց զոդման տախտակ (Radio Shack մաս #276-169 (այլևս հասանելի չէ, փորձեք ՝ 276-002)
- AVR Dragon (Mouser մաս #556-ATAVRDRAGON)
- Dragon Rider 500- ը Ecros Technologies- ի կողմից. Տես այս հրահանգը
Մասերի վերաբերյալ նշումներ
Տողերի և սյուների վարորդներ. Այս նախագծի թերևս ամենադժվար մասը տողերի և սյունակների վարորդների ընտրությունն է: Նախ, ես չեմ կարծում, որ ստանդարտ 74HC595 հերթափոխի գրանցամատյանը այստեղ լավ գաղափար է, քանի որ դրանք չեն կարող կարգավորել այնպիսի հոսանք, որը մենք ցանկանում ենք ուղարկել LED- ների միջոցով: Ահա թե ինչու ես ընտրեցի HEF4794 վարորդը, քանի որ այն կարող է հեշտությամբ խորտակել ընթացիկ ներկան, երբ միացված են բոլոր 8 LED- ները: Հերթափոխի գրանցամատյանը ներկա է ցածր կողմում (լուսարձակների գրունտային քորոց): Մեզ պետք կգա տողային վարորդ, որը կարող է բավականաչափ հոսանք ապահովել ՝ մի քանի սյուներ միասին լարելու համար: Mic2981- ը կարող է ապահովել մինչև 500 մԱ հզորություն: Միակ մյուս մասը, որը ես գտել եմ, որը կատարում է այս խնդիրը, UDN2981- ն է (digikey մաս #620-1120-ND), որը նույն արտադրատեսակի նույն մասն է: Խնդրում եմ ինձ ուղարկել հաղորդագրություն, եթե գիտեք այլ բարձրակարգ վարորդների մասին, որոնք լավ կաշխատեն այս ծրագրում: LED մատրիցա. Այս մատրիցան 8x8 է, քանի որ տողերի և սյունակների վարորդներն ունեն յուրաքանչյուրը 8 կապում: Ավելի մեծ LED զանգված կարող է կառուցվել մի քանի մատրիցներ իրար լարելով և կքննարկվի «մոդուլային հասկացություններ» քայլում: Եթե ցանկանում եք մեծ զանգված, պատվիրեք բոլոր անհրաժեշտ մասերը միաժամանակ: Մեկ հարմար փաթեթում առկա են 8x8, 5x7 և 5x8 LED մատրիցներ: Դրանք պետք է հեշտությամբ փոխարինվեն DIY մատրիցով: Սրանց համար Ebay- ը լավ աղբյուր է: Մաուզերին հասանելի են մոտ 5x7 միավորներ, օրինակ ՝ մաս #604-TA12-11GWA: Ես օգտագործել եմ էժան կանաչ LED- ները, քանի որ ես պարզապես խաղում եմ և զվարճանում: Ավելի շատ ծախսելով բարձր պայծառության, բարձր արդյունավետության LED- ների վրա ՝ կարող եք թույլ տալ արտադրել շատ ավելի տպավորիչ տեսք ունեցող էկրան… սա ինձ համար բավական լավ է: Control Hardware. Մատրիցան վերահսկվում է Atmel AVR միկրոկոնտրոլերի կողմից: Դրա համար ձեզ հարկավոր է ծրագրավորող: Քանի որ ես նախատիպ եմ պատրաստում, ես օգտագործում եմ Dragon Rider 500 -ը, որի համար գրել եմ ինչպես հավաքման, այնպես էլ օգտագործման հրահանգներ: Սա հեշտ գործիք է նախատիպերի պատրաստման համար, և ես բարձր եմ խորհուրդ տալիս այն:
Քայլ 2: Մատրիցա
Այս նախագծի համար ես կկառուցեմ իմ սեփական LED մատրիցան `օգտագործելով 5 մմ լուսարձակներ և Radio Shack- ի նախատիպավորման տախտակ: Պետք է նշել, որ դուք կարող եք ձեռք բերել 8x8 կետային մատրիցով առաջնորդվող մոդուլներ մի քանի աղբյուրներից, այդ թվում ՝ ebay- ից: Նրանք պետք է լավ աշխատեն այս հրահանգով:
Շինարարության նկատառումներ
LEDS- ը պետք է հավասարեցվի, որպեսզի նրանք նույն ուղղությամբ նայեն նույն անկյան տակ: Ես գտա, որ ինձ համար ամենահեշտ տարբերակն այն էր, որ LED լուսավորության մարմինը դնեի տախտակին և այն պահեի այնտեղ ՝ պլեքսիգլասի մի փոքրիկ կտորով և սեղմակով: Ես մի քանի լուսադիոդ տեղադրեցի տեղում, որի վրա աշխատում էի, որպեսզի համոզվեի, որ պլեքսիգլասը զուգահեռ է նախատիպերի տախտակին: Շարքեր և սյուներ Մենք պետք է ունենանք ընդհանուր կապ յուրաքանչյուր տողի, ինչպես նաև յուրաքանչյուր սյունակի համար: Մեր տողի և սյունակի վարորդի ընտրության պատճառով մենք պետք է ունենանք անոդ (LED- ի դրական կապ) շարքով և կաթոդ (LED- ի բացասական կապ) սյունակով: Կառավարման հաղորդալարեր Այս նախատիպի համար ես օգտագործում եմ պինդ միջուկ (մեկ դիրիժոր) ամրացնող մետաղալար: Սա շատ հեշտ կլինի ինտերֆեյսել առանց զոդման տախտակի: Ազատորեն օգտագործեք միակցիչի այլ տեսակ ՝ ձեր նախագծին համապատասխան:
Մատրիցայի կառուցում
1. Տեղադրեք LEDS- ի առաջին սյունակը նախատիպերի տախտակում: Կրկնակի ստուգեք, որ յուրաքանչյուր LED- ի համար ձեր բևեռականությունը ճիշտ է, դա շատ դժվար կլինի ուղղել, եթե դա ավելի ուշ գիտակցեք: LED- ի երկու տողերն էլ կպցրեք տախտակին: Ստուգեք, որ դրանք ճիշտ են դասավորված (ոչ տարօրինակ անկյուններում) և կտրեք կաթոդի լարերը: Համոզվեք, որ չեք սեղմում անոդի կապարը, դա մեզ պետք կգա ավելի ուշ, այնպես որ պարզապես թողեք այն դեպի վեր: Հեռացրեք մեկուսացումը պինդ միջուկի մետաղալարից: Լարի այս կտորը կպցրեք յուրաքանչյուր կաթոդին հենց տախտակի մակարդակով:
- Ես դա արեցի յուրաքանչյուր ծայրում, այնուհետև վերադարձա և յուրաքանչյուր հանգույցում ավելացրեցի մի փոքր զոդ:
- Այս մետաղալարը պետք է անցնի ձեր վերջին LED- ի կողքով ՝ հեշտ ինտերֆեյս ստեղծելու համար, երբ մենք ավելացնում ենք կառավարման լարերը:
5. Կրկնեք 1-4-րդ մասերը, մինչև բոլոր LED- ները տեղադրվեն տեղում և բոլոր սյունակների ավտոբուսները միացվեն: Տողային ավտոբուս ստեղծելու համար անոդի մի քանի լար թեքեք 90 աստիճանի անկյան տակ, որպեսզի նրանք դիպչեն նույն շարքի մյուս անոդների լարերին:
- Ստորև ներկայացված են դրա մանրամասն նկարները:
- Takeգույշ եղեք, որ դրանք սյունակի ավտոբուսների հետ շփման մեջ չգտնվեն ՝ կարճ միացում ստեղծելով:
7. eachոդեք լարերը յուրաքանչյուր հանգույցում և կտրեք ավելորդ անոդի լարերը:
Թողեք վերջին անոդը, որը կպչում է վերջին LED- ի կողքով: Սա կօգտագործվի շարքի վարորդի կառավարման լարերը միացնելու համար:
8. Կրկնեք 6 -րդ և 7 -րդ մասերը, մինչև բոլոր տողերի ավտոբուսները միացված լինեն: 9. Կցեք կառավարման լարերը:
- Տողերի համար ես օգտագործել եմ կարմիր պինդ միջուկային մետաղալար, իսկ սյուների համար `սև:
- Յուրաքանչյուր սյունակի համար միացրեք մեկ լար և յուրաքանչյուր շարքի համար: Դա հեշտությամբ կարելի է անել յուրաքանչյուր ավտոբուսի վերջում:
Կարևոր
Այս LED մատրիցան չունի ընթացիկ սահմանափակող ռեզիստորներ: Եթե դա փորձարկեք առանց դիմադրիչների, հավանաբար կայրեք ձեր LED- ները, և այս ամբողջ աշխատանքը իզուր կլինի:
Քայլ 3: Վերահսկիչ սարքավորում
Մենք պետք է վերահսկենք մեր LED մատրիցի սյուները և շարքերը: Մատրիցան կառուցված է այնպես, որ անոդները (LED- ի լարման կողմը) կազմում են շարքերը, իսկ կաթոդները (LED- ի հիմքի կողմը) `սյուները: Սա նշանակում է, որ մեր շարքի վարորդը պետք է հոսանքի աղբյուր լինի, իսկ մեր սյունակի վարորդը `այն: Այն խնայելու համար ես օգտագործում եմ հերթափոխի գրանցամատյան` սյուները վերահսկելու համար: Այս կերպ ես կարող եմ վերահսկել գրեթե անսահմանափակ թվով սյուներ `ընդամենը չորս միկրոկոնտրոլերի քորոցներով: Հնարավոր է օգտագործել միայն երեքը, եթե Enable Output կապը ուղղակիորեն կապված է լարման հետ: Ես ընտրել եմ HEF4794 LED վարորդը հերթափոխի մատյանով: Սա ավելի լավ տարբերակ է, քան ստանդարտ 74HC595- ը, քանի որ այն կարող է հեշտությամբ խորտակել ընթացիկ ներկան, երբ բոլոր 8 LED- ները միաժամանակ միացված են: Բարձր կողմում (տողերի ընթացիկ աղբյուրը) ես օգտագործում եմ mic2981: Սխեման ցույց է տալիս UDN2981, կարծում եմ, որ այս երկուսը փոխարինելի են: Այս վարորդը կարող է ապահովել մինչև 500 մԱ հոսանք: Քանի որ մենք միայն 1 տող ենք վարում միաժամանակ, դա մեծ հնարավորություններ է տալիս ընդլայնման համար, մինչև 33 սյունակ այս չիպի համար (ավելին `« մոդուլային հասկացություններ »քայլում):
Կառավարման սարքավորումների ստեղծում
Այս խրատելիքի համար ես հենց նոր շղթայեցի այս շրջանը: Ավելի մշտական լուծման համար դուք կցանկանաք կամ փորագրել ձեր սեփական տպատախտակը կամ օգտագործել նախատիպերի տախտակ: Շարքի վարորդ
- Տեղադրեք mic2981 (կամ UDN2981) տախտակի մեջ
- Միացրեք Pin 9 -ը լարման (սա սխեմատիկորեն շփոթեցնող է սխեմատիկայում)
- Միացրեք Pin 10 -ը գետնին (սա սխեմատիկորեն շփոթեցնող է)
- տեղադրեք 3k3 դիմադրիչներ, որոնք միանում են 1-8 կապում
- Միացեք ATmega8 (PD0-PD8) D նավահանգստից 8 դիմադրիչներին
- LED մատրիցի 8 տողերի կառավարման լարերը միացրեք 11-18 կապումներին (նշեք, որ ես LED- ների ամենացածր շարանը միացրել եմ Pin 18-ին, իսկ ամենաբարձր շարանը ՝ Pin 11-ին):
2. Սյունակ վարող
- Տեղադրեք hef4794- ը հացահատիկի մեջ
- Միացրեք Pin 16 -ը լարման
- Միացրեք 8 -րդ կապը գետնին
- Միացրեք 220 օմ դիմադրիչներ 4-7 և 11-14 կապումներին:
- Միացրեք 8 սյունակի կառավարման լարերը LED մատրիցից այն 8 դիմադրիչներին, որոնք դուք միացրել եք:
- Միացրեք Pin1- ը (Latch) ATmega8- ի PC0- ին
- Միացրեք Pin2- ը (տվյալները) ATmega8- ի PC1- ին
- Միացրեք Pin3 (ockամացույց) ATmega8- ի PC2- ին
- Միացրեք Pin15- ը (Միացնել ելքը) ATmega8- ի PC3- ին
3. Clամացույցի բյուրեղյա
Միացրեք 12 ՄՀց բյուրեղյա և բեռնիչ կոնդենսատորներ, ինչպես ցույց է տրված սխեմատիկայում
4. ISP
Միացրեք ծրագրավորման վերնագիրը, ինչպես ցույց է տրված սխեմատիկայում
5. acտիչ կոնդենսատորը և ձգվող դիմադրությունը
- Լավագույնն է զտել ATmega8- ին մատակարարվող լարումը: Օգտագործեք 0.1uf կոնդենսատոր ATmega8- ի Pin 7 & 8 -ի միջև
- Վերակայման քորոցը չպետք է մնա լողացող, քանի որ դա կարող է պատահական վերագործարկումների պատճառ դառնալ: Օգտագործեք ռեզիստոր `այն լարման հետ միացնելու համար, 1k- ի մասին որևէ բան պետք է լավ լինի: Սխեմատիկայում ես օգտագործել եմ 10k դիմադրություն:
6. Համոզվեք, որ օգտագործում եք +5 վ կարգավորվող հզորություն: Կարգավորողի նախագծումը ձեզնից է կախված:
Քայլ 4: Softwareրագրակազմ
Հնարքը
Այո, ինչպես ամեն ինչ, կա մի հնարք. Խաբեությունն այն է, որ երբեք միաժամանակ լուսավորված չեն ավելի քան 8 լուսադիոդային լուսադիոդներ: Որպեսզի դա լավ աշխատի, անհրաժեշտ է մի փոքր խորամանկ ծրագրավորում: Իմ ընտրած հասկացությունն է օգտագործել ժամաչափի ընդհատում: Ահա թե ինչպես է աշխատում ցուցադրման ընդհատումը պարզ անգլերենով.
- Timամաչափը հաշվում է մինչև որոշակի պահ, երբ հասնում է ընդհատված ծառայության ռեժիմը:
- Այս ռեժիմը որոշում է, թե որ տողն է հաջորդը ցուցադրվելու:
- Հաջորդ տողի մասին տեղեկատվությունը փնտրվում է բուֆերից և տեղափոխվում սյունակի վարորդի մեջ (այս տեղեկատվությունը «փակված չէ», այնպես որ այն դեռ չի ցուցադրվում):
- Շարքի վարորդն անջատված է, ներկայումս լուսադիոդային լուսարձակներ չեն վառվում:
- Սյունակի վարորդը «կողպված» է այն տեղեկատվության մեջ, որը մենք երկու քայլ առաջ տեղափոխել ենք ընթացիկ տեղեկատվությունը ցուցադրելու համար:
- Այնուհետև տողի վարորդը ընթացիկ է տալիս նոր ցուցադրվող տողին:
- Ընդհատման ծառայության ռեժիմն ավարտվում է, և ծրագիրը վերադառնում է նորմալ հոսքին մինչև հաջորդ ընդհատումը:
Դա տեղի է ունենում շատ արագ: Ընդհատումը նետվում է ամեն 1 վայրկյանում: Սա նշանակում է, որ մենք թարմացնում ենք ամբողջ էկրանը մոտավորապես 8 mSec մեկ անգամ: Սա նշանակում է, որ ցուցադրման արագությունը կազմում է մոտ 125 Հց: Պայծառության հետ կապված որոշակի մտահոգություն կա, քանի որ մենք հիմնականում LED- ները գործարկում ենք 1/8 աշխատանքային ցիկլով (դրանք անջատված են ժամանակի 7/8 -ով): Իմ դեպքում ես ստանում եմ համարժեք լուսավոր էկրան ՝ առանց տեսանելի փայլատակումների: Ամբողջական LED էկրանը քարտեզագրված է զանգվածում: Ընդհատումների միջև զանգվածը կարող է փոխվել (հիշեք ատոմայնությունը) և կհայտնվի էկրանին հաջորդ ընդհատման ընթացքում: AVR միկրոկառավարիչի համար ծածկագիր գրելու առանձնահատկությունները և այն, թե ինչպես գրել ծածկագիր հերթափոխի ռեգիստրների հետ խոսելու համար, դուրս է տիրույթից այս ուսանելի: Ես ներառել եմ աղբյուրի ծածկագիրը (գրված C- ով և կազմված է AVR-GCC- ով), ինչպես նաև վեցանկյուն ֆայլը `ուղղակիորեն ծրագրավորելու համար: Ես մեկնաբանել եմ ամբողջ ծածկագիրը, այնպես որ դուք պետք է կարողանաք օգտագործել այն `ցանկացած փոփոխություն կատարելու համար, թե ինչպես մուտքագրել տվյալները հերթափոխի գրանցամատյանում և ինչպես է տողի թարմացումը գործում: Խնդրում ենք նկատի ունենալ, որ ես օգտագործում եմ տառատեսակի ֆայլ ks0108 ունիվերսալ C գրադարան: Այդ գրադարանը կարելի է գտնել այստեղ ՝
Shift գրանցամատյաններ. Ինչպես դա անել
Ես որոշեցի մի փոքր ավելացնել այն մասին, թե ինչպես ծրագրավորել հերթափոխի մատյաններով: Հուսով եմ, որ սա ամեն ինչ կպարզի նրանց համար, ովքեր նախկինում չեն աշխատել նրանց հետ: Ինչ են անում Այս դեպքում կա մեկ տվյալների հաղորդալար, որը վերցնում է տվյալները և 8 կապ, որոնք վերահսկվում են `կախված այն բանից, թե ինչ տվյալներ են ստացվել: Ամեն ինչ ավելի լավը դարձնելու համար յուրաքանչյուր հերթափոխի ռեգիստրի համար կա մի ելք, որը կարող է միացված լինել մեկ այլ հերթափոխի ռեգիստրի մուտքի քորոցին: Սա կոչվում է կասկադ և ընդլայնման պոտենցիալը դարձնում է գրեթե անսահմանափակ հեռանկար: Control PinsShift գրանցամատյաններն ունեն 4 կառավարման կապ:
- Latch - Այս քորոցը պատմում է հերթափոխի ռեգիստրին, երբ ժամանակն է անցնել նոր մուտքագրված տվյալներին
- Տվյալներ - 1 -ի և 0 -ի հերթափոխի գրանցամատյանում ասվում է, թե որ պիներն են ակտիվանում այս փինում:
- Clամացույց - սա միկրոկոնտրոլերից ուղարկված զարկերակ է, որը հերթափոխի ռեգիստրին ասում է տվյալների ընթերցում կատարելու և հաղորդակցության գործընթացի հաջորդ քայլին անցնելու համար:
- Միացնել ելքը - Սա միացման/անջատման անջատիչ է, բարձր = միացված, ցածր = անջատված
Ստորև բերված է վերը նշված հսկիչ կապերի գործարկման վթարի ընթացքը.
Latch- ի ցածր մակարդակը սահմանում է հերթափոխի գրանցամատյանը, որը մենք պատրաստվում ենք գրել դրան:
Քայլ 2. Տեղադրեք տվյալների կապը այն տրամաբանական արժեքին, որը ցանկանում եք ուղարկել Shift Register Քայլ 3: Setամացույցի քորոցը բարձր դրեք ՝ ասելով, որ Shift Register- ը կարդա ընթացիկ Data pin արժեքով
Բոլոր այլ արժեքները, որոնք ներկայումս գտնվում են Shift Register- ում, կտեղափոխվեն 1 տեղով ՝ տեղ ազատելով Data pin- ի ընթացիկ տրամաբանական արժեքի համար:
Քայլ 4. Սահմանեք Clամացույցի քորոցը ցածր և կրկնեք 2 -րդ և 3 -րդ քայլերը, մինչև բոլոր տվյալները չուղարկվեն հերթափոխի գրանցամատյան:
Dataամացույցի քորոցը պետք է ցածր լինի նախքան հաջորդ Տվյալ արժեքին անցնելը: Բարձր և ցածրի միջև այս քորոցը փոխելը այն է, ինչը ստեղծում է «ժամացույցի զարկերակ», որի հերթափոխի գրանցամատյանը պետք է իմանա, թե երբ անցնի գործընթացի հաջորդ քայլին:
Քայլ 5: Տեղադրեք Latch բարձր
Սա ասում է, որ հերթափոխի ռեգիստրը վերցնի տեղաշարժված բոլոր տվյալները և օգտագործի դրանք ելքային կապերը ակտիվացնելու համար: Սա նշանակում է, որ դուք չեք տեսնի տվյալներ, երբ դրանք փոխվում են; ելքային կապում ոչ մի փոփոխություն տեղի չի ունենա մինչև Latch- ի բարձր սահմանումը:
Քայլ 6: Բարձրացրեք Enable Output- ը բարձր
- Մինչև Enable Output- ը բարձր մակարդակի վրա դնելը չի լինի, անկախ նրանից, թե ինչ է կատարվում մյուս երեք հսկիչ կապերի հետ:
- Pinանկության դեպքում այս քորոցը միշտ կարող է բարձր մնալ
Կան երկու կապում, որոնք կարող եք օգտագործել կասկադի համար ՝ Os և Os1: Os- ը արագ աճող ժամացույցների համար է, իսկ Os1- ը `դանդաղ աճող ժամացույցների համար: Կցեք այս քորոցը հաջորդ հերթափոխի գրանցամատյանի տվյալների քորոցին և այս չիպից դուրս գալը կտեղադրվի հաջորդում: Թարմացման ավարտ
Դիմելով էկրանին
Օրինակ ծրագրում ես ստեղծել եմ 8 բայթ զանգված, որը կոչվում է row_buffer : Յուրաքանչյուր բայթ համապատասխանում է 8x8 ցուցադրման մեկ տողին, 0 -ը ՝ ներքևից, և 7 -ը ՝ վերևից: Յուրաքանչյուր տողի ամենաքիչ նշանակալից հատվածը գտնվում է աջ կողմում, իսկ ամենանշանակալարը `ձախ կողմում: Էկրանը փոխելը նույնքան հեշտ է, որքան տվյալների զանգվածում նոր արժեք գրելը, ընդհատվող ծառայության ռեժիմը հոգ է տանում ցուցադրման թարմացման մասին:
Ծրագրավորում
Programրագրավորումը այստեղ մանրամասն չի քննարկվի: Ես կզգուշացնեի, որ չօգտագործեք DAPA ծրագրավորման մալուխ, քանի որ կարծում եմ, որ չիպը չի կարող ծրագրավորել, երբ այն աշխատի 12 ՄՀց հաճախականությամբ: Բոլոր մյուս ստանդարտ ծրագրավորողները պետք է աշխատեն (STK500, MKII, Dragon, ralleուգահեռ/սերիալ ծրագրավորողներ և այլն): Ապահովիչներ. Համոզվեք, որ ծրագրավորեք ապահովիչները `12 ՄՀց բյուրեղապակյա օգտագործման համար` 0xC9fuse: 0xEF
Գործողության մեջ
Չիպը ծրագրավորելուց հետո էկրանը պետք է ոլորի «Բարև աշխարհ»: Ահա գործողությունների մեջ LED մատրիցի տեսանյութ: Տեսանյութի որակը բավականին ցածր է, քանի որ ես դա արել եմ իմ թվային տեսախցիկի տեսաֆունկցիայի միջոցով և ոչ թե համապատասխան տեսահոլովակի կամ վեբ -տեսախցիկի:
Քայլ 5: Մոդուլային հասկացություններ
Այս նախագիծը լայնածավալ է: Միակ ճշմարիտ սահմանափակող գործոնը կլինի այն, թե որքան հոսանք կարող է ապահովել ձեր էներգիայի մատակարարումը: (Մյուս իրականությունն այն է, թե քանի LED և գրանցման տեղաշարժիչ ունեք):
Մաթեմատիկա
Ես LED- ները վարում եմ մոտ 15 մԱ-ով (5V-1.8vDrop/220ohms = 14.5mA): Սա նշանակում է, որ mic2981 վարորդով կարող եմ վարել մինչև 33 սյունակ (500 մԱ/15 մԱ = 33.3): Բաժանվելով 8 -ի ՝ մենք կարող ենք տեսնել, որ դա թույլ է տալիս մեզ միացնել 4 հերթափոխի ռեգիստր: Նաև հաշվի առեք, որ ձեզ հարկավոր չէ, որ բոլոր 32 սյուները ձգվեն ձախից աջ: Դուք կարող եք փոխարենը ստեղծել 16x16 զանգված, որը լարված է այնպես, ինչպես 8x32 զանգվածը: Սա կլուծվի ՝ 4 բայթ փոխելով… առաջին երկուսը ամբողջ ճանապարհով կտեղափոխվեին դեպի լուսարձակներ 9 -րդ շարքի համար, երկրորդ երկու բայթերը կտեղափոխվեին առաջին շարքի: Երկու տողերն էլ աղբյուրի աղբյուրի վրա կլինեն շարքի վարորդի վրա:
Կասկադային հերթափոխի գրանցամատյաններ
Օգտագործված հերթափոխի գրանցամատյանները կասկադային հերթափոխի գրանցամատյան են: Սա նշանակում է, որ երբ դուք փոխում եք տվյալները, գերհոսքը հայտնվում է Os փինում: Այն շատ օգտակար է դառնում, քանի որ հերթափոխի գրանցամատյանների հավաքածուն կարող է կապված լինել միմյանց հետ, Os pin- ը Data pin- ին ՝ յուրաքանչյուր նոր չիպի հետ ավելացնելով 8 սյունակ: Բոլոր հերթափոխի գրանցամատյանները միացված կլինեն նույն Latch, Clock, Enable Output կապերին: միկրոկոնտրոլերը: «Կասկադային» էֆեկտը ստեղծվում է, երբ առաջին հերթափոխի ռեգիստրի Os- ը միացված է երկրորդի Data pin- ին: Programրագրավորումը պետք է փոխվի, որպեսզի արտացոլի սյունակների ավելացված թիվը: Տեղեկատվությունը պահող բուֆերը և գործառույթը, որը տեղեկատվություն է տեղափոխում յուրաքանչյուր սյունակի համար, պետք է թարմացվեն ՝ սյունակների իրական թիվը արտացոլելու համար: Սրա սխեման ստորև բերված է որպես օրինակ:
Բազմակի տողերի վարորդներ
Տողերի վարորդը (mic2981) կարող է բավականաչափ հոսանք ապահովել 32 սյունակ վարելու համար: Ի՞նչ անել, եթե ցանկանում եք ունենալ ավելի քան 32 սյունակ: Պետք է հնարավոր լինի օգտագործել մի քանի տողերի վարորդներ ՝ առանց միկրոկոնտրոլերի ավելի շատ կապեր օգտագործելու: Մեզ անհրաժեշտ է, որ տողերի վարորդները բավականաչափ հոսանք ստանան LED- ները լուսավորելու համար:Եթե դուք օգտագործում եք ավելի շատ սյուներ, քան հնարավոր է միանգամից լուսավորել, լրացուցիչ շարանի վարորդները կարող են ապահովել անհրաժեշտ հոսանքը: Միկրոկոնտրոլերի նույն մուտքային կապումներն օգտագործվում են այնպես, որ կարիք չկա տողերի սկանավորումը փոխելու: Այլ կերպ ասած, յուրաքանչյուր վարորդ վերահսկում է տողերը 8x32 բլոկի համար: Թեև 64 սյունակ կարող է ունենալ նույն ՖԻSԻԿԱԿԱՆ տողերի տեղադրումը, մենք տողերի ավտոբուսները բաժանում ենք երկու մասի ՝ օգտագործելով մեկ վարորդ առաջին 32 սյունակների 8 տողերի համար, իսկ երկրորդ վարորդը ՝ երկրորդ 32 սյունակների 8 տողերի համար և այլն: Սրա սխեման ստորև բերված է որպես օրինակ: Հնարավոր սխալ քայլեր. Մի օգտագործեք նույն շարքի սյունակներով մի քանի տողերի վարորդներ: Դա անելը կնշանակի, որ հերթափոխի գրանցման յուրաքանչյուր քորոց միաժամանակ կշարժի ավելի քան մեկ LED: Յուրաքանչյուր տողերի վարորդի համար պետք է ունենաք 8 դիմադրիչի հավաքածու (3k3), մի շարք շարքերի վարորդների համար չի աշխատի, քանի որ չի ապահովի դարպասը փոխելու համար անհրաժեշտ հոսանքը:
Օրինակ
Ես որոշեցի ընդլայնել ավելի վաղ կառուցած մատրիցան: Ես ավելացրել եմ ևս 7 տող ընդհանուր 15 -ի համար, քանի որ դա այն ամենն է, ինչ կարող եմ տեղավորել այս նախատախտակի վրա: Ես նաև նոր իմացա մրցույթի մասին, որն անցկացնում է Instructables- ը `« Թող այն փայլվի »: Ահա մի տեսանյութ, որը վերաբերում է դրան: Հերթական անգամ այն թվային տեսախցիկը, որով ես օգտվում էի տեսահոլովակից, արդարադատություն չի անում: Սա հիանալի տեսք ունի մարդու աչքին, հատկապես այնտեղ, որտեղ բոլոր LED- ները բռնկվում են, բայց տեսանյութում այնքան էլ լավ տեսք չունի: Վայելեք. Այս ավելի մեծ ցուցադրման աղբյուրի կոդը ներառված է ստորև:
Քայլ 6: Եզրակացություն
Հնարավոր լրացումներ
I2CI- ն թողել է երկու մետաղալար միջերեսի (I2C) կապումներն այս նախագծում չօգտագործված: Կան մի քանի հետաքրքիր հեռանկարներ, որոնք կարող են օգտագործել այս երկու կապում: I2C EEPROM- ի ավելացումը թույլ կտա պահպանել շատ ավելի մեծ հաղորդագրություններ: Կա նաև ծրագրավորման նախագծման հեռանկար ՝ mega8- ը I2C- ի հետ համատեղելի դիսփլեյի վարորդի վերածելու համար: Սա կբացի հնարավորություն ունենալ USB- սարք, որը կարող է ձեր LED զանգվածի տվյալները ցուցադրել ՝ դրանք փոխանցելով I2C ավտոբուսի վրայով: Մուտք: Մնացել են շատ կապեր, որոնք կարող են օգտագործվել կոճակների կամ IR ընդունիչի համար: Սա թույլ կտա հաղորդագրությունների ծրագրավորումը կատարել ընտրացանկի համակարգի միջոցով: layուցադրել Մեկը պարզապես նիշ է գրում էկրանին, իսկ մյուսը ոլորում է նիշերը էկրանին: Կարևոր է հիշել, որ այն, ինչ տեսնում եք լույսերում, ներկայացված է տվյալների զանգվածում: Եթե դուք կգտնեք տվյալների զանգվածը փոխելու ավելի խելամիտ եղանակներ, լույսերը նույն կերպ կփոխվեն: Որոշ գայթակղիչ հնարավորություններ ներառում են սյունակներից գրաֆիկական հաշվիչ ստեղծելը: Սա կարող է օգտագործվել որպես ազդանշանային անալիզատոր `ստերեո ձայնագրությամբ: Ոլորումը կարող է իրականացվել վերևից ներքև կամ ներքևից վեր, նույնիսկ ձախից աջ: Հաջողություն, ուրախ ժամանց!
Քայլ 7: Հետևեք
Կառավարիչի սխեման ամիսներ շարունակ նստելուց հետո ես վերջապես նախագծեցի և փորագրեցի մի քանի տպատախտակներ `այս նախատիպը համատեղելու համար: Ամեն ինչ հիանալի ստացվեց, չեմ կարծում, որ կա որևէ այլ բան, որ կանեի այլ կերպ:
Տախտակի առանձնահատկությունները
- Shift գրանցամատյանները գտնվում են առանձին տախտակների վրա, որոնք կարող են շղթայված լինել միասին `դիսփլեյի չափը մեծացնելու համար:
- Կառավարիչ տախտակն ունի իր էներգիայի կարգավորիչը, այնպես որ այն կարող է գործարկվել էներգիայի ցանկացած աղբյուրի միջոցով, որն ապահովում է 7v-30v (9 վ մարտկոց կամ 12 վ նստարանային սնուցում, երկուսն էլ ինձ համար լավ են աշխատում):
- Ներառված է 6 պին ISP վերնագիր, այնպես որ միկրոկառավարիչը կարող է վերապրագրավորվել ՝ առանց այն տախտակից հանելու:
- 4 պինային վերնագիր, որը հասանելի է I2C ավտոբուսի հետագա օգտագործման համար: Սա կարող է օգտագործվել eeprom- ի համար ՝ ավելի շատ հաղորդագրություններ պահելու կամ նույնիսկ սա ստրուկ սարք դարձնելու համար, որը վերահսկվում է այլ միկրոկոնտրոլերի կողմից (որևէ մեկին RSS- ով նշու՞մ է):
- Դիզայնի մեջ ներառված են 3 ակնթարթային սեղմման կոճակներ: Հնարավոր է, որ ապագայում փոխեմ որոնվածը ՝ ներառելով այս կոճակների օգտագործումը:
Ժողով
Տվեք ինձ պլեքսիգլաս, անկյունային փակագծեր, 6x32 հաստոցների պտուտակներ, ընկույզներ և լվացարաններ, ինչպես նաև թակել, որը տեղադրված է թելերի անցքերի վրա, և ես կարող եմ ամեն ինչ ստեղծել:
Երկրորդ մրցանակ Let It Glow!
Խորհուրդ ենք տալիս:
Google Օգնականի վերահսկվող LED մատրիցա: 7 քայլ (նկարներով)
Google Assistant Controlled LED Matrix
Երկնիշ էկրան ՝ օգտագործելով միայնակ 8x8 առաջնորդվող մատրիցա ՝ 3 քայլ
Երկնիշ էկրան ՝ օգտագործելով միայնակ 8x8 լուսադիոդային մատրիցա. Այստեղ ես կցանկանայի կառուցել ջերմաստիճանի և խոնավության ցուցիչ իմ սենյակի համար: Երկնիշ թվեր ցուցադրելու համար ես օգտագործեցի միայնակ 8x8 LED մատրիցա, և կարծում եմ, որ նախագծի մի մասն ավելի օգտակար դարձավ: Ես փակեցի ստվարաթղթե տուփի օգնությամբ կառուցված եզրափակիչը, ցավը
RGB մատրիցա ՝ օգտագործելով NovaStar- ը ՝ 5 քայլ
RGB մատրիցա `օգտագործելով NovaStar- ը. Այս տարի Հելոուինի համար մենք որոշեցինք ձիարշավի խաղ պատրաստել: Ես ուզում էի հսկայական էկրան ունենալ, և ինձ միշտ հետաքրքրել է չինական RGB Matrix վահանակների հետ խաղալը: Նախկինում ես ծրագրավորվող LED- ներով էի խաղում, բայց դժվար է շատ վճռականություն ստանալ
Ինչպես կառուցել 8x8 BIG LED մատրիցա (MAX7219 LED 10 մմ). 9 քայլ (նկարներով)
Ինչպե՞ս կառուցել 8x8 BIG LED մատրիցա (MAX7219 LED 10 մմ). Դուք աշխատե՞լ եք պատրաստի 8x8 LED մատրիցով `որպես դիսփլեյ: Նրանք գալիս են տարբեր չափերի և բավականին հետաքրքիր են աշխատել: Մեծ մատչելի չափսերը կազմում են մոտ 60 մմ x 60 մմ: Այնուամենայնիվ, եթե դուք փնտրում եք շատ ավելի մեծ պատրաստի LED մատրիցա
5x4 LED ցուցադրման մատրիցա ՝ օգտագործելով հիմնական նամականիշ 2 (bs2) և Charlieplexing ՝ 7 քայլ
5x4 LED ցուցադրման մատրիցա ՝ օգտագործելով հիմնական դրոշմակնիք 2 (bs2) և Charlieplexing. Ինչու՞ չխաղալ charlieplexing հասկացության հետ և ելք չստեղծել ՝ օգտագործելով ընդամենը 5 կապում: Այս ուսանելիի համար ես կօգտագործեմ BS2e- ն, բայց BS2 ընտանիքի ցանկացած անդամ պետք է աշխատի