Բովանդակություն:
- Քայլ 1: Այն, ինչ մենք պատրաստվում ենք սովորել այսօր
- Քայլ 2: Սարքավորման պահանջ
- Քայլ 3: Ի՞նչ է OLED էկրանը:
- Քայլ 4:
- Քայլ 5: Ավելի մոտ տեսք
- Քայլ 6: Գրադարան
- Քայլ 7:
- Քայլ 8 ՝ 128 X 64/32 OLED սարքերի միացում
- Քայլ 9: Կոդ
- Քայլ 10: Տեքստի անհատականացում և պատկերների ավելացում
- Քայլ 11. Միացրեք 2 ցուցադրում
- Քայլ 12: Ավելի քան 2 ցուցադրման միացում
- Քայլ 13: Առավելություններն ու թերությունները
- Քայլ 14: Ընդհանուր սխալներ
- Քայլ 15: Հղումներ
Video: OLED I2C Display Arduino/NodeMCU ձեռնարկ ՝ 15 քայլ
2024 Հեղինակ: John Day | [email protected]. Վերջին փոփոխված: 2024-01-30 09:50
Առաջին ծրագիրը, որը գրում եք, երբ սկսում եք սովորել ա
ծրագրավորման նոր լեզուն է ՝ «Բարև աշխարհ»:
Itselfրագիրն ինքնին ոչ այլ ինչ է անում, քան էկրանին «Բարև աշխարհ» տեքստի տպում:
Այսպիսով, ինչպե՞ս ենք մենք ստիպում մեր Arduino- ին ցուցադրել «Բարև աշխարհ»:
Այս տեսանյութում ես ձեզ ցույց կտամ, թե ինչպես սկսել փոքր 0.91 (128x32) և 0.96 (128x64) փոքր I2C OLED էկրաններով:
Համացանցում կան 100 -ական ձեռնարկներ, որոնք նույնը բացատրում են տարբեր ձևերով, բայց ես չգտա մեկը, որն ինձ ամեն ինչ կպատմի OLED էկրանին և ինչպես այն օգտագործել տարբեր սցենարներում: Ինձանից որոշ ժամանակ պահանջվեց ՝ ամեն ինչ մշակելու համար: Այսպիսով, ես մտածեցի, որ պետք է իմ սովորածի վերաբերյալ ձեռնարկ ստեղծեմ և համատեղեմ բոլոր այն հնարավորություններն ու եղանակները, որոնցով OLED էկրանները կարող են օգտագործվել մեր նախագծերում:
Քայլ 1: Այն, ինչ մենք պատրաստվում ենք սովորել այսօր
Այս տեսանյութում մենք կխոսենք հետևյալի մասին.
- Ի՞նչ է OLED էկրանը:
- Այնուհետև մենք ավելի սերտորեն կանդրադառնանք 0.91 (128x32) և 0.96 (128x64) I2C OLED էկրաններին:
- Հաջորդը մենք կխոսենք Adafruit գրադարանը ձեր Arduino IDE- ում տեղադրելու մասին
- Հետո մենք NodeMCU- ն և Arduino- ն կկապենք OLED էկրանին
- Հաջորդը մենք կնայենք ծածկագրին և դրա վրա կցուցադրենք որոշ գրաֆիկա և տեքստ
- Մենք նաև կխոսենք Պատվերով տառատեսակներ կիրառելու և Պատկերներ ցուցադրելու մասին
- Այնուհետև մենք բազմաթիվ OLED- ներ կմիացնենք միկրոհսկիչին `օգտագործելով I2C Multiplexer- ը
- Ի վերջո, մենք կխոսենք մի քանի սովորական սխալների մասին, որոնք մարդիկ թույլ են տալիս OLED էկրաններն օգտագործելիս
Քայլ 2: Սարքավորման պահանջ
Այս ձեռնարկի համար մեզ անհրաժեշտ է.
- A Breadboard
- A 0.91 "(128x32) և 0.96" (128x64) I2C OLED էկրաններ
- Arduino UNO/NANO (ինչ հարմար է)
- NodeMCU
- TCA9548A I2C մուլտիպլեքսեր
- Մի քանի միացնող մալուխ
- և USB մալուխ ՝ ծածկագիրը վերբեռնելու համար
Քայլ 3: Ի՞նչ է OLED էկրանը:
OLED կամ օրգանական լուսադիոդ է լույս արձակող
դիոդ (LED), որում արտանետվող էլեկտրալույսը շերտը օրգանական միացության ֆիլմ է (միլիոնավոր փոքր LED լույսեր), որը լույս է արձակում ի պատասխան էլեկտրական հոսանքի:
OLED- ն օգտագործվում է թվային ցուցադրումներ ստեղծելու համար այնպիսի սարքերում, ինչպիսիք են հեռուստատեսային էկրանները, համակարգչային մոնիտորները, շարժական համակարգերը, ինչպիսիք են բջջային հեռախոսները, ձեռքի խաղային կոնսուլները և PDA- ն: OLED էկրանն աշխատում է առանց հետևի լուսավորության, քանի որ այն արտանետում է տեսանելի լույս:
Քայլ 4:
Կան բազմաթիվ OLED էկրաններ
շուկան ՝ հիմնվելով դրանց վրա
- Չափերը
- գույնը
- Ապրանքանիշեր
- Արձանագրություն
- SPI (Սերիական ծայրամասային միջերես) կամ I2C
-Պասիվ մատրիցային (PMOLED) կամ ակտիվ մատրիցային (AMOLED) վերահսկման սխեմա
Այս ձեռնարկում ես խոսելու եմ միացման մասին
կապույտ գույնը 0.91 (128x32 OLED) և 0.96 (128x64 OLED) I2C OLDE էկրաններ Arduino NANO- ին և NodeMCU- ին: I2C ավտոբուսային տեխնոլոգիան օգտագործում է MCU- ի ընդամենը 2 կապում, այնպես որ մենք ունենք կույտեր այլ սենսորների համար:
Քայլ 5: Ավելի մոտ տեսք
Եկեք ավելի մոտիկ լինենք այս երկու էկրաններին:
Այս էկրանների հետևում կան SMD կոնդենսատորների և կուտակիչների կույտեր, որոնք սոսնձված են ինքնաթիռում. բայց, քանի որ դա I2C սարք է, մենք մտածում ենք միայն այս 2 կապի մասին (SCL և SDA)
Էկրանը միանում է Arduino- ին ՝ օգտագործելով ընդամենը չորս լար ՝ երկուսը հոսանքի համար (VCC և GND) և երկուսը ՝ տվյալների համար (սերիական ժամացույց SCL և
սերիական տվյալներ SDA) ՝ էլեկտրագծերը շատ պարզ դարձնելով: Տվյալների կապը I2C է (I²C, IIC կամ Inter-Integrated Circuit) և այս ինտերֆեյսը կոչվում է նաև TWI (Two Wire Interface):
- Ինքնաթիռի քորոցները կարող են լինել տարբեր կարգով, այնպես որ միշտ եռակի ստուգեք նախքան այն ձեր նախագծին միացնելը:
- Գործողության լարումը 3v- ից 5v- ի միջև է, բայց լավագույնն է օգտագործել արտադրողի տվյալների թերթի ցուցումները:
- Երբեմն մենք պետք է 2 ցուցադրում օգտագործենք մեր նախագծերում: Այսպիսով, ինչպե՞ս կարող ենք հասնել դրան:
Հնարքն այն է, որ ձեր էկրանին կարգավորելի հասցե ունենաք: Այս միավորն ունի կարգավորելի հասցե 0x78 և 0x7A միջև: Պարզապես 0 Օմ դիմադրողը մի կողմից չվաճառելով և այն մյուս կողմից խեղդելով կամ պարզապես գլոբալ զոդ տեղադրելով, մենք կարող ենք փոխել հասցեն: Մենք դրա մասին ավելի խորը կխոսենք, երբ մի քանի էկրան միացնենք Arduino- ին այս ձեռնարկի վերջին հատվածում:
Նկարում այս ցուցադրումները շատ մեծ տեսք ունեն: Բայց, գործնականում ասած, դրանք փոքր են: Դրանք պատրաստված են 128 x 32/64 անհատական OLED պիքսելներից և հետին լուսավորություն չեն պահանջում: Պարզապես նայեք սա և տեսեք, թե որքան փոքր է այն: Չնայած դրանք փոքր են, դրանք կարող են շատ օգտակար լինել ցանկացած էլեկտրոնային նախագծերում:
Քայլ 6: Գրադարան
Կան մի քանի գրադարաններ դրանք վերահսկելու համար
ցուցադրում. Նախկինում ես օգտագործել եմ «u8glib գրադարանը», բայց ինձ թվում է, որ AdaFruit գրադարանը շատ հեշտ է հասկանալ և օգտագործել մեր նախագծերում: Այսպիսով, ես պատրաստվում եմ օգտագործել AdaFruit գրադարանը այս ձեռնարկում:
OLED էկրանը վերահսկելու համար ձեզ հարկավոր է «adafruit_GFX.h» գրադարանը և «adafruit_SSD1306.h» գրադարանը:
Երկու եղանակ կա, որոնցով կարող եք գրադարանը ներբեռնել և տեղադրել ձեր Arduino IDE- ում:
Մեթոդ 1
Գնացեք «Գրադարանի կառավարիչ» և որոնեք «adafruit_SSD1306» և «adafruit_gfx»
Ընտրեք վերջին տարբերակը և կտտացրեք Տեղադրեք կոճակը:
Տեղադրվելուց հետո կարող եք օգտագործել այս գրադարանները ձեր ծրագրում:
Մեթոդ 2
Այս երկու գրադարանները կարելի է ներբեռնել նաև github- ից (երկուսն էլ ձեզ պետք են).
Ստորև բերված նկարագրության հղումները կտրամադրեմ:
Theուցադրման գրադարան ՝
GFX գրադարանը ՝
Ներբեռնելուց հետո պատճենեք Adafruit_SSD1306- հիմնական թղթապանակը ներբեռնված սեղմված ֆայլից Arduino գրադարանների պանակում: Այս թղթապանակը սովորաբար գտնվում է Փաստաթղթեր> Arduino> գրադարաններ Windows համակարգերում: Linux- ում այն սովորաբար գտնվում է տան թղթապանակում> Arduino> գրադարաններ: Վերջապես Arduino գրադարանի թղթապանակում Adafruit_SSD1306-master թղթապանակը վերանվանեք Adafruit_SSD1306: Նույնիսկ եթե չանվանափոխեք, դա լավ է:
Քայլ 7:
Այժմ, եկեք դիտենք «Adafruit_SSD1306.h»
ֆայլը
Երկու բան, որ մենք պետք է իմանանք այս գրադարանում.
1. Եթե ցանկանում եք օգտագործել փոքր էկրանը, օգտագործեք լռելյայն 128_32, հակառակ դեպքում ավելի մեծ ցուցադրման համար մեկնաբանեք 128_32 -ը և մեկնաբանեք 128_64 -ը:
2. Եթե դուք զոդել եք 0x7A հասցեն գրատախտակին (որի մասին մենք կխոսենք ավելի ուշ), ապա ավելի մեծ ցուցադրումների համար օգտագործեք 7 բիթանոց 0x3D հասցեն, հակառակ դեպքում օգտագործեք կանխադրված 0x3C հասցեն: Փոքր էկրանների համար հասցեն 0x3C է:
Քայլ 8 ՝ 128 X 64/32 OLED սարքերի միացում
Եկեք սկսենք ՝ NodeMCU- ն միացնելով էկրանին:
Առաջին և ամենակարևոր բանը, որ պետք է նշել, այն է, որ որոշ ցուցափեղկերում կարող են փոխվել GND և VCC հոսանքի պինները: Ստուգեք ձեր էկրանը `համոզվելու համար, որ այն նույնն է, ինչ պատկերը: Եթե կապումներն փոխված են, համոզվեք, որ փոխեք Arduino- ի կամ NodeMCU- ի միացումները:
- NodeMCU OLED լարեր
OLED VCC - NodeMCU 3.3V
OLED GND - NodeMCU GND
OLED SCL - NodeMCU D1
OLED SDA - NodeMCU D2
- Arduino Uno OLED լարեր
OLED VCC - Arduino 5V
OLED GND - Arduino GND
OLED SCL - Arduino Uno A5
OLED SDA - Arduino Uno A4
- Arduino MEGA 2560 OLED լարեր
OLED VCC - Arduino 5V
OLED GND - Arduino GND
OLED SCL - Arduino MEGA 2560 փին 21
OLED SDA - Arduino MEGA 2560 փին 20
Քայլ 9: Կոդ
Adafruit գրադարանը երկուսի համար իսկապես լավ օրինակներ է բերում
128x32 և 128x64 էկրաններ:
Գրադարանը գտնվում է Ֆայլ> Օրինակներ> Adafruit SSD1306> և այնուհետև ցուցադրման տեսակը Arduino IDE- ում:
Մենք պատրաստվում ենք օգտագործել 128x32 I2C օրինակը և կփոխենք այն, որպեսզի աշխատի ինչպես 128x64, այնպես էլ 128x32 էկրանների բռունցքով ՝ այն միացնելով Arduino- ին, այնուհետև NodeMCU տախտակին:
Կոդը սկսվում է ՝ ներառելով Adafruit- ի երկու գրադարանները: Այս ձեռնարկում ես շեշտելու եմ ծածկագրի միայն այն հատվածները, որոնք անհրաժեշտ են, որպեսզի մենք բեռնվենք ինչպես տախտակներում, այնպես էլ էկրաններին: Եթե ցանկանում եք ավելին իմանալ ծածկագրի մասին, գրեք մեկնաբանություն իմ բլոգում կամ ստորև բերված մեկնաբանությունների բաժնում, և ես կփորձեմ վերադառնալ ձեզ:
- Սկզբում մենք կբեռնենք կոդը 128x32 էկրանին միացված Arduino Nano- ում:
Մենք կարող ենք օգտագործել ծածկագիրը այնպես, ինչպես կա, առանց որևէ փոփոխության:
128x32- ը օգտագործում է 0x3C հասցե, ուստի այս բիթն այստեղ ամեն ինչ լավ է թվում, թույլ է տալիս կրկնակի ստուգել վերնագրերի գրադարանը, այո, այն նաև օգտագործում է 0x3C հասցեն, իսկ ցուցադրման տիպը ՝ 128x32:
- Հիմա եկեք միացնենք 128x64 էկրանը: Ինչպես գիտենք, այն լռելյայն օգտագործում է 0x3C հասցեն, այնպես որ մենք կարիք չունենք հասցեն թարմացնելու ո՛չ ծածկագրում, ո՛չ գրադարանում:
Մեզ պարզապես անհրաժեշտ է մեկնաբանել 128_32 -ը և մեկնաբանել 128_64 -ը վերնագրի գրադարանում և փոխել LCDHEIGHT- ը 64 -ի մեր ծածկագրում:
- Այժմ նույն ծածկագիրը NodeMCU- ում գործարկելու համար մենք պետք է փոխենք ևս մեկ տող մեր ծածկագրում:
«#Սահմանեք OLED_RESET 4»> «#սահմանեք OLED_RESET LED_BUILTIN» ծածկագրի մնացած մասը նույնն է, ինչ Arduino- ն
Շատ բան ցուցադրելու համար մեզ անհրաժեշտ է առաջին էկրանը մաքրելու համար
display.clearDisplay (); // Մաքրել բուֆերը
Այնուհետեւ նկարեք օբյեկտը
testdrawline (); // Գծիր գիծ
Showույց տվեք այն սարքավորման վրա
display.display (); // Դարձրեք դրանք տեսանելի ցուցադրման սարքավորման վրա:
Սպասեք որոշ ժամանակ, մինչև հաջորդ տարրը ցուցադրելը:
ուշացում (2000); // Սպասեք 2 վայրկյան
Այս օրինակում մենք ցուցադրում ենք մի քանի տարրեր, ինչպիսիք են տեքստը, տողերը, շրջանակները, ոլորման տեքստը, եռանկյունիները և այլն: Առաջ գնացեք և գործադրեք ձեր երևակայությունը և ցուցադրեք այն, ինչ ցանկանում եք այս փոքրիկ էկրաններին:
Քայլ 10: Տեքստի անհատականացում և պատկերների ավելացում
Երբեմն ձեր կոդը պետք է ցուցադրի հարմարեցված տառատեսակներ և
պատկերներ: Եթե դուք շատ լավ տիրապետում եք բիտ քարտեզագրմանը, ապա պարզապես անհրաժեշտ է ստեղծել բայթային զանգվածներ ՝ միացնելով կամ անջատելով ցուցադրման փոքրիկ LED- ները `հատուկ տառատեսակներ և պատկերներ ստեղծելու համար:
Այնուամենայնիվ, ես շատ լավ չեմ կատարում այս քարտեզագրումները և չեմ ցանկանում ժամեր ծախսել բիտ քարտեզի աղյուսակներ ստեղծելու վրա:
Այսպիսով, որո՞նք են իմ տարբերակները: Ես հիմնականում օգտագործում եմ երկու վեբ կայք ՝ սովորական տառատեսակներ և պատկերներ ստեղծելու համար: Հղումները տրված են ստորև նկարագրության մեջ:
Պատվերով տառատեսակներ
Գնացեք տառատեսակի փոխարկիչ կայք, ընտրեք տառատեսակների ընտանիքը, ոճը, չափը, Գրադարանի տարբերակը որպես «Adafruit GFX տառատեսակ», այնուհետև կտտացրեք «Ստեղծել» կոճակին: Այս էջի աջ կողմում կարող եք տեսնել, թե ինչպիսին կլինի ձեր տառատեսակը իրական էկրանին:
Ձեր ընտրության հիման վրա վեբ էջը ստեղծում է տառատեսակների վերնագրի ֆայլ: Ստեղծեք «modified_font.h» անունով ֆայլ ՝ նույն պանակում, որտեղ գտնվում է ձեր ծածկագիրը և պատճենեք և պահեք դրա մեջ ստեղծված գիծը: Այնուհետև պարզապես անհրաժեշտ է ներառել վերնագրի ֆայլը ձեր ծածկագրում `սովորական տառատեսակ օգտագործելու համար:
#ներառել «փոփոխված_ֆոնտ.հ»
Այնուհետև, պարզապես անհրաժեշտ է սահմանել տառատեսակը նախքան տեքստը ցուցադրելը `դրանով հարմարեցված տառատեսակը կիրառելու համար:
display.setFont (& Your_Fonts_Name);
Դուք կարող եք ստանալ տառատեսակի անունը վերնագրի ֆայլից, որը դուք պարզապես ավելացրել եք ձեր նախագծին: Դա այդպես է, հեշտ:
Հիշողությունը միշտ անհանգստություն է առաջացնում սովորական տառատեսակներ օգտագործելիս, այնպես որ միշտ հաշվի առեք այն բայթերը, որոնք սպառվելու են հիշողության մեջ: Պարզապես հիշեք, որ Arduino UNO- ն ունի ընդամենը 32K հիշողություն:
Պատվերով պատկերներ
Ձեր էկրանին bitmap պատկեր ցուցադրելու համար նախ պետք է ստեղծել 128 x 64/32 չափի պատկեր:
Ես օգտագործում եմ հին հին «MS Paint» - ը ՝ 128 x 64 bitmap պատկեր ստեղծելու համար, որն այնուհետև կբեռնեմ այս պատկերի փոխարկիչ կայքում: Կայքը պատկերները փոխակերպում է բայթ-տողերի, որոնք կարող են օգտագործվել Arduino և OLED էկրաններով:
Սկսեք ՝ պատկերը տեղադրելով կայքում: Այնուհետև նշեք «Invert image գույները» վանդակը և «Ելքի կոդի ձևաչափը» փոխեք «Arduino Code»-ի, այնուհետև ընտրեք կողմնորոշումը և կտտացրեք «Ստեղծել կոդ» կոճակին ՝ բայթ զանգված ստեղծելու համար: «Նախադիտում» բաժինը ցույց է տալիս, թե ինչպիսին կլինի ձեր պատկերը իրական էկրանին:
Այս ձեռնարկի հետ միասին ես ներառել եմ ծածկագիրը, որը կարող եք օգտագործել ձեր պատկերները ցուցադրելու համար: Պարզապես պետք է իմ ծածկագրի զանգվածը փոխարինել նոր ստեղծածով, այնուհետև այն բեռնել ձեր Arduino- ում:
Քայլ 11. Միացրեք 2 ցուցադրում
Երկու 128 x 64 էկրան ձեր նախագծին միացնելը հեշտ է:
Պարզապես պետք է ապավաճառել 0Ohm դիմադրիչը 0x78 հասցեից և տեղադրել այն 0x7A- ի վրա, այնուհետև ձեր ծածկագրում օգտագործել 0x3D հասցեն ՝ կանխադրված 0x3C- ի փոխարեն:
Դուք պետք է մտածեք, թե ինչու ենք մենք օգտագործում 0x3C և 0x3D հասցեները, այլ ոչ թե իրական 0x78 և 0x7A: Arduino- ն ընդունում է 7-բիթանոց հասցեն և ոչ թե 8-բիթանոց ապարատային հասցեները: Այսպիսով, մենք նախ պետք է փոխարկենք 8-բիթանոց հասցեն երկուական, այնուհետև կտրենք ամենաքիչ նշանակալի բիթը ՝ 7 բիթ ստանալու համար: Այնուհետև փոխարկեք 7 բիթը HEX- ի ՝ 0x3C կամ 0x3D հասցեները ստանալու համար, որոնք մուտքագրում եք ձեր ծածկագրում:
Նախ, նախաստորագրեք ցուցադրումը ՝ դրան տալով եզակի անուն.
Adafruit_SSD1306 ցուցադրում 1 (OLED_REST);
Adafruit_SSD1306 ցուցադրում 2 (OLED_REST);
Այնուհետև ձեր ծածկագրում օգտագործեք ցուցադրման 1 -ը և էկրանը 2 -ը ՝ սկզբնական հայտարարությունները կանչելու համար, որոնցում կան սարքի հասցեներ:
ցուցադրում 1. սկիզբ (SSD1306_SWITCHCAPVCC, 0x3C); // ցուցադրել 1 op հասցե 0x3C
display2.begin (SSD1306_SWITCHCAPVCC, 0x3D); // ցուցադրել 2 op հասցեն 0x3D
Ահա և վերջ, այժմ կարող եք առաջ գնալ և անել այն, ինչ ցանկանում եք ՝ օգտագործելով ցուցադրման 1 -ը կամ ցուցադրումը 2 -ը ձեր մնացած ծածկագրում: Ես այս ձեռնարկի օրինակ եմ բերել:
Էլեկտրամոնտաժը ճիշտ նույնն է, ինչ մենք արել ենք նախկինում, պարզապես անհրաժեշտ է մեկ այլ ցուցադրում ավելացնել Arduino- ի կամ NodeMCU- ի նույն I2C կապում: Հասցեների հիման վրա MCU- ն այնուհետև տվյալները ուղարկում է I2C տվյալների տողում:
Քայլ 12: Ավելի քան 2 ցուցադրման միացում
Հիմա ի՞նչ անել, եթե ցանկանում եք միացնել ավելի քան 2 էկրան:
Arduino- ն ունի սահմանափակ քանակությամբ կապում և, հետևաբար, դուք չեք կարող դրան ամրացված ունենալ ավելի քան որոշակի քանակությամբ վահան: Ավելին, այն ունի միայն մեկ զույգ I2C ավտոբուս:
Այսպիսով, ինչպե՞ս կարող ենք ավելի քան 2 I2C էկրան կցել Arduino- ին: Խաբեությունը TCA9548 Multiplexer- ի օգտագործումն է:
TCA9548- ը թույլ է տալիս մեկ միկրոհսկիչին հաղորդակցվել մինչև «64 սենսորների» հետ, որոնք ունեն նույն կամ տարբեր I2C հասցե ՝ յուրաքանչյուր սենսորային ստրոբուսին հատկացնելով յուրահատուկ ալիք:
Երբ մենք խոսում ենք երկու սարքերի վրա տվյալներ ուղարկելու մասին բազմաթիվ սարքեր, ապա մեզ անհրաժեշտ է դրանց հասցեագրման միջոց: Դա նույնն է, ինչ փոստատարը գա մեկ ճանապարհով և փոստի փաթեթները գցի տարբեր տներ, քանի որ դրանց վրա տարբեր հասցեներ են գրված:
Multiplexer- ը միանում է միկրոկառավարիչի 3V3, GND, SDA և SCL գծերին: Ստրուկի տվիչները միացված են տախտակի վրա տեղադրված SCL/SDA ստրուկի ութ պորտերից մեկին: Ալիքներն ընտրվում են ՝ TCA9548A- ին ուղարկելով իր I2C հասցեն (0x70 {կանխադրված} - 0x77), որին հաջորդում է ալիքի համարը (0b00000001 - 0b10000000): Այս մուլտիպլեքսերներից առավելագույնը 8-ը կարող եք միացված լինել 0x70-0x77 հասցեների վրա `նույն I2C հասցեագրված մասերից 64-ը վերահսկելու համար: A0, A1 և A2 հասցեների երեք բիթերը VIN- ին միացնելով կարող եք ստանալ հասցեների տարբեր համադրություն: Ես դա մանրամասն կբացատրեմ TCA9548A ճեղքման տախտակի իմ հաջորդ ձեռնարկում: Առայժմ, պարզապես միացրեք 8 OLED սարք այս տախտակին և արագ նայեք ծածկագրին:
Միացում:
VIN- ից 5V (կամ 3.3V)
GND գետնին
SCL- ից I2C ժամացույց
SDA- ից մինչև I2C տվյալներ
Այնուհետև տվիչները տվեք VIN, GND և օգտագործեք SCn / SDn մուլտիպլեքս ավտոբուսներից մեկը
Այժմ, Int կոդը թույլ է տալիս սկսել ՝ ներառելով «Մետաղալար» գրադարանը և բազմապատկիչների հասցեն սահմանելով:
#ներառել «Wire.h»
#ներառում
#սահմանեք MUX_Հասցե 0x70 // TCA9548A Կոդավորիչների հասցե
Այնուհետև մենք պետք է ընտրենք այն նավահանգիստը, որին ցանկանում ենք հաղորդակցվել և դրա վերաբերյալ տվյալները ուղարկել այս գործառույթի միջոցով.
դատարկ tcaselect (uint8_t i) {
եթե (i> 7) վերադարձ;
Wire.beginTransmission (MUX_ Հասցե);
Wire.write (1 << i);
Wire.endTransmission ();
}
Հաջորդը մենք նախաստորագրելու ենք ցուցադրման կարգաբերման բաժինը `զանգահարելով« u8g.begin (); »; MUX- ին կցված յուրաքանչյուր ցուցադրման համար "tcaselect (i);"
Նախաստորագրվելուց հետո մենք կարող ենք անել այն, ինչ ուզում ենք, պարզապես գործառույթը կանչելով «tcaselect (i);»: որտեղ «i» - ը բազմապատկված ավտոբուսի արժեքն է, այնուհետև տվյալներն ու ժամացույցը համապատասխանաբար ուղարկելը:
Քայլ 13: Առավելություններն ու թերությունները
OLED- ի պատկերը գեղեցիկ է: Այնուամենայնիվ, OLED- ները նույնպես ունեն
թերություններ: Քանի որ OLED էկրանները պարունակում են օրգանական նյութեր, դրանց կյանքի տևողությունը ավելի կարճ է, քան LCD էկրանները: Բացի այդ, շատ OLED էկրաններ այրվում են նույն պատկերը երկար ժամանակ ցուցադրելուց հետո: Այրվելուց հետո պատկերը մնում է էկրանին նույնիսկ մեկ այլ պատկեր ցուցադրելուց հետո: Այսպիսով, համոզվեք, որ անընդհատ թարմացնում եք էկրանը ամեն մի վայրկյանը մեկ: Waterուրը կարող է ակնթարթորեն վնասել այդ ցուցադրման օրգանական նյութերը:
Առավելությունները
Հետին լուսավորության կարիք չկա
Disուցադրումները շատ բարակ են և թեթև
Powerածր էներգիայի սպառումը
Դիտման անկյուններն ավելի լայն են, քան LCD- ները
Պայծառությունն ու հակադրությունը հիանալի են
Բարձր արագություն և ցածր արձագանքման ժամանակ
Խորը սև գույն
Թերություններ
Թանկարժեք տեխնոլոգիա
Կարճ կյանքի ցիկլ
OLEDS- ն ավելի հավանական է, որ այրվի
Waterրի վնաս
Քայլ 14: Ընդհանուր սխալներ
Ուսուցումն ավարտելու համար եկեք խոսենք մի քանի սովորական սխալների մասին
մարդիկ կատարում են այս ցուցադրումները օգտագործելիս.
- Միշտ եռակի ստուգեք քորոցները ՝ ձեր նախագծում օգտագործելուց առաջ
- Վերցրեք գրադարանի ճիշտ հասցեն վերնագրի ֆայլում և ձեր ծածկագրում
#սահմանեք SSD1306_I2C_ADDRESS 0x3C // Adafruit_SSD1306.h- ում
եւ
display.begin (SSD1306_SWITCHCAPVCC, 0x3C); // ձեր ծածկագրում
Եթե հասցեն սխալ է, OLED- ը ոչինչ չի ցուցադրի
- Theուցադրման չափը պետք է փոխվի վարորդի մեջ, նախքան այն օգտագործելը: Եթե այն չփոխվի, դուք կստանաք սխալի հաղորդագրություն, երբ փորձում եք ստուգել կոդը
#սխալ («Բարձրությունը սխալ է, խնդրում ենք շտկել Adafruit_SSD1306.h!»);
- Եթե օգտագործում եք NodeMCU- ն, համոզվեք, որ OLED_RESET- ը փոխարինում եք 4 -ից մինչև LED_BUILTIN
#սահմանեք OLED_RESET LED_BUILTIN
Ես ունեմ տեսարաններ, ովքեր ամեն տեսակ բաներ են պատրաստում ՝ օգտագործելով այս OLED էկրանը: Ոմանք նույնիսկ տեսախաղեր են պատրաստել և բոլորը: Ես իսկապես շահագրգռված չեմ տեսախաղ պատրաստել այս փոքրիկ ցուցադրման միջոցով: Այնուամենայնիվ, ես հիմա ձեզ կթողնեմ ՝ ուսումնասիրելու ձեր երևակայությունը և հանդես գալու զարմանալի գաղափարներով:
Քայլ 15: Հղումներ
- Օրագիր ՝
- Ավելացնել պատկեր ՝
- Պատվերով տեքստ ՝
- Adafruit ցուցադրման գրադարան ՝
-Adafruit GFX գրադարան ՝
- u8glib գրադարան ՝ https://code.google.com/archive/p/u8glib/ կամ
Եթե ցանկանում եք օգտագործել ավելի փոքր էկրան, օգտագործեք լռելյայն 128_32, հակառակ դեպքում ավելի մեծ ցուցադրման համար մեկնաբանեք 128_32 -ը և մեկնաբանեք 128X64 NO_ACK- ը ձեր ծածկագրում (պարզապես մեկնաբանեք ձեր օգտագործած էկրանի տեսակը) (տառատեսակները տառատեսակների գրադարանում են)
Խորհուրդ ենք տալիս:
Arduino և VL53L0X Թռիչքի ժամանակ + OLED ցուցադրման ձեռնարկ ՝ 6 քայլ
Arduino և VL53L0X Time-of-Flight + OLED Display Tutorial: Այս ձեռնարկում մենք կսովորենք, թե ինչպես ցուցադրել հեռավորությունը մմ-ով ՝ օգտագործելով VL53L0X Time-of-Flight սենսորը և OLED էկրանը: Դիտեք տեսանյութը
Ուսումնական ձեռնարկ. Ինչպես է Arduino- ն վերահսկում մի քանի նույն հասցեի սարքերը `օգտագործելով TCA9548A I2C մուլտիպլեքսերը` 3 քայլ
Ուղեցույց. Ինչպես է Arduino- ն վերահսկում բազմաթիվ նույն հասցեների սարքերը ՝ օգտագործելով TCA9548A I2C մուլտիպլեքսեր: Նկարագրություն. TCA9548A I2C Multiplexer մոդուլը հնարավորություն է տալիս միացնել միևնույն միկրոկոնտրոլերի վրա միացված I2C հասցեով սարքերը (մինչև 8 նույն հասցեի I2C): Մուլտիպլեքսորը հանդես է գալիս որպես դարպասապահ ՝ հրամանները փակելով ընտրված հավաքածուին
Raspberry Pi - HIH6130 I2C խոնավության և ջերմաստիճանի տվիչ Python ձեռնարկ. 4 քայլ
Raspberry Pi - HIH6130 I2C Խոնավության և ջերմաստիճանի տվիչ Python ձեռնարկ. HIH6130- ը խոնավության և ջերմաստիճանի տվիչ է ՝ թվային ելքով: Այս տվիչները ապահովում են. 4% RH ճշգրտության մակարդակ: Արդյունաբերության առաջատար երկարաժամկետ կայունությամբ, իսկական ջերմաստիճանի փոխհատուցվող թվային I2C- ով, արդյունաբերության առաջատար հուսալիությամբ, էներգաարդյունավետությամբ
Raspberry Pi - HIH6130 I2C խոնավության և ջերմաստիճանի տվիչ Java ձեռնարկ. 4 քայլ
Ազնվամորի Pi - HIH6130 I2C Խոնավության և ջերմաստիճանի տվիչ Java ձեռնարկ. HIH6130- ը խոնավության և ջերմաստիճանի տվիչ է ՝ թվային ելքով: Այս տվիչները ապահովում են. 4% RH ճշգրտության մակարդակ: Արդյունաբերության առաջատար երկարաժամկետ կայունությամբ, իսկական ջերմաստիճանի փոխհատուցվող թվային I2C- ով, արդյունաբերության առաջատար հուսալիությամբ, էներգաարդյունավետությամբ
OLED 0.91 դյույմ 128x32 ինտերֆեյսի ձեռնարկ ՝ Arduino UNO- ով. 7 քայլ (նկարներով)
OLED 0.91 դյույմ 128x32 ինտերֆեյսի ձեռնարկ Arduino UNO- ի հետ. Այս ձեռնարկը ձեզ կսովորեցնի որոշ հիմունքներ OLED 0.91 դյույմ LCD128x32 Arduino UNO- ով օգտագործելու վերաբերյալ: