Kazalo:

LCD COG za Arduino Nano: 3 koraki
LCD COG za Arduino Nano: 3 koraki

Video: LCD COG za Arduino Nano: 3 koraki

Video: LCD COG za Arduino Nano: 3 koraki
Video: Arduino #3|Podłączenie wyświetlacza LCD do Arduino Nano z użyciem konwertera I2C 2024, Julij
Anonim
LCD COG za Arduino Nano
LCD COG za Arduino Nano

Ta navodila opisujejo, kako uporabljati COG LCD z Arduino Nano.

LCD zasloni COG so poceni, vendar jih je nekoliko težje povezati. (COG pomeni "Chip On Glass".) Ta, ki ga uporabljam, vsebuje gonilniški čip UC1701. Arduino potrebuje le 4 zatiče: uro SPI, podatke SPI, izbiro čipa in ukaz/podatke.

UC1701 krmili vodilo SPI in deluje pri 3.3V.

Tukaj opisujem, kako ga uporabiti z Arduino Nano. Moral bi delovati tudi z Arduino Mini ali Uno - poskusil bom kmalu.

To je moj prvi projekt Arduino in nisem pisal C že desetletja, zato mi, če delam očitne napake, sporočite.

1. korak: Izdelava strojne opreme

Izdelava strojne opreme
Izdelava strojne opreme
Izdelava strojne opreme
Izdelava strojne opreme
Izdelava strojne opreme
Izdelava strojne opreme

Kupite COG LCD, ki vsebuje čip UC1701. Namesto vzporednega vmesnika bi moral uporabljati vodilo SPI. Imel bo okoli 14 zatičev, ki bodo označeni z imeni, kot so spodaj navedena. (Ne želite vzporednega vmesnika z veliko več zatiči z oznako D0, D1, D2 …)

Tisti, ki sem ga kupil, je: https://www.ebay.co.uk/itm/132138390168 Ali pa na eBayu poiščite "12864 LCD COG".

Izberite tistega, ki ima precej širok rep z zatiči, razmaknjenimi na 1,27 mm - tanjše zatiče bo težko spajkati. Prepričajte se, da ima čip UC1701. Opazite, kako na šesti sliki na strani ebay piše "POVEZAVA: COG/UC1701".

Zaslon je prozoren in težko je vedeti, kaj je spredaj in zadaj. Pozorno preučite moje slike. Upoštevajte, kje sta zatiča 1 in 14 - označena sta na repu.

Prilagodljiv rep je zelo enostavno spajkati, vendar potrebuje adapter, tako da ga lahko priključite na ploščo. Kupil sem: https://www.ebay.co.uk/itm/132166865767 Ali pa na eBayu poiščite "Adapter Smd SSOP28 DIP28".

Adapter vzame 28-polni SOP čip na eni strani ali 28-polni SSOP čip na drugi strani. SOP čip ima razmik med zatiči 0,05 (1,27 mm), kar je enako repu LCD -ja.

Potrebovali boste tudi nekaj zatičev glave. Kadar koli kupim Arduino ali drug modul, pride z več zatiči glave, kot jih potrebujete, zato jih verjetno že imate. V nasprotnem primeru na eBayu poiščite "2,54 mm zatiči glave".

Spajajte 14 zatičev glave na adapter. Ne potiskajte jih do konca - lepše je, če je zadnji del adapterja raven. Postavite ga ravno na klop, da zatičev ne morete potisniti predaleč v luknje. Prepričajte se, da so zatiči na SOP strani plošče (tj. Večji čip).

Repne blazinice so v nekem oknu. Na obeh straneh jih kosite s spajkanjem. Položite blazinice adapterja. Držite rep adapterja na mestu, nato se dotaknite vsake blazinice s spajkalnikom (potrebovali boste precej fino konico).

Privijte nekaj niti skozi luknje v adapterju, da delujejo kot razbremenitev napetosti. (Uporabil sem "transformatorsko žico").

Če ste ga spajkali na napačen način, ne odpahnite repa. Zatiče izvlecite enega za drugim in jih premaknite na drugo stran plošče. (Ja, naredil sem to napako in rep spet spajkal, zato je na fotografiji malo nereda.)

2. korak: Povežite se z Arduinom

Povezava z Arduinom
Povezava z Arduinom
Povezava z Arduinom
Povezava z Arduinom

Ta razdelek razlaga, kako se povezati z Arduino Nano. Za Mini ali Uno bo zelo podoben, a tega še nisem poskusil.

Preučite shemo vezja.

Arduino Nano, priključen na vrata USB, deluje pri 5V. LCD deluje pri 3.3V. Zato morate LCD napajati iz 3V3 zatiča Nano in zmanjšati napetost na vsakem krmilnem zatiču s 5V na 3.3V.

Izpis LCD -ja je:

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

CS je Chip-Select. Povlecite ga nizko, da izberete (omogočite) čip UC1701. (CS se lahko imenuje CS0 ali En ali podobno.)

RST je ponastavljen. Za ponastavitev čipa se potegne nizko. (RST se lahko imenuje ponastavitev.)

CD je ukaz/podatki. Pri pošiljanju ukazov na čip prek SPI je nizko. Visoka je pri pošiljanju podatkov. (CD se lahko imenuje A0.)

CLK in SDA sta zatiča vodila SPI. (SDA se lahko imenuje SPI-podatki. CLK je lahko SCL ali SPI-ura.)

VB0+ in VB0- uporablja notranja polnilna črpalka UC1701. Polnilna črpalka ustvarja lihe napetosti, ki jih potrebuje LCD. Priključite 100n kondenzator med VB0+ in VB0-. Dokumentacija UC1701 priporoča 2uF, vendar pri tem LCD -ju nisem videl razlike.

Če ima vaš LCD vtič VB1+ in VB1-, med njimi priključite tudi 100n kondenzator. (Če ima vaš LCD vtič VLCD, lahko poskusite priključiti 100n kondenzator med VLCD in Gnd. To z mojim LCD -jem ni imelo nobene razlike.)

LCD priključite na Nano na naslednji način:

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

("*" pomeni uporabo potencialnega delilnika za zmanjšanje napetosti. Če Arduino deluje pri 3V3 od neodvisnega napajanja, uporov ne boste potrebovali.)

3.3V oddaja Nano in lahko zagotovi dovolj toka za LCD. (Zaslon porabi okoli 250uA.)

5V oddaja tudi Nano in se lahko uporablja za napajanje osvetlitve ozadja. Omejite tok na osvetlitev ozadja s 100 ohmskim uporom.

Če na Nano -u primanjkuje zatičev, lahko priključite RST na 3V3 - potem lahko uporabite D6 za kaj drugega. U1701 lahko programsko ponastavite z ukazom na SPI. Nikoli nisem imel težav s tem, če pa uporabljate svoje vezje v hrupnem okolju, je morda bolje uporabiti ponastavitev strojne opreme.

3. korak: Programska oprema

Programska oprema
Programska oprema

Teoretično lahko vozite UC1701 iz knjižnice U8g2 (ali Ucgliba ali drugih knjižnic, ki so na voljo). Več dni sem se boril, da bi uspel, in mi ni uspelo. Knjižnica U8g2 je pošast, saj lahko poganja ogromno različnih čipov in je zelo težko slediti kodi. Zato sem obupal in napisal svojo manjšo knjižnico. V Arduinu zavzame veliko manj prostora (približno 3400 bajtov plus pisave).

Knjižnico lahko prenesete od tukaj (gumb Prenesi na tej strani). Vključena je vzorčna skica in uporabniški priročnik. Spletna stran https://www.arduino.cc/en/Guide/Libraries opisuje, kako uvoziti knjižnico; pojdite na razdelek »Uvoz knjižnice.zip«.

Inicializirajte LCD z

UC1701Begin ();

UC1701Begin lahko sprejme parametre za spreminjanje nožic ali ignoriranje zatiča RST. Knjižnica uporablja samo strojni SPI (SPI programske opreme ni na voljo). Zaslon lahko obrnete v osi x in y. To je uporabno, če želite LCD -zaslon namestiti v drugačno smer.

Iz knjižnice U8g2 je bilo podvojenih več postopkov:

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

Nekateri postopki so nekoliko drugačni:

  • void DrawChar (uint8_t c, besedna pisava);
  • void DrawString (char * s, besedna pisava);
  • void DrawInt (int i, besedna pisava);

Postopki risanja nizov se prenesejo v indeks pisave. Pisave so deklarirane v bliskovnem pomnilniku Arduina, zato ne zasedajo dragocenega SRAM -a. Na voljo so tri pisave (majhne, srednje in velike). Povezani so in zasedajo bliskovni pomnilnik le, če jih uporabljate (vsak od približno 500 do 2000 bajtov).

"Barva" se obravnava drugače kot knjižnica U8g2. Ko je LCD zaslon počiščen, ima temno ozadje. Če je MakeMark (globalna spremenljivka) res, se risanje izvede v beli barvi. Če je MakeMark napačen, se risanje izvede v temi.

Nekateri postopki so edinstveni za UC1701:

SetInverted riše črno-belo in ne belo-črno.

void SetInverted (bool inv);

Svetlost in kontrast UC1701 nastavita:

  • void SetContrast (vrednost uint8_t); // predlagano je 14
  • void SetResistor (vrednost uint8_t); // predlagano je 7

Sodelujejo na precej nezadovoljiv način.

SetEnabled izklopi LCD:

void SetEnabled (bool sl);

Zaslon porabi 4uA med spanjem. Prav tako morate izklopiti osvetlitev ozadja - poganjajte ga iz zatiča Nano. Po ponovnem vklopu bo UC1701 ponastavljen; zaslon se počisti, kontrast in upor pa bosta ponastavljena na privzete vrednosti.

Skratka, zasloni COG so poceni in dostojne velikosti. Enostavno jih je povezati z Arduinom.

Priporočena: