Բովանդակություն:
- Քայլ 1. Charlieplexing: Ինչ, ինչու և ինչպես
- Քայլ 2: Սարքավորումներ և սխեմատիկ
- Քայլ 3: Breadboarding
- Քայլ 4: mingրագրավորման հիմունքներ
- Քայլ 5. Cyարգացման ցիկլ
- Քայլ 6: Ավելի լավ թարգմանիչ
- Քայլ 7: Որտեղ գնալ այստեղից
Video: 5x4 LED ցուցադրման մատրիցա ՝ օգտագործելով հիմնական նամականիշ 2 (bs2) և Charlieplexing ՝ 7 քայլ
2024 Հեղինակ: John Day | [email protected]. Վերջին փոփոխված: 2024-01-30 09:52
Ունե՞ք Հիմնական Նամականիշ 2 և մի քանի լրացուցիչ LED լուսարձակներ: Ինչու՞ չխաղալ charlieplexing հասկացության հետ և ելք չստեղծել ՝ օգտագործելով ընդամենը 5 կապում:
Այս ուսանելիի համար ես կօգտագործեմ BS2e- ն, բայց BS2 ընտանիքի ցանկացած անդամ պետք է աշխատի:
Քայլ 1. Charlieplexing: Ինչ, ինչու և ինչպես
Եկեք նախ պարզենք, թե ինչու: Ինչու՞ օգտագործել charlieplexing հիմնական դրոշմակնիքով 2: --- Հայեցակարգի ապացույց. Իմացեք, թե ինչպես է աշխատում charlieplexing- ը և իմացեք ինչ-որ բան BS2- ի մասին: Սա կարող է ինձ համար օգտակար լինել հետագայում ավելի արագ 8-փին չիպսերի օգտագործմամբ (դրանցից միայն 5-ը կլինեն i/o):--- Օգտակար պատճառ. Հիմնականում չկա: BS2- ը չափազանց դանդաղ է ցուցադրվում առանց նկատելի թրթռալու: Ի՞նչ է charlieplexing- ը: --- Charlieplexing- ը մեծ թվով լուսադիոդային լուսադիոդներ վարելու մեթոդ է `փոքր թվով միկրոպրոցեսորային i/o կապում: Charlieplexing- ի մասին ես սովորեցի www.instructables.com- ից, և դուք նույնպես կարող եք. Նաև wikipedia- ում `Charlieplexing Դա ավելի լավ է բացատրում, քան երբևէ կարող էի: Charlieplexing- ը տարբերվում է ավանդական մուլտիպլեքսավորումից, որին յուրաքանչյուր տողի և յուրաքանչյուր սյունակի համար անհրաժեշտ է մեկ i/o կապում (դա կլինի ընդհանուր առմամբ 9 i/o կապում 5/4 ցուցադրման համար):
Քայլ 2: Սարքավորումներ և սխեմատիկ
Նյութերի ցանկ. 1x - Հիմնական կնիք 220x - նույն տիպի լուսադիոդներ (լուսադիոդներ) (գույնի և լարման անկում) 5x - ռեզիստորներ (տե՛ս ստորև ՝ դիմադրության արժեքի վերաբերյալ) Օժանդակ/Լրացուցիչ. Ձեր BS2- ի ծրագրավորման մեթոդը որպես վերականգնման անջատիչ 6 վ -9v Էլեկտրաէներգիայի մատակարարում `կախված BS2- ի ձեր տարբերակից (կարդացեք ձեր ձեռնարկը) Սխեմատիկ. Այս սխեմատիկան դրված է մեխանիկական դասավորության հետ մեկտեղ: Դուք կտեսնեք ձախ կողմում տեղադրված LED- ների ցանցը, սա այն կողմնորոշումն է, որի համար գրված է BS2 ծածկագիրը: Ուշադրություն դարձրեք, որ LED- ների յուրաքանչյուր զույգի վրա անոդը միացված է մյուսի կաթոդին: Դրանք այնուհետև միացվում են հինգ i/o կապումներից մեկին: Resistor Values. Դուք պետք է հաշվարկեք ձեր սեփական դիմադրության արժեքները: Ստուգեք ձեր LED- ների թերթիկը կամ օգտագործեք ձեր թվային բազմաչափի LED- ի կարգավորումը `ձեր LED- ների լարման անկումը գտնելու համար: Եկեք որոշ հաշվարկներ կատարենք. Մատակարարման լարման - լարման անկման / ցանկալի հոսանքի = դիմադրության արժեք The BS2- ը մատակարարում է 5 վ կարգավորվող հզորություն, և կարող է 20 մա աղբյուր բերել: ընթացիկ. Իմ LED- ները ունեն 1.6 վ անկում և գործում են 20ma.5v - 1.6v /.02amps = 155 ohms Ձեր BS2- ը պաշտպանելու համար դուք պետք է օգտագործեք հաջորդ բարձր ռեզիստորի արժեքը հաշվարկից ստացվածից, այս դեպքում ես կարծում եմ, որ դա կլինի 180 օհմ: Ես օգտագործել եմ 220 օհմ, քանի որ իմ զարգացման տախտակին տեղադրված է ռեզիստորի այդ արժեքը յուրաքանչյուր i/o պինկի համար: NOTԱՆՈԹՈԹՅՈՆ. Ես հավատում եմ, որ քանի որ յուրաքանչյուր քորոցի վրա կա ռեզիստոր, դա արդյունավետորեն կրկնապատկում է յուրաքանչյուր լուսադիոդի դիմադրությունը, քանի որ մի քորոցը V+ է, իսկ մյուսը `Gnd: Եթե դա այդպես է, դուք պետք է նվազեցնեք դիմադրության արժեքները կիսով չափ: Չափազանց բարձր դիմադրության արժեքի անբարենպաստ ազդեցությունն է մռայլ լուսադիոդը: Կարո՞ղ է ինչ -որ մեկը հաստատել սա և թողնել ինձ PM կամ մեկնաբանել, որպեսզի ես կարողանամ թարմացնել այս տեղեկատվությունը: Ես նաև օգտագործում եմ այս չիպը իմ առանց զոդման տախտակի վրա և ներառել եմ In Circuit Serial Programming (ICSP) վերնագիրը: Վերնագիրը 5 կապ է, 2-ից 5 կապը միանում են DB9 սերիայի մալուխի 2-5 կապերին (1-ին կապը չօգտագործված է): Խնդրում ենք նկատի ունենալ, որ այս ICSP վերնագրի 6 -րդ և 7 -րդ կապերը DB9 մալուխի համար պետք է միացված լինեն միմյանց: Վերականգնել. Վայրկենական սեղմման վերակայման կոճակը պարտադիր չէ: Սա պարզապես սեղմում է 22 -րդ քորոցը գետնին:
Քայլ 3: Breadboarding
Այժմ ժամանակն է մատրիցը կառուցել տախտակի վրա: Ես տերմինալային ժապավենով միացրեցի յուրաքանչյուր ոտք ունեցող զույգից մի ոտքը, իսկ մյուս ոտքերը միացնելու համար `մի փոքր ցատկող մետաղալար: Սա մանրամասն նկարագրված է փակման լուսանկարում և խորությամբ բացատրված է այստեղ ՝ 1. Կողմնորոշեք ձեր տախտակը `ավելի մեծ պատկերին համապատասխանելու համար 2: Տեղադրեք LED 1-ը `անոդով (+) դեպի ձեզ և դեպի ձեզանից կաթոդ (-): Տեղադրեք LED 2 -ը նույն անոդով (+) LED- ի 1 կաթոդի միացնող տերմինալային շերտում: Օգտագործեք փոքր ցատկող մետաղալար ՝ LED 1 -ի անոդը LED 2.5 -ի կաթոդին միացնելու համար: Կրկնեք, մինչև LED- ի յուրաքանչյուր զույգ ավելացվի գրատախտակին: Ես սովորաբար օգտագործում եմ հացի տախտակի հոսանքի ավտոբուսները ՝ որպես BS2 I/O կապումների ավտոբուսային ժապավեններ: Քանի որ կան ընդամենը 4 ավտոբուսային շերտեր, ես օգտագործում եմ տերմինալային ժապավեն P4- ի համար (հինգերորդ մուտքային/ելքային միացում): Սա կարելի է տեսնել ստորև ներկայացված ավելի մեծ նկարի վրա: 6. LED 1 կաթոդի տերմինալային ժապավենը միացրեք P0 ավտոբուսի ժապավենին: Կրկնեք յուրաքանչյուր կենտ համարակալված LED- ի համար ՝ յուրաքանչյուր զույգի համար փոխարինելով համապատասխան P* ով (տես սխեմատիկ պատկերը): 7. LED 2 կաթոդի տերմինալային ժապավենը միացրեք P1 ավտոբուսի ժապավենին: Կրկնեք յուրաքանչյուր կենտ համարակալված LED- ի համար `յուրաքանչյուր զույգի համար համապատասխան P* փոխարինելով (տես սխեմատիկ պատկերը): 8. BS2- ի (P0-P4) համապատասխան ավտոբուսային ժապավենը միացրեք համապատասխան I/O կապին: 9. Ստուգեք բոլոր կապերը `ապահովելու համար, որ դրանք համապատասխանում են սխեմատիկին: 10. Նշում. Նշում. Մոտիկից կտեսնեք, որ չի երևում, որ ես հետևել եմ 7-րդ քայլին, քանի որ երկրորդ մուտքի/ելքի կապին միացումը կենտ համարակալված LED- ների անոդի վրա է: Հիշեք, որ զույգ համարակալված LED- ների կաթոդը միացված է կենտ համարակալված LED- ների անոդին, այնպես որ կապը ցանկացած դեպքում նույնն է: Եթե այս գրառումը ձեզ շփոթեցնում է, պարզապես անտեսեք այն:
Քայլ 4: mingրագրավորման հիմունքներ
Charlieplexing- ի աշխատելու համար միաժամանակ միացրեք միայն մեկ լուսարձակը: Մեր BS2- ի հետ աշխատելու համար մեզ անհրաժեշտ են երկու հիմնական քայլ ՝ 1. Սահմանեք կապերի ելքային ռեժիմները ՝ օգտագործելով OUTS հրամանը: Ասացեք BS2- ին, թե որ կապումներն են օգտագործվում որպես ելքեր DIRS հրամանով: Սա աշխատում է, քանի որ BS2- ին կարելի է ասել, թե որ կապերն են վարում բարձր և ցածր, և կսպասի դա անել, մինչև չնշեք, թե որ ելքերն են ելքեր: Տեսնենք, արդյոք ամեն ինչ ճիշտ է կապված պարզապես փորձել թարթել LED 1. Եթե նայեք սխեմատիկ պատկերին, կարող եք տեսնել, որ P0- ն միացված է LED 1-ի կաթոդին (-), իսկ P1- ը `նույն LED- ի անոդին: Սա նշանակում է, որ մենք ցանկանում ենք P0 ցածր և P1 բարձր վարել: Դա կարելի է անել հետևյալ կերպ. «OUTS = % 11110», որը P4-P1- ը բարձր և P0 ցածր է տանում: (% -ը ցույց է տալիս, որ պետք է հետևել երկուական թիվ: Ամենացածր երկուական նիշը միշտ աջ կողմում է: 0 = OWԱOWՐ, 1 = ԲԱՐՁՐ) BS2- ը պահում է այդ տեղեկատվությունը, բայց չի գործի դրա վրա, մինչև չհայտարարենք, թե որ կապերն են ելքեր: Այս քայլը կարևոր է, քանի որ միայն երկու կապում պետք է ելք լինի միևնույն ժամանակ: Մնացածը պետք է մուտքագրված լինեն, ինչը դրանք կապում է բարձր դիմադրության ռեժիմի, այնպես որ դրանք չեն խորտակում ոչ մի հոսանք: Մենք պետք է վարենք P0 և P1, այնպես որ դրանք կդարձնենք ելքերի, իսկ մնացածը ՝ մուտքերի վրա, այսպես. = Մուտք, 1 = Ելք) Եկեք միասին դնենք որոշ օգտակար ծածկագրի մեջ ՝ «{$ STAMP BS2e}» {$ PBASIC 2.5} ԿԱՐOՈՄ = %11110 «Drive P0 ցածր և P1-P4 բարձր DIRS = %00011» Հավաքածու P0- P1- ը ՝ որպես ելքեր, և P2-P4- ը ՝ որպես մուտքեր PAUSE 250 «Դադար, որպեսզի LED- ը մնա DIRS = 0» Բոլոր կապումները մուտքագրեք: Սա անջատելու է LED PAUSE 250 'Pause- ը, որպեսզի LED- ն անջատված մնա LOOP
Քայլ 5. Cyարգացման ցիկլ
Այժմ, երբ մենք տեսել ենք մեկ քորոց աշխատելու ժամանակ, որպեսզի համոզվենք, որ բոլորը աշխատում են: 20led_Zig-Zag.bse Այս կցված ծածկագիրը պետք է լուսավորի 20 LED- ներից յուրաքանչյուրը zig-zag ձևով: Դուք կնկատեք, որ աղբարկղը լուսավորելուց հետո ես օգտագործում եմ «DIRS = 0» ՝ բոլոր կապումները մուտքի վերածելու համար: Եթե դուք փոխում եք OUTS- ն ՝ առանց ելքային կապումներն անջատելու, կարող եք ստանալ մի «ուրվական», որտեղ մի լուսավորություն, որը չպետք է լուսավորված լինի, կարող է թարթել ցիկլերի միջև: Եթե դուք փոխեք W1 փոփոխականը այս ծածկագրի սկզբում «W1 = 1» - ով կլինի ընդամենը 1 միլիվայրկյան դադար յուրաքանչյուր LED թարթման միջև: Սա կհանգեցնի տեսողության (POV) էֆեկտի կայունացմանը, որի արդյունքում թվում է, թե բոլոր LED- ները վառված են: Սա իսկապես ազդում է լուսադիոդային լուսարձակների վրա, բայց այն էությունն է, թե ինչպես ենք ցուցադրելու կերպարներ այս մատրիցում: 20led_Interpreter_Proto.b LED- ները `օգտագործելի օրինակով: Այս ֆայլը իմ առաջին փորձն է: Դուք կտեսնեք, որ ֆայլի ներքևում նիշերը պահվում են 5 նիշանոց երկուական չորս տողերում: Յուրաքանչյուր տող կարդացվում է, վերլուծվում է, և ենթածրագիրը կոչվում է ամեն անգամ, երբ led- ը պետք է լուսավորվի: Այս կոդը գործում է ՝ շրջելով 1-0 թվերով: Եթե դուք փորձեք այն գործարկել, նկատեք, որ այն պատուհասվում է թարմացման շատ դանդաղ արագությամբ, որի պատճառով կերպարները գրեթե դանդաղ են բռնկվում ճանաչման համար: Այս ծածկագիրը վատ է բազմաթիվ պատճառներով: Նախ, երկու թվանշանի հինգ թվանշանը EEPROM- ում զբաղեցնում են նույնքան տեղ, որքան երկու թվանշանի երկու թվանշանները, քանի որ ամբողջ տեղեկատվությունը պահվում է չորս բիթանոց խմբերում: Երկրորդ, SELECT CASE- ը, որն օգտագործվում էր որոշելու համար, թե որ քորոցը պետք է լուսավորվի, պահանջում է 20 պատյան: BS2- ը սահմանափակվում է 16 գործով SELECT գործողության համար: Սա նշանակում է, որ ես պետք է կոտրեի այդ սահմանափակումը ԵԹԵ ԱՅԼ-ԱՅԼ հայտարարությամբ: Պետք է լինի ավելի լավ միջոց: Գլուխը քերծելուց մի քանի ժամ անց ես հայտնաբերեցի այն:
Քայլ 6: Ավելի լավ թարգմանիչ
Մեր մատրիցի յուրաքանչյուր տող բաղկացած է 4 LED- ից, որոնցից յուրաքանչյուրը կարող է միացված կամ անջատված լինել: BS2- ը տեղեկատվություն է պահում իր EEPROM- ում ՝ չորս բիթանոց խմբերով: Այդ հարաբերակցությունը պետք է մեզ շատ ավելի դյուրացնի գործերը: Բացի այս փաստից, չորս բիթ համապատասխանում է 0-15 տասնորդական թվերին `ընդհանուր 16 հնարավորությունների համար: Սա շատ ավելի հեշտացնում կամ ընտրում է գործը: Ահա EEPROM- ում պահված 7 թիվը ՝ «7 %1111, %1001, %0010, %0100, %0100, յուրաքանչյուր տող ունի տասնորդական հավասարաչափ 0-15, այնպես որ մենք կարդում ենք a շարել հիշողությունից և ուղարկել այն անմիջապես SELECT CASE գործառույթին: Սա նշանակում է, որ յուրաքանչյուր կերպար ստեղծելու համար օգտագործվող մարդկային ընթերցվող երկուական մատրիցան (1 = առաջնորդվում է, 0 = անջատվում է) թարգմանչի բանալին է: 5 տողերից յուրաքանչյուրի համար նույն SELECT CASE- ի օգտագործման համար ես օգտագործել եմ մեկ այլ ընտրանք որպես փոփոխական սահմանել DIRS- ը և OUTS- ը: Սկզբում ես կարդացի ROW1-ROW5 փոփոխականների բնույթի հինգ տողերից յուրաքանչյուրում: Հիմնական ծրագիրը այնուհետ կանչում է ենթածրագրին `կերպարը ցուցադրելու համար: Այս ենթածրագիրը վերցնում է առաջին տողը և չորս հնարավոր OUTS համակցությունները վերագրում է փոփոխական outp1-outp4 և երկու հնարավոր DIRS համակցություններին ՝ direc1 և direc2: LED- ները շողշողում են, տողերի հաշվիչն ավելանում է, և նույն գործընթացը կատարվում է մնացած չորս տողերից յուրաքանչյուրի համար: Սա շատ ավելի արագ է, քան թարգմանչի առաջին ծրագիրը: Ասածս այն է, որ դեռ նկատելի թարթում կա: Նայեք տեսանյութին, տեսախցիկը թարթումը շատ ավելի վատ տեսք է տալիս, բայց դուք դա հասկանում եք: Այս հայեցակարգը շատ ավելի արագ չիպի տեղափոխելը, ինչպես picMicro- ն կամ AVR չիպը, հնարավորություն կտա ցուցադրել այս կերպարներն առանց նկատելի թարթման:
Քայլ 7: Որտեղ գնալ այստեղից
Ես չունեմ cnc գործարան կամ փորագրման պաշարներ `տպատախտակներ պատրաստելու համար, այնպես որ ես չեմ միացնի այս նախագիծը: Եթե դուք ունեք ջրաղաց և հետաքրքրված եք համագործակցելով այստեղից առաջ շարժվելու համար, ուղարկեք ինձ հաղորդագրություն: Ես ուրախ կլինեի վճարել նյութերի և առաքման համար, նույնիսկ ավելի երջանիկ ՝ այս նախագծի համար պատրաստի արտադրանք ցույց տալու համար:
Այլ հնարավորություններ. 1. Տեղափոխեք այն մեկ այլ չիպի: Այս մատրիցային դիզայնը կարող է օգտագործվել ցանկացած չիպի հետ, որն ունի 5 i/o կապում, որոնք ունակ են եռակի վիճակի (կապում, որը կարող է լինել բարձր, ցածր կամ մուտքային (բարձր դիմադրություն)): 2. Օգտագործելով ավելի արագ չիպ (գուցե AVR կամ picMicro) կարող եք մեծացնել սանդղակը: 20 պինային չիպով դուք կարող եք օգտագործել 14 կապում 8x22 էկրանը միացնելու համար, իսկ մնացած կապանքները համակարգչից կամ այլ վերահսկիչից սերիական հրամաններ ստանալու համար: Օգտագործեք ևս երեք 20-փինանոց չիպ և կարող եք ունենալ ոլորման էկրան, որը 8x88 է, ընդհանուր առմամբ 11 նիշի համար (իհարկե, կախված յուրաքանչյուր նիշի լայնությունից): Հաջողություն, ուրախ ժամանց!
Խորհուրդ ենք տալիս:
Arduino ցուցադրման ժամանակը TM1637 LED էկրանին `օգտագործելով RTC DS1307: 8 քայլ
Arduino ցուցադրման ժամանակը TM1637 LED էկրանին RTC DS1307- ի միջոցով. Այս ձեռնարկում մենք կսովորենք, թե ինչպես ցուցադրել ժամանակը ՝ օգտագործելով RTC DS1307 մոդուլը և LED էկրանը TM1637 և Visuino: Դիտեք տեսանյութը
Ինչպես կատարել հիմնական կայք ՝ օգտագործելով նոթատետր: 4 քայլ
Ինչպե՞ս ստեղծել հիմնական վեբ կայք ՝ օգտագործելով նոթատետր: Որևէ մեկին հետաքրքրե՞լ է, թե ինչպես կարող եմ վեբ կայք կազմել հիմնական գրելու ծրագրից: կայք ՝ օգտագործելով միայն նոթատետր
Երկնիշ էկրան ՝ օգտագործելով միայնակ 8x8 առաջնորդվող մատրիցա ՝ 3 քայլ
Երկնիշ էկրան ՝ օգտագործելով միայնակ 8x8 լուսադիոդային մատրիցա. Այստեղ ես կցանկանայի կառուցել ջերմաստիճանի և խոնավության ցուցիչ իմ սենյակի համար: Երկնիշ թվեր ցուցադրելու համար ես օգտագործեցի միայնակ 8x8 LED մատրիցա, և կարծում եմ, որ նախագծի մի մասն ավելի օգտակար դարձավ: Ես փակեցի ստվարաթղթե տուփի օգնությամբ կառուցված եզրափակիչը, ցավը
RGB մատրիցա ՝ օգտագործելով NovaStar- ը ՝ 5 քայլ
RGB մատրիցա `օգտագործելով NovaStar- ը. Այս տարի Հելոուինի համար մենք որոշեցինք ձիարշավի խաղ պատրաստել: Ես ուզում էի հսկայական էկրան ունենալ, և ինձ միշտ հետաքրքրել է չինական RGB Matrix վահանակների հետ խաղալը: Նախկինում ես ծրագրավորվող LED- ներով էի խաղում, բայց դժվար է շատ վճռականություն ստանալ
LED մատրիցա ՝ օգտագործելով Shift գրանցամատյանները. 7 քայլ (նկարներով)
LED մատրիցա ՝ օգտագործելով Shift գրանցամատյանները. Այս հրահանգը պետք է լինի ավելի ամբողջական բացատրություն, քան մյուսները ՝ առցանց հասանելի: Հատկանշական է, որ սա ավելի շատ ապարատային բացատրություն կտա, քան առկա է LED555- ով հրահանգվող LED Marquee- ում: ՆպատակներՍույն հրահանգը ներկայացնում է հասկացությունները