Obsah:

LCD COG pre Arduino Nano: 3 kroky
LCD COG pre Arduino Nano: 3 kroky

Video: LCD COG pre Arduino Nano: 3 kroky

Video: LCD COG pre Arduino Nano: 3 kroky
Video: Подключение дисплея GMG12864-06D на ST7565R к Arduino 2024, November
Anonim
LCD COG pre Arduino Nano
LCD COG pre Arduino Nano

Tento návod popisuje, ako používať COG LCD s Arduino Nano.

COG LCD displeje sú lacné, ale rozhranie je o niečo ťažšie. (COG znamená „Chip On Glass“.) Ten, ktorý používam, obsahuje čip ovládača UC1701. Vyžaduje iba 4 piny Arduina: hodiny SPI, údaje SPI, výber čipu a príkaz/údaje.

UC1701 je riadený zbernicou SPI a beží na 3,3V.

Tu opisujem, ako ho používať s Arduino Nano. Malo by to fungovať aj s Arduino Mini alebo Uno - čoskoro to vyskúšam.

Toto je môj prvý projekt Arduino a nepísal som C už desaťročia, takže ak robím zjavné chyby, dajte mi prosím vedieť.

Krok 1: Budovanie hardvéru

Budovanie hardvéru
Budovanie hardvéru
Budovanie hardvéru
Budovanie hardvéru
Budovanie hardvéru
Budovanie hardvéru

Kúpte si COG LCD, ktorý obsahuje čip UC1701. Mala by používať skôr zbernicu SPI než paralelné rozhranie. Bude mať asi 14 pinov, ktoré budú označené menami, ako sú uvedené nižšie. (Nechcete paralelné rozhranie s oveľa viac kolíkmi označenými D0, D1, D2 …)

Ten, ktorý som kúpil, je: https://www.ebay.co.uk/itm/132138390168 Alebo môžete na eBay vyhľadať „12864 LCD COG“.

Vyberte si taký, ktorý má pomerne široký chvost s kolíkmi rozmiestnenými po 1,27 mm - jemnejšie kolíky sa budú ťažko spájkovať. Uistite sa, že má čip UC1701. Všimnite si, ako na šiestom obrázku na stránke ebay hovorí „CONNECTOR: COG/UC1701“.

Displej je priehľadný a je ťažké zistiť, ktorá je predná a zadná strana. Pozorne si preštudujte moje obrázky. Všimnite si, kde sú kolíky 1 a 14 - sú označené na chvoste.

Flexibilný chvost je veľmi ľahko spájkovateľný, vyžaduje si však adaptér, aby ste ho mohli zapojiť do dosky na pečenie. Kúpil som: https://www.ebay.co.uk/itm/132166865767 Alebo môžete na eBay vyhľadať „Adaptér Smd SSOP28 DIP28“.

Adaptér má na jednej strane 28-kolíkový čip SOP alebo na druhej strane 28-kolíkový čip SSOP. Čip SOP má rozstup pinov 0,05 (1,27 mm), ktorý je rovnaký ako na chvoste displeja LCD.

Budete tiež potrebovať niekoľko kolíkov hlavičky. Kedykoľvek si kúpim Arduino alebo iný modul, príde s väčším počtom kolíkov záhlavia, ako je potrebné, takže pravdepodobne už nejaké máte. V opačnom prípade vyhľadajte na eBay „kolíky záhlavia 2,54 mm“.

Spájkujte 14 kolíkov záhlavia na adaptér. Netlačte ich úplne - je krajšie, ak je zadná strana adaptéra plochá. Položte ho rovno na lavicu, aby čapy nemohli byť príliš zasunuté do otvorov. Uistite sa, že kolíky sú na strane SOP dosky (t.j. väčší čip).

Chvosty chvosta sú v akomsi okne. Pocínujte ich obe strany spájkou. Cínové podložky adaptéra. Držte chvost adaptéra na mieste a potom sa dotknite každej podložky spájkovačkou (budete potrebovať pomerne jemný hrot).

Prostredníctvom otvorov v adaptéri prevlečte trochu nite, aby pôsobilo ako odľahčenie napätia. (Použil som „transformátorový drôt“).

Ak ho spájkujete zlým smerom, nesnažte sa odspájkovať chvost. Vytiahnite kolíky jeden po druhom a presuňte ich na druhú stranu dosky. (Áno, urobil som tú chybu a znova spájkoval chvost, a preto je na fotografii trochu neporiadok.)

Krok 2: Pripojenie k Arduinu

Pripojenie k Arduinu
Pripojenie k Arduinu
Pripojenie k Arduinu
Pripojenie k Arduinu

Táto časť vysvetľuje, ako sa pripojiť k Arduino Nano. Bude to veľmi podobné pre Mini alebo Uno, ale ešte som to neskúsil.

Študujte schému zapojenia.

Arduino Nano, ktoré je pripojené k portu USB, beží na 5V. LCD pracuje na 3,3 V. Potrebujete teda napájať LCD z 3V3 pinu Nano a znížiť napätie na každom ovládacom pine z 5V na 3,3V.

Pinout LCD 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. Potiahnutím nadol vyberiete (povolíte) čip UC1701. (CS sa môže nazývať CS0 alebo En alebo podobne.)

RST je Reset. Potiahnutím nadol resetujete čip. (RST sa môže nazývať Reset.)

CD je príkaz/dáta. Je ťahaný nízko pri odosielaní príkazov na čip cez SPI. Pri odosielaní údajov je vysoká. (CD sa môže nazývať A0.)

CLK a SDA sú kolíky zbernice SPI. (SDA sa môže nazývať SPI-údaje. CLK môže byť SCL alebo SPI-hodiny.)

VB0+ a VB0- používa vnútorné nabíjacie čerpadlo UC1701. Nabíjacia pumpa generuje nepárne napätia potrebné pre LCD. Pripojte 100n kondenzátor medzi VB0+ a VB0-. Dokumentácia UC1701 odporúča 2uF, ale pri tomto konkrétnom LCD som nevidel rozdiel.

Ak má váš displej LCD kolíky VB1+ a VB1-, pripojte medzi ne aj 100n kondenzátor. (Ak je na vašom LCD pine VLCD, môžete skúsiť pripojiť 100n kondenzátor medzi VLCD a GND. Na mojom LCD to nie je žiadny rozdiel.)

Pripojte LCD k Nano nasledovne:

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

(„*“znamená použiť rozdeľovač potenciálu na zníženie napätia. Ak Arduino beží na 3V3 z nezávislého zdroja, rezistory nebudete potrebovať.)

3,3 V je na výstupe z Nano a môže poskytnúť dostatočný prúd pre LCD. (Displej čerpá okolo 250uA.)

Nano tiež vydáva 5 V a môže sa použiť na napájanie podsvietenia. Obmedzte prúd na podsvietenie odporom 100 ohmov.

Ak vám na Nano chýbajú piny, môžete pripojiť RST na 3V3 - potom môžete D6 použiť na niečo iné. U1701 je možné softvérovo resetovať príkazom na SPI. Nikdy som s tým nemal problémy, ale ak používate vlastný obvod v hlučnom prostredí, môže byť lepšie použiť hardvérový reset.

Krok 3: Softvér

Softvér
Softvér

UC1701 môžete teoreticky riadiť z knižnice U8g2 (alebo Ucglib alebo z iných dostupných knižníc). Celé dni som bojoval, aby to začalo fungovať, a zlyhal som. Knižnica U8g2 je monštrum, pretože môže poháňať obrovské množstvo čipov a je veľmi ťažké riadiť sa kódom. Preto som to vzdal a napísal som si vlastnú menšiu knižnicu. V Arduine zaberá oveľa menej miesta (približne 3400 bajtov plus písma).

Tu si môžete stiahnuť moju knižnicu (tlačidlo Stiahnuť na tejto stránke). Súčasťou je ukážkový náčrt a používateľská príručka. Webová stránka https://www.arduino.cc/en/Guide/Libraries popisuje, ako importovať knižnicu; prejdite do sekcie „Import knižnice.zip“.

Inicializujte LCD pomocou

UC1701Begin ();

UC1701Begin môže podľa parametrov meniť piny alebo ignorovať pin RST. Knižnica používa iba hardvérové SPI (softvérové SPI nie je k dispozícii). Displej je možné preklopiť v osiach x a y. Je to užitočné, ak chcete LCD namontovať v inej orientácii.

Z knižnice U8g2 bolo duplikovaných niekoľko procedúr:

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

Niektoré postupy sa mierne líšia:

  • neplatné DrawChar (uint8_t c, slovo Písmo);
  • neplatné DrawString (char * s, slovo Písmo);
  • void DrawInt (int i, slovo Písmo);

Postupom kreslenia reťazcov sa odovzdá index písma. Písma sú deklarované vo flash pamäti Arduina, takže nezaberajú drahocenný SRAM. K dispozícii sú tri písma (malé, stredné a veľké). Sú prepojené a zaberajú pamäť flash iba vtedy, ak ich použijete (približne 500 až 2 000 bajtov každý).

„Farba“je spracovaná odlišne od knižnice U8g2. Keď je LCD displej vymazaný, má tmavé pozadie. Ak je značka MakeMark (globálna premenná) pravdivá, kresba sa vykoná bielou farbou. Ak je značka MakeMark nepravdivá, kresba sa vykoná v tme.

Niektoré postupy sú jedinečné pre UC1701:

Invertované kresby sú skôr čiernobiele, než bielo-čierne.

neplatné SetInverted (bool inv);

Jas a kontrast UC1701 nastavujú:

  • neplatné SetContrast (hodnota uint8_t); // navrhovaný je 14
  • neplatný SetResistor (hodnota uint8_t); // navrhovaný je 7

Spolupracujú dosť neuspokojivým spôsobom.

Zapnuté vypnutie LCD displeja:

neplatné SetEnabled (bool en);

Keď spíte, displej má kapacitu 4uA. Tiež by ste mali vypnúť podsvietenie - riadte ho z kolíka Nano. Po opätovnom povolení bude UC1701 resetovaný; displej sa vymaže a kontrast a odpor sa resetujú na predvolené hodnoty.

Takže na záver, COG displeje sú lacné a slušnej veľkosti. Ľahko sa pripájajú k Arduinu.

Odporúča: