Turinys:

„Arduino Nano“LCD COG: 3 žingsniai
„Arduino Nano“LCD COG: 3 žingsniai

Video: „Arduino Nano“LCD COG: 3 žingsniai

Video: „Arduino Nano“LCD COG: 3 žingsniai
Video: Подключение дисплея GMG12864-06D на ST7565R к Arduino 2024, Liepa
Anonim
LCD COG skirtas „Arduino Nano“
LCD COG skirtas „Arduino Nano“

Šioje instrukcijoje aprašoma, kaip naudoti COG LCD su „Arduino Nano“.

COG LCD ekranai yra pigūs, tačiau jų sąsaja yra šiek tiek sunkesnė. (COG reiškia „Chip On Glass“.) Mano naudojamame yra UC1701 tvarkyklės mikroschema. Tam reikalingi tik 4 „Arduino“kaiščiai: SPI laikrodis, SPI duomenys, lusto pasirinkimas ir komanda/duomenys.

UC1701 valdo SPI magistralė ir veikia esant 3,3 V įtampai.

Čia aprašysiu, kaip jį naudoti su „Arduino Nano“. Tai taip pat turėtų veikti su „Arduino Mini“arba „Uno“- netrukus išbandysiu.

Tai mano pirmasis „Arduino“projektas ir aš dešimtmečius nerašiau C, todėl jei darau akivaizdžių klaidų, praneškite man.

1 žingsnis: sukurkite aparatūrą

Aparatūros kūrimas
Aparatūros kūrimas
Aparatūros kūrimas
Aparatūros kūrimas
Aparatūros kūrimas
Aparatūros kūrimas

Pirkite COG LCD, kuriame yra UC1701 mikroschema. Jis turėtų naudoti SPI magistralę, o ne lygiagrečią sąsają. Jame bus apie 14 kaiščių, kurie bus paženklinti tokiais pavadinimais, kaip išvardyti žemiau. (Jūs nenorite lygiagrečios sąsajos su daug daugiau kaiščių, pažymėtų D0, D1, D2 …)

Pirkau: https://www.ebay.co.uk/itm/132138390168 Arba eBay galite ieškoti „12864 LCD COG“.

Pasirinkite tą, kurio uodega gana plati, o kaiščiai išdėstyti 1,27 mm atstumu - smulkesnius kaiščius bus sunku lituoti. Įsitikinkite, kad jame yra UC1701 lustas. Atkreipkite dėmesį, kaip šeštoje „ebay“puslapio nuotraukoje yra užrašas „CONNECTOR: COG/UC1701“.

Ekranas yra skaidrus ir sunku žinoti, kuris yra priekinis ir galinis. Atidžiai išstudijuokite mano nuotraukas. Atkreipkite dėmesį, kur yra 1 ir 14 kaiščiai - jie pažymėti ant uodegos.

Lanksčią uodegą gana lengva lituoti, tačiau jai reikia adapterio, kad galėtumėte prijungti prie duonos lentos. Aš nusipirkau: https://www.ebay.co.uk/itm/132166865767 Arba galite ieškoti „eBay“„Adapter Smd SSOP28 DIP28“.

Adapteris paima 28 kontaktų SOP mikroschemą vienoje pusėje arba 28 kontaktų SSOP mikroschemą kitoje pusėje. SOP lusto kaiščių tarpas yra 0,05 colio (1,27 mm), kuris yra toks pat kaip skystųjų kristalų ekrano uodega.

Jums taip pat reikės kai kurių antgalių kaiščių. Kai perku „Arduino“ar kitą modulį, jame yra daugiau antraštės kaiščių, nei reikia, todėl tikriausiai jau turite. Priešingu atveju „eBay“ieškokite „2,54 mm antraštės kaiščių“.

Lituokite 14 antraštės kaiščių ant adapterio. Nespauskite jų iki galo - gražiau, jei adapterio nugarėlė yra plokščia. Padėkite jį ant suoliuko, kad smeigtukai nebūtų per daug įstumti į skyles. Įsitikinkite, kad kaiščiai yra plokštės SOP pusėje (t. Y. Didesnio lusto).

Uodegos pagalvėlės yra tarsi lange. Alyvas iš abiejų pusių ištepkite lydmetaliu. Alavo adapterio pagalvėlės. Laikykite adapterio uodegą vietoje, tada lituokliu palieskite kiekvieną pagalvėlę (jums reikės gana plono antgalio).

Užveržkite šiek tiek sriegio per adapterio skyles, kad jis veiktų kaip įtempimas. (Aš naudoju „transformatoriaus laidą“).

Jei lituosite netinkamai, nebandykite atlaisvinti uodegos. Po vieną ištraukite smeigtukus ir perkelkite juos į kitą lentos pusę. (Taip, aš padariau tą klaidą ir iš naujo litavau uodegą, todėl nuotraukoje šiek tiek netvarka.)

2 žingsnis: Prisijunkite prie „Arduino“

Prisijungimas prie „Arduino“
Prisijungimas prie „Arduino“
Prisijungimas prie „Arduino“
Prisijungimas prie „Arduino“

Šiame skyriuje paaiškinama, kaip prisijungti prie „Arduino Nano“. Tai bus labai panaši į „Mini“ar „Uno“, bet aš to dar neišbandžiau.

Išstudijuokite grandinės schemą.

„Arduino Nano“, prijungtas prie USB prievado, veikia 5 V įtampa. LCD veikia 3.3V. Taigi jums reikia maitinti LCD ekraną iš 3 V3 „Nano“kaiščio ir sumažinti kiekvieno valdymo kaiščio įtampą nuo 5 V iki 3,3 V.

LCD ekranas yra toks:

  • 1 CS
  • 2 RST
  • 3 CD
  • 4
  • 5 CLK
  • 6 SDA
  • 7 3V3
  • 8 0 V Gnd
  • 9 VB0+
  • 10 VB0-
  • 11
  • 12
  • 13
  • 14

CS yra „Chip-Select“. Norėdami pasirinkti (įjungti) UC1701 lustą, jis yra žemai patrauktas. (CS gali būti vadinamas CS0 arba En ar panašiu.)

RST yra iš naujo. Jis išjungiamas žemai, kad būtų galima iš naujo nustatyti lustą. (RST gali būti vadinamas Reset.)

CD yra komanda/duomenys. Siunčiant komandas į lustą per SPI, jis yra žemas. Siunčiant duomenis jis yra didelis. (CD gali būti vadinamas A0.)

CLK ir SDA yra SPI magistralės kaiščiai. (SDA gali būti vadinamas SPI duomenimis. CLK gali būti SCL arba SPI-laikrodis.)

VB0+ ir VB0- naudoja UC1701 vidinis įkrovimo siurblys. Įkrovimo siurblys sukuria keistą įtampą, kurios reikia LCD. Prijunkite 100n kondensatorių tarp VB0+ ir VB0-. UC1701 dokumentacija rekomenduoja 2uF, bet aš nematau skirtumo su šiuo LCD.

Jei jūsų LCD yra VB1+ ir VB1- kaiščiai, taip pat prijunkite 100n kondensatorių. (Jei jūsų LCD yra VLCD kaištis, galite pabandyti prijungti 100n kondensatorių tarp VLCD ir Gnd. Tai nesiskyrė nuo mano LCD.)

Prijunkite LCD ekraną prie „Nano“taip:

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

(„*“reiškia, kad įtampai sumažinti naudokite potencialų skirstytuvą. Jei „Arduino“veikia nuo 3 V3 nuo nepriklausomo maitinimo šaltinio, jums nereikės rezistorių.)

3.3V išleidžia „Nano“ir gali suteikti pakankamai srovės LCD ekranui. (Ekranas sunaudoja apie 250uA.)

5V taip pat išleidžia „Nano“ir gali būti naudojamas apšvietimui maitinti. Apribokite srovę iki apšvietimo naudodami 100 omų rezistorių.

Jei „Nano“pritrūksta kaiščių, galite prijungti RST prie 3V3 - tada D6 galite naudoti kažkam kitam. U1701 galima iš naujo nustatyti programinėje įrangoje naudojant SPI komandą. Aš niekada neturėjau jokių problemų dėl to, bet jei naudojate savo grandinę triukšmingoje aplinkoje, gali būti geriau naudoti aparatūros atstatymą.

3 žingsnis: programinė įranga

Programinė įranga
Programinė įranga

Teoriškai galite vairuoti UC1701 iš U8g2 bibliotekos (arba „Ucglib“ar kitų galimų bibliotekų). Dienomis kovojau, kad tai veiktų, ir nepavyko. „U8g2“biblioteka yra pabaisa, nes ji gali vairuoti daugybę įvairių lustų ir labai sunku sekti kodą. Taigi aš pasidaviau ir parašiau savo mažesnę biblioteką. „Arduino“užima daug mažiau vietos (apie 3400 baitų ir šriftų).

Mano biblioteką galite atsisiųsti iš čia (šio puslapio mygtukas Atsisiųsti). Pridedamas eskizo pavyzdys ir vartotojo vadovas. Tinklalapyje https://www.arduino.cc/en/Guide/Libraries aprašoma, kaip importuoti biblioteką; eikite į skyrių „.zip bibliotekos importavimas“.

Inicijuokite LCD naudodami

UC1701Begin ();

UC1701Begin gali imtis parametrų, kad pakeistų kaiščius arba ignoruotų RST kaištį. Biblioteka naudoja tik aparatūros SPI (programinės įrangos SPI nepateikiama). Ekraną galima apversti x ir y ašimis. Tai naudinga, jei norite LCD montuoti kitokia kryptimi.

Iš U8g2 bibliotekos buvo pakartotos kelios procedūros:

  • „DrawLine“
  • „DrawPixel“
  • „DrawHLine“
  • „DrawVLine“
  • „DrawBox“
  • DrawFrame
  • DrawCircle
  • DrawDisc
  • DrawFilledEllipse
  • DrawEllipse
  • Lygiosios trikampis
  • UC1701SetCursor
  • UC1701ClearDisplay

Kai kurios procedūros šiek tiek skiriasi:

  • void DrawChar (uint8_t c, žodis Šriftas);
  • void DrawString (char * s, žodis Šriftas);
  • void DrawInt (int i, žodis Šriftas);

Eilutės piešimo procedūros perduodamos šrifto indeksui. Šriftai yra paskelbti „Arduino“atmintyje, todėl jie neužima brangaus SRAM. Pateikiami trys šriftai (maži, vidutiniai ir dideli). Jie yra susieti ir užima „flash“atmintį tik tada, kai juos naudojate (maždaug nuo 500 iki 2000 baitų).

„Spalva“tvarkoma kitaip nei U8g2 biblioteka. Kai LCD ekranas išvalytas, jo fonas yra tamsus. Jei „MakeMark“(visuotinis kintamasis) yra teisingas, piešimas atliekamas balta spalva. Jei „MakeMark“yra klaidinga, piešimas atliekamas tamsoje.

Kai kurios procedūros yra unikalios UC1701:

„SetInverted“piešia juodai balta, o ne balta juoda spalva.

void SetInverted (bool inv);

UC1701 ryškumą ir kontrastą nustato:

  • void SetContrast (vertė uint8_t); // siūloma 14
  • void SetResistor (vertė uint8_t); // siūlomas 7

Jie dirba kartu gana nepatenkinamai.

„SetEnabled“išjungia LCD ekraną:

void SetEnabled (bool en);

Ekranas miega 4uA. Taip pat turėtumėte išjungti foninį apšvietimą - vairuokite jį iš „Nano“kaiščio. Įjungus iš naujo, UC1701 bus iš naujo nustatytas; ekranas bus išvalytas, o kontrastas ir rezistorius bus atstatyti į numatytas vertes.

Taigi, apibendrinant, COG ekranai yra pigūs ir tinkamo dydžio. Juos lengva prijungti prie „Arduino“.

Rekomenduojamas: