Բովանդակություն:
Video: Ինչպես միացնել MAX7219 շարժվող LED մատրիցը 8x8 ATtiny85 միկրոկառավարիչով. 7 քայլ
2024 Հեղինակ: John Day | [email protected]. Վերջին փոփոխված: 2024-01-30 09:48
MAX7219 վերահսկիչը արտադրվում է Maxim Integrated- ի կողմից: Կոմպակտ, սերիական մուտքի/ելքի ընդհանուր կաթոդային ցուցադրման վարորդ, որը կարող է միկրոկառավարիչներին միացնել 64 առանձին LED- ներին, 7 հատվածից մինչև 8 թվանշանի LED թվային էկրաններին, գծապատկերային էկրաններին և այլն: -չիպերը BCD կոդ-B ապակոդավորիչ են, մուլտիպլեքս սկան միացում, հատվածի և թվանշանների շարժիչներ և 8 × 8 ստատիկ RAM, որը պահում է յուրաքանչյուր նիշ:
MAX7219 մոդուլները շատ հարմար են միկրոկոնտրոլերների հետ օգտագործելու համար, ինչպիսիք են ATtiny85- ը, կամ, մեր դեպքում Tinusaur Board- ը:
Քայլ 1: Սարքավորումը
MAX7219 մոդուլները սովորաբար այսպիսի տեսք ունեն: Նրանք մի կողմից ունեն մուտքային ավտոբուս, իսկ մյուս կողմից ՝ ելքային: Սա թույլ է տալիս շաղ տալ 2 կամ ավելի մոդուլ, այսինքն մեկը մյուսի հետևից, ավելի բարդ կարգավորումներ ստեղծելու համար:
Այն մոդուլները, որոնք մենք օգտագործում ենք, ունակ են միացնել շղթայի մեջ `օգտագործելով 5 փոքր թռիչք: Տե՛ս ստորև նկարը:
Քայլ 2: Pinout և ազդանշաններ
MAX7219 մոդուլն ունի 5 կապում.
- VCC - հզորություն (+)
- GND-հիմք (-)
- DIN - Տվյալների մուտքագրում
- CS - Չիպի ընտրություն
- CLK - ockամացույց
Դա նշանակում է, որ մեզ անհրաժեշտ է 3 կապում ATtiny85 միկրոկառավարիչի կողմից `մոդուլը վերահսկելու համար: Դրանք կլինեն.
- PB0 - միացված է CLK- ին
- PB1 - միացված է CS- ին
- PB2 - միացված է DIN- ին
Սա բավարար է MAX7219 մոդուլին միանալու և այն ծրագրավորելու համար:
Քայլ 3: Արձանագրություն
MAX7219- ի հետ շփումը համեմատաբար հեշտ է. Այն օգտագործում է համաժամանակյա արձանագրություն, ինչը նշանակում է, որ յուրաքանչյուր ուղարկված տվյալների բիտերի համար կա ժամացույցի ցիկլ, որը նշանակում է այդ տվյալների բիթի առկայությունը:
Այլ կերպ ասած, մենք երկու զուգահեռ հաջորդականություն ենք ուղարկում բիթերին `մեկը ժամացույցի համար, մյուսը` տվյալների: Սա այն է, ինչ անում է ծրագրաշարը:
Քայլ 4: Theրագրակազմ
Այս MAX7219 մոդուլի աշխատանքի եղանակը հետևյալն է.
- Մենք բայթ ենք գրում նրա ներքին գրանցամատյանում:
- MAX7219- ը մեկնաբանում է տվյալները:
- MAX7219- ը վերահսկում է մատրիցի LED- ները:
Դա նաև նշանակում է, որ մենք չպետք է անընդհատ պտտվենք LED- ների զանգվածի միջոցով դրանք լուսավորելու համար. MAX7219 կարգավորիչը հոգ է տանում դրա մասին: Այն կարող է նաև կառավարել LED- ների ինտենսիվությունը:
Այսպիսով, MAX7219 մոդուլները հարմարավետ օգտագործելու համար մեզ անհրաժեշտ է գործառույթների գրադարան `այդ նպատակին ծառայելու համար:
Նախ, մեզ անհրաժեշտ են մի քանի հիմնական գործառույթներ, որպեսզի գրենք MAX7219 ռեգիստրներին:
- Բայտ գրել MAX7219- ին:
- Բառ գրել (2 բայթ) MAX7219 համարին:
Ֆունկցիան, որը մեկ բայթ է գրում վերահսկիչին, այսպիսին է.
անվավեր max7219_byte (uint8_t տվյալներ) {for (uint8_t i = 8; i> = 1; i--) {PORTB & = ~ (1 << MAX7219_CLK); // CLK- ը սահմանել OWԱOWՐ, եթե (տվյալներ և 0x80) // Դիմակավորել տվյալների MSB- ը PORTB | = (1 << MAX7219_DIN]; // Սահմանել DIN- ը HIGH else PORTB & = ~ (1 << MAX7219_DIN]; // Սահմանել DIN- ը LOW PORTB | = (1 << MAX7219_CLK]; // CLK- ը սահմանել HIGH data << = 1; // Տեղափոխել ձախ}}
Այժմ, երբ մենք կարող ենք բայթ ուղարկել MAX7219- ին, կարող ենք սկսել հրամաններ ուղարկել: Սա արվում է ՝ ուղարկելով 2 բայ ՝ 1 -ին ներքին ռեգիստրի հասցեի համար, և 2 -րդ ՝ այն տվյալների համար, որոնք մենք կցանկանայինք ուղարկել:
MAX7219 վերահսկիչում կա մեկ տասնյակից ավելի գրանցամատյան:
Հրաման կամ բառ ուղարկելը հիմնականում 2 անընդմեջ բայթ է ուղարկում: Այն իրականացնող գործառույթը շատ պարզ է:
անվավեր max7219_word (uint8_t հասցե, uint8_t տվյալներ) {PORTB & = ~ (1 << MAX7219_CS); // CS- ն սահմանել LOW max7219_byte (հասցե); // հասցեն ուղարկելը max7219_byte (տվյալներ); // Տվյալների ուղարկում PORTB | = (1 << MAX7219_CS); // Սահմանել CS- ը HIGH PORTB & = ~ (1 << MAX7219_CLK); // CLK- ը սահմանել LOW}
Կարևոր է այստեղ նշել այն տողը, որտեղ մենք CS ազդանշանը վերադառնում ենք HIGH - սա նշում է հաջորդականության ավարտը, այս դեպքում `հրամանի ավարտը: Նմանատիպ տեխնիկան օգտագործվում է շղթայի մեջ միացված ավելի քան մեկ մատրիցա վերահսկելիս: Հաջորդ քայլը, նախքան LED- ները միացնելն ու անջատելը, MAX7219 կարգավորիչի նախաստորագրումն է: Դա արվում է որոշակի գրանցամատյաններում որոշակի արժեքներ գրելով: Հարմարության համար, այն կոդավորելիս մենք կարող ենք սկզբնաղբյուրի հաջորդականությունը դնել զանգվածի մեջ:
uint8_t initseq = {0x09, 0x00, // Decode-Mode Register, 00 = Առանց վերծանման 0x0a, 0x01, // Intensity Register, 0x00.. 0x0f 0x0b, 0x07, // Scan-Limit Register, 0x07 բոլոր տողերը ցուցադրելու համար 0x0c, 0x01, // Անջատման գրանցամատյան, 0x01 = Սովորական գործողություն 0x0f, 0x00, // Displayուցադրման թեստերի գրանցամատյան, 0x00 = Նորմալ շահագործում};
Մենք պարզապես պետք է ուղարկենք վերը նշված 5 հրամանները հաջորդականությամբ ՝ որպես հասցե/տվյալների զույգ: Հաջորդ քայլը `լուսարձակում LED- ների շարանը:
Սա շատ պարզ է. Մենք պարզապես գրում ենք մեկ հրաման, որտեղ 1 -րդ բայթը հասցեն է (0 -ից 7 -ը), իսկ 2 -րդ բայթը 8 բիթն է, որոնք ներկայացնում են շարանի 8 LED- ները:
անվավեր max7219_row (uint8_t հասցե, uint8_t տվյալներ) {if (address> = 1 && address <= 8) max7219_word (address, data); }
Կարևոր է նշել, որ այն կաշխատի միայն 1 մատրիցայի համար: Եթե շղթայի մեջ ավելի շատ մատրիցաներ կապենք, դրանք բոլորը ցույց կտան նույն տվյալները: Դրա պատճառն այն է, որ հրամանը ուղարկելուց հետո մենք CS ազդանշանը վերադառնում ենք HIGH, ինչը շղթայի բոլոր MAX7219 կարգավորիչների ստիպում է կողպվել և ցույց տալ, թե որն էր վերջին հրամանը:
Խորհուրդ ենք տալիս:
Ստեղծեք ձեր սեփական 15x10 RGB LED մատրիցը `10 քայլ
Ստեղծեք ձեր սեփականը 15x10 RGB LED մատրիցան. Այս տեսաշարքում ես ձեզ կներկայացնեմ, թե ինչպես կառուցել 15x10 RGB LED մատրիցա: Այս մատրիցան ունի 1,5 մ լայնություն և 1 մ բարձրություն: Այն բաղկացած է PL9823 RGB LED- ներից, որոնք սովորական WS2812 LED- ների էժան այլընտրանք են: Ես կխոսեմ այն մարտահրավերների մասին, որոնք
Ինչպես օգտագործել Max7219 8x8 կետային մատրիցը «skiiiD» - ով ՝ 9 քայլ
Ինչպես օգտագործել Max7219 8x8 կետային մատրիցը «skiiiD» - ով. Սա Max7219 8x8 Dot Matrix- ի վիդեո ցուցումն է " skiiiD " Սկսելուց առաջ, ստորև ներկայացված է skiiiD- ի օգտագործման հիմնական ձեռնարկը: /Getting-Started-W
Օգտագործելով LED մատրիցը որպես սկաներ. 8 քայլ (նկարներով)
Օգտագործելով LED մատրիցը որպես սկաներ. Սովորական թվային տեսախցիկներն աշխատում են ՝ օգտագործելով լույսի տվիչների մեծ զանգված, որպեսզի այն գրավեն լույսը, երբ այն արտացոլվում է օբյեկտից: Այս փորձի ժամանակ ես ուզում էի տեսնել ՝ կարո՞ղ եմ հետընթաց տեսախցիկ կառուցել. Լույսի տվիչների զանգված ունենալու փոխարեն, ես
Ինչպես տպել անհատական կերպար LCD- ով 8051 միկրոկառավարիչով `4 քայլ
Ինչպես տպել անհատական նիշ LCD- ով 8051 միկրոկառավարիչով: Այս նախագծում մենք ձեզ կպատմենք, թե ինչպես տպել անհատական բնույթ 16 * 2 LCD- ով `օգտագործելով 8051 միկրոկոնտրոլեր: Մենք LCD- ն օգտագործում ենք 8 բիթ ռեժիմով: Մենք կարող ենք նույնը անել նաև 4 բիթ ռեժիմով
Skateboard PIC միկրոկառավարիչով և LED- ներով. 8 քայլ (նկարներով)
Սքեյթբորդ PIC միկրոկառավարիչով և լուսադիոդներով. Ի՞նչ եք ստանում, երբ էլեկտրատեխնիկը զրոյից սկեյթբորդ է պատրաստում 13 -ամյա երեխայի ամանորյա նվերի համար: Դուք ստանում եք սքեյթբորդ ՝ ութ սպիտակ լուսադիոդով (լուսարձակներ), ութ կարմիր լուսադիոդով (հետույքով), որոնք բոլորը վերահսկվում են PIC միկրոտրոլերի միջոցով: Եվ ես գաղթում եմ