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

5x4 LED ցուցադրման մատրիցա ՝ օգտագործելով հիմնական նամականիշ 2 (bs2) և Charlieplexing ՝ 7 քայլ
5x4 LED ցուցադրման մատրիցա ՝ օգտագործելով հիմնական նամականիշ 2 (bs2) և Charlieplexing ՝ 7 քայլ

Video: 5x4 LED ցուցադրման մատրիցա ՝ օգտագործելով հիմնական նամականիշ 2 (bs2) և Charlieplexing ՝ 7 քայլ

Video: 5x4 LED ցուցադրման մատրիցա ՝ օգտագործելով հիմնական նամականիշ 2 (bs2) և Charlieplexing ՝ 7 քայլ
Video: Светильник складной, 1 LED, 1 Вт, 8,5x4,8см, 3хAA, 3 режима, пластик (225-003) 2024, Հուլիսի
Anonim
5x4 LED ցուցադրման մատրիցա ՝ օգտագործելով հիմնական դրոշմանիշ 2 (bs2) և Charlieplexing
5x4 LED ցուցադրման մատրիցա ՝ օգտագործելով հիմնական դրոշմանիշ 2 (bs2) և Charlieplexing

Ունե՞ք Հիմնական Նամականիշ 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

Breadboarding
Breadboarding
Breadboarding
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 նիշի համար (իհարկե, կախված յուրաքանչյուր նիշի լայնությունից): Հաջողություն, ուրախ ժամանց!

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