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

LCD COG Arduino Nano- ի համար. 3 քայլ
LCD COG Arduino Nano- ի համար. 3 քայլ

Video: LCD COG Arduino Nano- ի համար. 3 քայլ

Video: LCD COG Arduino Nano- ի համար. 3 քայլ
Video: U8g vs. U8g2 Arduino Graphics Libraries (Tutorial - OLED and LCD screens with Arduino UNO) 2024, Հուլիսի
Anonim
LCD COG Arduino Nano- ի համար
LCD COG Arduino Nano- ի համար

Այս հրահանգը նկարագրում է, թե ինչպես օգտագործել COG LCD- ը Arduino Nano- ի հետ:

COG LCD էկրաններն էժան են, բայց մի փոքր ավելի դժվար է ինտերֆեյսի մեջ: (COG- ը նշանակում է «Chip On Glass»): Այն, ինչ ես օգտագործում եմ, պարունակում է UC1701 վարորդի չիպ: Այն պահանջում է Arduino- ի ընդամենը 4 կապում `SPI- ժամացույց, SPI- տվյալներ, չիպերի ընտրություն և հրաման/տվյալներ:

UC1701- ը վերահսկվում է SPI ավտոբուսով և աշխատում է 3.3 Վ լարման դեպքում:

Այստեղ ես նկարագրում եմ, թե ինչպես օգտագործել այն Arduino Nano- ի հետ: Այն պետք է աշխատի նաև Arduino Mini- ի կամ Uno- ի հետ - շուտով կփորձեմ:

Սա իմ առաջին Arduino նախագիծն է, և ես տասնյակ տարիներ C չեմ գրել, այնպես որ, եթե ես որևէ ակնհայտ սխալ եմ թույլ տալիս, խնդրում եմ ինձ տեղյակ պահեք:

Քայլ 1: Սարքաշարի կառուցում

Սարքաշարի կառուցում
Սարքաշարի կառուցում
Սարքաշարի կառուցում
Սարքաշարի կառուցում
Սարքաշարի կառուցում
Սարքաշարի կառուցում

Գնեք COG LCD, որը պարունակում է UC1701 չիպ: Այն պետք է օգտագործի SPI ավտոբուսը, այլ ոչ թե զուգահեռ ինտերֆեյսը: Այն կունենա մոտ 14 կապում, որոնք կպիտակավորվեն ստորև թվարկված անուններով: (Դուք չեք ցանկանում զուգահեռ ինտերֆեյս ՝ բազմաթիվ այլ կապում ՝ պիտակավորված D0, D1, D2 …)

Իմ գնածը ՝ https://www.ebay.co.uk/itm/132138390168 Կամ կարող եք eBay- ում որոնել «12864 LCD COG»:

Ընտրեք մեկը, որն ունի բավականին լայն պոչ, 1.27 մմ հեռավորության վրա կապում - ավելի նուրբ կապերը դժվար է կպցնել: Համոզվեք, որ այն ունի UC1701 չիպ: Ուշադրություն դարձրեք, թե ինչպես է eay էջի վեցերորդ նկարում գրված է, որ «CONNECTOR: COG/UC1701»:

Էկրանը թափանցիկ է և դժվար է իմանալ, թե որն է առջևի և հետևի մասերը: Ուշադիր ուսումնասիրեք իմ նկարները: Ուշադրություն դարձրեք, թե որտեղ են 1 և 14 կապերը. Դրանք նշված են պոչի վրա:

Flexibleկուն պոչը բավականին հեշտ է զոդել, բայց դրա համար անհրաժեշտ է ադապտեր, որպեսզի կարողանաք այն միացնել հացահատիկի: Ես գնել եմ ՝ https://www.ebay.co.uk/itm/132166865767 Կամ կարող եք eBay- ում որոնել «Adapter Smd SSOP28 DIP28»:

Ադապտորը մի կողմից վերցնում է 28 պին SOP չիպ կամ մյուս կողմից 28 պին SSOP չիպ: SOP չիպը ունի 0.05 դյույմ (1.27 մմ) քորոց, որը նույնն է, ինչ LCD- ի պոչը:

Ձեզ նույնպես կպահանջվեն վերնագրի որոշ կապում: Ամեն անգամ, երբ գնում եմ Arduino կամ այլ մոդուլ, այն գալիս է ավելի շատ վերնագրի կապումներով, քան անհրաժեշտ է, այնպես որ դուք հավանաբար արդեն ունեք դրանք: Հակառակ դեպքում, eBay- ում որոնեք «2.54 մմ վերնագրի կապում»:

Վերնագրի 14 -ը կպցնում է ադապտորին: Մի՛ մղեք դրանք մինչև վերջ. Ավելի լավ է, եթե ադապտերի հետևը հարթ է: Դրեք այն ձեր նստարանին այնպես, որ կապումներն անհնար լինի շատ հեռու մղել անցքերի մեջ: Համոզվեք, որ կապում են տախտակի SOP կողմը (այսինքն ՝ ավելի մեծ չիպը):

Պոչի բարձիկները մի տեսակ պատուհանի մեջ են: Դրանց երկու կողմերը թիթեղացրեք զոդումով: Թիթեղացրեք ադապտորի բարձիկները: Անցկացրեք ադապտորի պոչը տեղում, այնուհետև կպեք յուրաքանչյուր պահոցով զոդման երկաթով (ձեզ հարկավոր կլինի բավականին լավ հուշում):

Կցեք մի թել ադապտերի անցքերի միջով, որպեսզի գործի որպես լարվածություն: (Ես օգտագործել եմ «տրանսֆորմատորային մետաղալար»):

Եթե այն կպցնում եք սխալ ճանապարհով, մի փորձեք պոչը չվաճառել: Մեկ -մեկ հանեք կապումներն ու դրանք տեղափոխեք տախտակի մյուս կողմը: (Այո, ես թույլ տվեցի այդ սխալը և նորից կպցրեցի պոչը, այդ իսկ պատճառով լուսանկարում մի փոքր խառնաշփոթ է):

Քայլ 2: Միացում Arduino- ին

Միացում Arduino- ին
Միացում Arduino- ին
Միացում Arduino- ին
Միացում Arduino- ին

Այս բաժինը բացատրում է, թե ինչպես միանալ Arduino Nano- ին: Դա շատ նման կլինի Mini- ի կամ Uno- ի համար, բայց ես դեռ չեմ փորձել:

Ուսումնասիրեք սխեմայի սխեման:

USB պորտին միացված Arduino Nano- ն աշխատում է 5 Վ լարման տակ: LCD- ն աշխատում է 3.3 Վ -ով: Այսպիսով, դուք պետք է LCD- ն սնուցեք Nano- ի 3V3 փինից և նվազեցնեք յուրաքանչյուր վահանակի լարումը 5V- ից մինչև 3.3V:

LCD- ի pinout- ը հետևյալն է.

  • 1 CS
  • 2 RST
  • 3 ձայնասկավառակ
  • 4
  • 5 CLK
  • 6 SDA
  • 7 3V3
  • 8 0V Gnd
  • 9 VB0+
  • 10 VB0-
  • 11
  • 12
  • 13
  • 14

CS- ն Chip-Select է: Այն ցածր է քաշվում ՝ UC1701 չիպը ընտրելու (միացնելու) համար: (CS- ն կարող է կոչվել CS0 կամ En կամ նմանատիպ):

RST- ն վերակայված է: Այն ցածր է քաշվում ՝ չիպը վերականգնելու համար: (RST- ը կարող է կոչվել Reset):

CD- ն հրաման/տվյալ է: Այն ցածր է քաշվում SPI- ով չիպին հրամաններ ուղարկելու ժամանակ: Տվյալներ ուղարկելու ժամանակ դա բարձր է: (CD- ն կարող է կոչվել A0):

CLK և SDA- ն SPI ավտոբուսի կապումներն են: (SDA- ն կարող է կոչվել SPI-Data: CLK- ը կարող է լինել SCL կամ SPI-Clock):

VB0+ և VB0- օգտագործվում են UC1701- ի ներքին լիցքավորման պոմպի կողմից: Լիցքավորման պոմպը առաջացնում է LCD- ի համար անհրաժեշտ տարօրինակ լարումներ: Միացրեք 100n կոնդենսատոր VB0+-ի և VB0- ի միջև: UC1701 փաստաթղթերը խորհուրդ են տալիս 2uF, բայց ես չէի կարող տարբերություն տեսնել այս կոնկրետ LCD- ի հետ:

Եթե ձեր LCD- ն ունի VB1+ և VB1- կապիչներ, դրանց միջև միացրեք նաև 100n կոնդենսատոր: (Եթե ձեր LCD- ն ունի VLCD կապ, կարող եք փորձել 100n կոնդենսատորը միացնել VLCD- ի և Gnd- ի միջև: Դա իմ LCD- ի հետ ոչ մի տարբերություն չուներ):

LCD- ն Nano- ին միացրեք հետևյալ կերպ.

  • 1 CS = D10 *
  • 2 RST = D6 *
  • 3 CD = D7 *
  • 5 CLK = D13 *
  • 6 SDA = D11 *
  • 7 3V3 = 3V3
  • 8 0V = Gnd

(«*» նշանակում է լարման նվազեցման համար օգտագործել պոտենցիալ բաժանարար: Եթե Arduino- ն աշխատում է 3V3- ով անկախ սնուցմամբ, ապա ձեզ դիմադրիչների կարիք չեն լինի:)

3.3V թողարկվում է Nano- ի կողմից և կարող է ապահովել բավարար հոսանք LCD- ի համար: (Theուցադրումը վերցնում է մոտ 250uA):

5V- ն նույնպես թողարկվում է Nano- ի կողմից և կարող է օգտագործվել լուսավորությունը լուսավորելու համար: Սահմանափակեք հոսանքի լուսավորությունը 100 օհմ ռեզիստորով:

Եթե Nano- ի վրա քորոցներ չկան, կարող եք RST- ը միացնել 3V3- ին, այնուհետև D6- ը կարող եք օգտագործել այլ բանի համար: U1701- ը կարող է վերականգնվել ծրագրակազմում ՝ SPI- ի հրամանով: Ես երբեք որևէ խնդիր չեմ ունեցել դրա հետ, բայց եթե դուք օգտագործում եք ձեր սեփական միացումը աղմկոտ միջավայրում, գուցե ավելի լավ է օգտագործել ապարատային վերակայումը:

Քայլ 3: Softwareրագրակազմ

Ծրագրային ապահովում
Ծրագրային ապահովում

Տեսականորեն, UC1701- ը կարող եք քշել U8g2 գրադարանից (կամ Ucglib- ից կամ առկա այլ գրադարաններից): Օրեր շարունակ պայքարում էի այն գործի բերելու համար և անհաջողության մատնվեցի: U8g2 գրադարանը հրեշ է, քանի որ այն կարող է քշել հսկայական բազմազան չիպսեր և շատ դժվար է հետևել ծածկագրին: Այսպիսով, ես հանձնվեցի և գրեցի իմ սեփական փոքր գրադարանը: Այն շատ ավելի քիչ տեղ է զբաղեցնում Arduino- ում (մոտ 3400 բայթ գումարած տառատեսակներ):

Դուք կարող եք ներբեռնել իմ գրադարանը այստեղից (Ներբեռնման կոճակը այս էջում): Ներառված են օրինակելի ուրվագիծ և օգտագործողի ուղեցույց: Https://www.arduino.cc/hy/Guide/Libraries վեբ էջը նկարագրում է, թե ինչպես ներմուծել գրադարան. գնացեք «.zip գրադարանի ներմուծում» բաժինը:

Սկզբնականացրեք LCD- ը

UC1701Begin ();

UC1701Begin- ը կարող է պարամետրեր վերցնել ՝ կապերը փոխելու կամ RST կապը անտեսելու համար: Գրադարանը օգտագործում է միայն ապարատային SPI (ծրագրային ապահովման SPI չի տրամադրվում): Էկրանը կարող է շրջվել x և y առանցքների մեջ: Դա օգտակար է, եթե ցանկանում եք LCD- ն տեղադրել այլ կողմնորոշմամբ:

U8g2 գրադարանից կրկնօրինակվել են մի քանի ընթացակարգեր.

  • DrawLine
  • DrawPixel
  • DrawHLine
  • DrawVLine
  • DrawBox
  • DrawFrame
  • DrawCircle
  • DrawDisc
  • DrawFilledEllipse
  • DrawEllipse
  • DrawTriangle
  • UC1701SetCursor
  • UC1701ClearDisplay

Որոշ ընթացակարգեր փոքր -ինչ տարբերվում են.

  • առոչինչ DrawChar (uint8_t c, word Font);
  • անվավեր DrawString (char * s, word Font);
  • անվավեր DrawInt (int i, word Font);

Լարային գծագրման ընթացակարգերը փոխանցվում են Տառատեսակի ինդեքսով: Տառատեսակները հայտարարված են Arduino- ի ֆլեշ հիշողության մեջ, այնպես որ դրանք չեն զբաղեցնում թանկարժեք SRAM- ը: Տրամադրվում է երեք տառատեսակ (փոքր, միջին և մեծ): Դրանք կապված են միայն և զբաղեցնում են ֆլեշ հիշողությունը, եթե դրանք օգտագործում եք (յուրաքանչյուրը մոտ 500 -ից 2000 բայթ):

«Գույնը» տարբեր կերպ է վարվում U8g2 գրադարանից: Երբ LCD- ը մաքրվում է, այն ունի մուգ ֆոն: Եթե MakeMark- ը (գլոբալ փոփոխական) ճիշտ է, նկարչությունը կատարվում է սպիտակ գույնով: Եթե MakeMark- ը կեղծ է, նկարչությունը կատարվում է մթության մեջ:

Որոշ ընթացակարգեր եզակի են UC1701- ի համար.

SetInverted նկարում է ոչ թե սպիտակ-սև, այլ սև-սպիտակի վրա:

անվավեր SetInverted (bool inv);

UC1701- ի պայծառությունն ու հակադրությունը սահմանվում են ՝

  • անվավեր SetContrast (uint8_t արժեք); // առաջարկվում է 14 -ը
  • անվավեր SetResistor (uint8_t արժեք); // առաջարկվում է 7

Նրանք միասին աշխատում են բավականին անբավարար կերպով:

SetEnabled անջատում է LCD- ը.

անվավեր SetEnabled (bool en);

Էկրանը քնում է 4uA: Դուք նաև պետք է անջատեք հետևի լույսը `քշեք այն Nano- ի քորոցից: Միացնելուց հետո UC1701- ը կվերակայվի: էկրանը մաքրված է, և հակադրությունը և դիմադրիչը կվերակայվեն իրենց կանխադրված արժեքներին:

Այսպիսով, որպես եզրակացություն, COG էկրանները էժան են և արժանապատիվ չափ: Նրանց հեշտ է միացնել Arduino- ին:

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