Բովանդակություն:
Video: Նիշերի հարմարեցված գեներատոր (Adafruit HT16k33 մատրիցա) ՝ 3 քայլ
2024 Հեղինակ: John Day | [email protected]. Վերջին փոփոխված: 2024-01-30 09:51
LCD- ների և լուսադիոդային մատրիցների վրա հատուկ կերպարների տպելը հիանալի ժամանց է: Հատուկ նիշերի կամ հատուկ նիշերի տպագրման կարգը յուրաքանչյուր տողի և սյունակի համար երկուական արժեքներով զանգված ստեղծելն է: Customանկացած կերպարի համար ճիշտ կոդը գտնելը կարող է բուռն լինել, հետևաբար, այս նախագիծը ավտոմատացնելու և ստեղծելու է ծածկագիր 8x8 առաջնորդվող մատրիցի համար, ինչպես նաև տպելու է անհատական կերպարը Adafruit HT16k33 8x8 երկգույն մատրիցով:
Adafruit HT16k33- ը, 1,2 '' 8x8 երկգույն Led Matrix- ը Arduino- ի հետ շփվում է I2C հաղորդակցության արձանագրության միջոցով:
Ըստ Ադաֆրուտի ՝ «LED ուսապարկի այս տարբերակը նախատեսված է 1.2» 8x8 մատրիցների համար: Նրանք ունեն ընդամենը 1.2 "x1.2" չափսեր, ուստի ամոթ է այն վերահսկելու համար օգտագործել չիպերի զանգվածային զանգված: Այս ուսապարկը լուծում է 16 կապում կամ մի քանի չիպսեր օգտագործելու վրդովմունքը ՝ ունենալով I2C մշտական հոսանքի մատրիցի վերահսկիչ, որը կոկիկ նստած է PCB- ի հետևի մասում: Հսկիչ չիպը հոգ է տանում ամեն ինչի մասին ՝ հետին պլանում գծելով բոլոր 64 LED- ները: Մնում է միայն տվյալներ գրել դրան ՝ օգտագործելով 2-փին I2C ինտերֆեյսը: Գոյություն ունեն հասցեների ընտրության երկու կապում, այնպես որ կարող եք ընտրել 8 հասցեներից մեկը `դրանցից մինչև 8-ը կառավարելու համար մեկ 2-պինանոց I2C ավտոբուսում (ինչպես նաև ցանկացած այլ I2C չիպ կամ սենսոր, որը Ձեզ դուր է գալիս): Վարորդի չիպը կարող է «մթնել» ամբողջ էկրանը 1/16 պայծառությունից մինչև լիարժեք պայծառություն 1/16 քայլերում: Այն չի կարող մարել առանձին LED- ները, միանգամից միայն ամբողջ էկրանը »:
Այս ուսանելի հոդվածում ես ձեզ կբացատրեմ, թե ինչպես ստանալ իրական ժամանակում ցանկացած հատուկ բնույթի ծածկագիր և տպել այդ բնույթը Led Matrix- ում:
Քայլ 1: Բաղադրիչներ
Սա ուսանելի է Adafruit HT16k33 Matrix- ի հիմնական նախագիծը: Քեզ պետք է:
- Adafruit HT16k33 1.2 "x 1.2" 8x8 երկգույն Led Matrix.
- Arduino (նախընտրելի է ցանկացած տարբերակ, բայց Uno):
- Breadboard
- Էներգամատակարարում
Քայլ 2: Սխեմատիկ
Adafruit HT16k33 Led մատրիցը շատ հեշտ է, քանի որ մենք պետք է միացնենք ժամացույցը և տվյալների կապը, ինչպես սովորաբար անում ենք I2C սարքերի համար: Կապերը նման կլինեն.
- SCL (Matrix- ի ժամացույցի կապում) միացված է A5- ին (Arduino Uno- ի ժամացույցի քորոց: Arduino- ի այլ տարբերակների համար տե՛ս տվյալների թերթիկը)
- SDA (Matrix- ի տվյալների քորոց) միացված է A4- ին: (Տե՛ս Arduino- ի այլ տարբերակների տվյալների թերթիկը)
- VCC միացված է 5V:
- GND միացված է 0 Վ լարման:
Կարող եք նաև խորհրդակցել նկարում ներկայացված սխեմատիկ պատկերի հետ:
Քայլ 3: Կոդ
Arduino կոդ
Նախ, մենք կներառենք բոլոր անհրաժեշտ գրադարանները:
- Wire.h:- I2C հաղորդակցության համար
- Adafruit_LedBackpack
- Adafruit_GFX
Այս բոլոր գրադարանները հասանելի են բուն Arduino IDE- ում: Պարզապես պետք է դրանք տեղադրել Գրադարանի կառավարչից: Էսքիզներ >> Ներառել գրադարանը >> Կառավարել գրադարանները
Կարգավորման գործառույթ ()
8-բիթանոց անստորագիր ամբողջ զանգված սահմանելով strore8 երկուական արժեքների 8 տողերի համար, յուրաքանչյուրը 8 բիթ (8 սյունակ): Նշեք I2C հաղորդակցության հասցեն:
Օղակի գործառույթ ()
Քանի որ մենք պետք է տպագրենք կերպարը, մեզ անհրաժեշտ է բնույթի կոդը իրական ժամանակում: Ամենահարմար մեթոդը կոդի սերիական ուղարկումն է, և Arduino- ն կկարդա սերիական տվյալները և համապատասխանաբար կտպագրի բնույթը: Serանգվածի սերիական ուղարկումը կարող է բուռն աշխատանք լինել, հետևաբար մենք կարող ենք ուղարկել տող բոլոր 8 կոդերով (յուրաքանչյուրը 8 բիթ), որոնք բաժանված են ստորակետներով:
Սերիալային լարերի ընթերցում.
if (Serial.available ()> 0) {data = Serial.readStringUntil ('\ n'); Serial.println (տվյալներ); }
Տեքստը կարդալուց հետո մենք պետք է վերծանենք այս տողը և վերադարձնենք երկուական արժեքները: Ինչպես գիտենք, մուտքագրման տողի ձևաչափը միշտ նույնն է լինելու: Մենք կարող ենք այն ծածկագրել ՝ ենթատողեր գտնելու և տողերը փոխելու իրենց տասնորդական համարժեք արժեքներին: Այնուհետև մենք կանցնենք գեներացվող տասնորդական զանգվածը (uint8_t) ՝ բնագիրը մատրիցով տպելու համար:
8 բիթերի տողը փոխակերպում տասնորդականի.
int val (լարային փող.) {int v = 0; համար (int i = 0; i <8; i ++) {if (str == '1') {v = v+հզորություն (2, (7-i)); }} վերադարձ v; }
Տասներորդ համարժեքը էներգիայի ֆունկցիայի միջոցով (pow ()) գնահատելու համար հարկավոր է զբաղվել կրկնակի տիպի արժեքներով, և, հետևաբար, մենք կարող ենք գրել մեր սեփական էներգիայի գործառույթը հետևյալ կերպ.
int հզորություն (int հիմք, int ցուցիչ) {int c = 1; համար (int i = 0; i {c = c*բազա;} վերադարձը c;}
Այժմ, վերջապես, մենք կգրենք ծածկագիրը ՝ նիշը տպելու համար ՝ օգտագործելով 8 տասնորդական արժեքների զանգված (մեկը յուրաքանչյուր տողի համար):
void print_emoji (uint8_t emoji , լարային գույն) {matrix.clear (); if (գույն == "կարմիր") {matrix.drawBitmap (0, 0, emoji, 8, 8, LED_RED); } else {matrix.drawBitmap (0, 0, emoji, 8, 8, LED_GREEN); } matrix.writeDisplay (); ուշացում (500); }
Դուք հեշտությամբ կհասկանաք այս ծածկագիրը, քանի որ մենք նախ մաքրում ենք մատրիցան, այնուհետև ցուցադրում ենք նիշը ՝ օգտագործելով emoji զանգվածը ՝ օգտագործելով matrix.drawBitmap () գործառույթը: Չմոռանաք գրել «matrix.writeDisplay ()» ամբողջ ձևաչափումից հետո, քանի որ այս գործառույթը կցուցադրի միայն մատրիցայի վրա մինչ այժմ կատարված բոլոր ձևաչափերը:
Այժմ դուք կարող եք ուղարկել տողը բոլոր կոդի արժեքներով, և Arduino- ն տպելու է նիշը մատրիցի վրա: Ստորև կարող եք ներբեռնել Arduino ծածկագիրը: Փորձնական նպատակով կարող եք գրել
B00111100, B01000010, B10100101, B10000001, B10100101, B10011001, B01000010, B00111100
այս տողը Serial Monitor- ում է և կարող է տեսնել մատրիցի բնույթը:
Այժմ, մենք պետք է սերիական տվյալները ավտոմատ կերպով ուղարկենք ծրագրակազմից, երբ սեղմում ենք «Տպել» կոճակը: Դա ավտոմատացնելու համար մենք պատրաստելու ենք ցուցադրական 8x8 մատրիցա և օգտագործողին տրամադրելու ենք հնարավորություն ընտրելու, թե որ բջիջները պետք է գունավորվեն, այնուհետև ծրագրակազմը ինքնաբերաբար կստեղծի ծածկագիրը և տվյալները հաջորդաբար կուղարկի Arduino- ին լարային ձևաչափով: Մնացած աշխատանքների համար ընտրեցի Processing: Մշակման ընթացքում մենք կարող ենք մատրիցա պատրաստել ՝ օգտագործելով 64 կոճակ (սեղմված գործառույթ ունեցող ուղղանկյուններ) և սկզբում կարող ենք նշանակել որոշակի արժեք և գույն (թող լինի սպիտակ գույնը 0 արժեքով): Այժմ, երբ կոճակը սեղմվում է, մենք կոճակի գույնը փոխում ենք սևի և արժեքը կդարձնենք 1: Եթե օգտվողը նորից կտտացնի նույն կոճակը, դրա արժեքը կրկին կփոխվի 0 -ի, իսկ գույնը ՝ կրկին սպիտակ: Սա կօգնի օգտվողին կրկին ու կրկին հեշտությամբ փոխել կոդը և կարող է հեշտությամբ փոփոխություններ կատարել ՝ առանց նորից ջնջելու ամբողջ մատրիցան: «Տպել» կոճակի կտտոցով մենք կկատարենք տող, որը նման է ցուցադրման համար վերևում նշվածին: Այնուհետեւ տողը կուղարկվի կոնկրետ սերիական նավահանգիստ:
Ստորև կարող եք ներբեռնել մշակման կոդը: Սա իմ մշակման առաջին կոդն է: Կոդավորման ընդլայնված եղանակի վերաբերյալ առաջարկությունները բարձր են գնահատվում:
Դուք կարող եք տեսնել, թե ինչ տեսք ունի GUI- ն և ինչպես է կերպարը ստեղծվում համակարգի միջոցով: Հազիվ թե վայրկյաններ կպահանջվեն մատրիցայի վրա նույն կերպարը ստեղծելու համար:
Դուք կարող եք ներբեռնել այս ծրագրի կոդը և պատկերները իմ GitHub պահոցից:
Խորհուրդ ենք տալիս:
Ստեղծեք հարմարեցված քարտեզներ ձեր Garmin GPS- ի համար. 8 քայլ (նկարներով)
Ստեղծեք հարմարեցված քարտեզներ ձեր Garmin GPS- ի համար. Եթե ունեք Garmin GPS, որը նախատեսված է արշավի և այլ բացօթյա գործունեության համար (ներառյալ GPSMAP, eTrex, Colorado, Dakota, Oregon և Montana շարքերը, ի թիվս մի քանի ուրիշների), ապա պարտադիր չէ բավարարվեք մերկ ոսկորների քարտեզներով, որոնք նախապես բեռնված էին դրա վրա: Ե
Ակրիլային գրասեղանի օդափոխիչ (հարմարեցված) `3 քայլ
Ակրիլային գրասեղանի երկրպագու (հարմարեցված). Ահա գրասեղանի կոկիկ փոքրիկ երկրպագու նրանց համար, ովքեր տանը ունեն միայն աշխատասեղանի նեղ տարածք և թարմ օդի կարիք ունեն դրանք շարունակելու համար: այն փոքր է, կարգավորելի և աշխատում է USB- ի կողմից, այնպես որ մարտկոցներ չեն պահանջվում, գրեթե չի լիցքավորում ձեր համակարգչից և մնում է r
Եղանակի վրա հիմնված երաժշտության գեներատոր (ESP8266 վրա հիմնված միջինի գեներատոր). 4 քայլ (նկարներով)
Եղանակի վրա հիմնված երաժշտության գեներատոր (ESP8266 Based Midi Generator). Բարև, այսօր ես կբացատրեմ, թե ինչպես պատրաստել ձեր սեփական եղանակի վրա հիմնված փոքր երաժշտության գեներատոր: Այն հիմնված է ESP8266- ի վրա, որը նման է Arduino- ին և արձագանքում է ջերմաստիճանին, անձրևին: և լույսի ուժգնություն: Մի ակնկալեք, որ այն ամբողջ երգեր կամ ակորդներ կհաղորդի
Գեներատոր - DC գեներատոր օգտագործելով Reed Switch: 3 քայլ
Գեներատոր. փոփոխություններ
Նիշերի LCD I2c ադապտեր (I2c միացման օրինակ). 12 քայլ (նկարներով)
Նիշերի LCD I2c ադապտեր (I2c միացման օրինակ). Ես կատարում եմ միացման սխեմա կերպարների ցուցադրման i2c ադապտերի համար: Ստուգեք թարմացումները իմ կայքում: Այժմ ես նաև ավելացնում եմ էլեկտրագծերի միացման սխեմա `օրիգինալ գրադարանից ոչ թե իմ պատառաքաղը օգտագործելու համար: բնույթի LCD էկրանների համար, պատառաքաղ նախագիծ