Tartalomjegyzék:

LCD COG az Arduino Nano számára: 3 lépés
LCD COG az Arduino Nano számára: 3 lépés

Videó: LCD COG az Arduino Nano számára: 3 lépés

Videó: LCD COG az Arduino Nano számára: 3 lépés
Videó: 128x64 Graphical lcd display //Arduino nano//How to load a custom image to graphical lcd display 2024, Július
Anonim
LCD COG az Arduino Nano számára
LCD COG az Arduino Nano számára

Ez az útmutató leírja, hogyan kell használni a COG LCD -t Arduino Nano készülékkel.

A COG LCD kijelzők olcsók, de valamivel nehezebben kezelhetők. (A COG jelentése "Chip On Glass".) Az általam használt UC1701 illesztőprogram -chipet tartalmazza. Mindössze 4 tűre van szüksége az Arduino-hoz: SPI-óra, SPI-adat, chip-kiválasztás és parancs/adat.

Az UC1701 -et az SPI busz vezérli, és 3.3V -on működik.

Itt leírom, hogyan kell használni egy Arduino Nano készülékkel. Arduino Mini vagy Uno esetén is működnie kell - hamarosan kipróbálom.

Ez az első Arduino projektem, és évtizedek óta nem írtam C -t, ezért ha nyilvánvaló hibákat követek el, kérjük, tudassa velem.

1. lépés: A hardver építése

A hardver építése
A hardver építése
A hardver építése
A hardver építése
A hardver építése
A hardver építése

Vásároljon COC LCD -t, amely UC1701 chipet tartalmaz. Párhuzamos interfész helyett az SPI buszt kell használnia. Körülbelül 14 csap lesz, amelyeket az alább felsoroltakhoz hasonló nevekkel látnak el. (Nem szeretne párhuzamos interfészt, ahol sokkal több D0, D1, D2 feliratú csap található.)

Az egyiket vettem: https://www.ebay.co.uk/itm/132138390168 Vagy kereshet az eBay -en a "12864 LCD COG" kifejezésre.

Válasszon egyet, amelynek meglehetősen széles farka van, a csapok 1,27 mm -re vannak elhelyezve - a finomabb csapokat nehéz lesz forrasztani. Győződjön meg róla, hogy UC1701 chip van benne. Figyeld meg, hogy az ebay oldal hatodik képén ez áll: "CSATLAKOZÓ: COG/UC1701".

A kijelző átlátszó, és nehéz eldönteni, melyik az elülső és a hátsó. Gondosan tanulmányozza a képeimet. Figyelje meg, hol vannak az 1. és 14. csapok - a farokon vannak megjelölve.

A rugalmas farok meglehetősen könnyen forrasztható, de ehhez adapterre van szükség, így csatlakoztathatja a kenyérlaphoz. Vettem: https://www.ebay.co.uk/itm/132166865767 Vagy kereshet az eBay -en az "Adapter Smd SSOP28 DIP28" kifejezésre.

Az adapter az egyik oldalon 28 tűs SOP chipet, a másik oldalon 28 tűs SOP chipet vesz fel. Az SOP chip tűtávolsága 0,05 hüvelyk (1,27 mm), ami megegyezik az LCD farokéval.

Szükséged lesz néhány fejlécre is. Amikor Arduino -t vagy más modult veszek, a szükségesnél több fejléc -tűvel érkezik, így valószínűleg már van néhány. Ellenkező esetben keressen az eBay -en a "2,54 mm -es fejlécek" kifejezésre.

A 14 fejléc csapjait forrasztja rá az adapterre. Ne nyomja végig őket - szebb, ha az adapter hátulja lapos. Tegye laposan a padjára, hogy a csapokat ne lehessen túl messzire benyomni a lyukakba. Győződjön meg arról, hogy a csapok a tábla SOP oldalán vannak (azaz a nagyobb chip).

A farok párnái egyfajta ablakban vannak. Mindkét oldalukat forrasztással ónozzuk meg. Ónozza az adapter párnáit. Tartsa a helyén az adapter farkát, majd érintse meg az egyes párnákat a forrasztópáka segítségével (elég finom hegyre lesz szüksége).

Fűzzön néhány szálat az adapter lyukain keresztül, hogy feszültségcsökkentő legyen. ("Transzformátor vezetéket" használtam).

Ha rossz irányba forrasztja, ne próbálja kioldani a farkát. Egyenként vegye ki a csapokat, és helyezze át a tábla másik oldalára. (Igen, elkövettem ezt a hibát, és újra forrasztottam a farkát, ezért van egy kis rendetlenség a fotón.)

2. lépés: Csatlakozás az Arduino -hoz

Csatlakozás az Arduino -hoz
Csatlakozás az Arduino -hoz
Csatlakozás az Arduino -hoz
Csatlakozás az Arduino -hoz

Ez a rész elmagyarázza, hogyan csatlakozhat az Arduino Nano -hoz. Mini vagy Uno esetében nagyon hasonló lesz, de még nem próbáltam.

Tanulmányozza a kapcsolási rajzot.

Az USB -porthoz csatlakoztatott Arduino Nano 5 V feszültséggel működik. Az LCD 3.3V -on működik. Tehát az LCD -t a Nano 3V3 -as érintkezőjéről kell táplálni, és az egyes vezérlőcsapok feszültségét 5V -ról 3,3V -ra kell csökkenteni.

Az LCD érintkezője a következő:

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

A CS Chip-Select. Az UC1701 chip kiválasztásához (engedélyezéséhez) alacsonyra kell húzni. (A CS neve lehet CS0 vagy En vagy hasonló.)

Az RST alaphelyzetbe áll. Alacsonyra húzva visszaállítja a chipet. (Az RST neve Reset lehet.)

A CD parancs/adat. Alacsonyra van húzva, amikor parancsokat küld a chipnek SPI -n keresztül. Magas az adatok küldésekor. (A CD neve lehet A0.)

A CLK és az SDA az SPI busz csapjai. (Az SDA neve SPI-Data. A CLK lehet SCL vagy SPI-Clock.)

A VB0+ és VB0- típusokat az UC1701 belső töltőszivattyúja használja. A töltőszivattyú generálja az LCD -hez szükséges páratlan feszültségeket. Csatlakoztasson egy 100n-os kondenzátort a VB0+ és a VB0- közé. Az UC1701 dokumentációja 2uF -et javasol, de nem láttam különbséget ezzel az LCD -vel.

Ha az LCD-n VB1+ és VB1- érintkezők vannak, csatlakoztasson egy 100n-os kondenzátort is. (Ha az LCD -n VLCD tüske van, megpróbálhat egy 100n -os kondenzátort csatlakoztatni a VLCD és a Gnd.

Csatlakoztassa az LCD -t a Nano -hoz az alábbiak szerint:

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

("*" azt jelenti, hogy használjon potenciálosztót a feszültség csökkentésére. Ha az Arduino 3V3 feszültségről működik független tápegységről, akkor nincs szüksége az ellenállásokra.)

A 3.3 V -ot a Nano adja ki, és elegendő áramot tud biztosítani az LCD számára. (A kijelző 250uA körül merül.)

Az 5 V -ot a Nano is kimeneti, és a háttérvilágítás táplálásához használható. Korlátozza az áramot a háttérvilágításra egy 100 ohmos ellenállással.

Ha elfogy a tű a Nano -n, akkor csatlakoztathatja az RST -t a 3V3 -hoz - akkor a D6 -ot másra is használhatja. Az U1701 szoftverben visszaállítható az SPI parancsával. Soha nem volt ezzel semmi bajom, de ha saját áramkört használ zajos környezetben, akkor jobb lehet a hardver visszaállítása.

3. lépés: Szoftver

Szoftver
Szoftver

Elméletileg az UC1701 -et meghajthatja az U8g2 könyvtárból (vagy az Ucglib -ből vagy a többi elérhető könyvtárból). Napokig küzdöttem, hogy működjön, és kudarcot vallottam. Az U8g2 könyvtár szörnyeteg, mert hatalmas számú chipet képes meghajtani, és nagyon nehéz követni a kódot. Így feladtam, és megírtam a saját kisebb könyvtáramat. Sokkal kevesebb helyet foglal el az Arduino -ban (kb. 3400 bájt és betűtípusok).

Innen letöltheti a könyvtáramat (a Letöltés gomb ezen az oldalon). A mintavázlat és a felhasználói útmutató mellékelve van. A https://www.arduino.cc/en/Guide/Libraries weboldal leírja a könyvtár importálását; lépjen a ".zip könyvtár importálása" szakaszba.

Inicializálja az LCD -t a gombbal

UC1701Begin ();

Az UC1701Begin paramétereket vehet igénybe a csapok cseréjéhez vagy az RST csap figyelmen kívül hagyásához. A könyvtár csak hardveres SPI -t használ (a szoftver SPI nem biztosított). A kijelző elfordítható az x és y tengelyen. Ez akkor hasznos, ha más irányban szeretné felszerelni az LCD -t.

Az U8g2 könyvtárból több eljárás is megismétlődött:

  • DrawLine
  • DrawPixel
  • DrawHLine
  • DrawVLine
  • DrawBox
  • DrawFrame
  • DrawCircle
  • DrawDisc
  • DrawFilledEllipse
  • DrawEllipse
  • DöntetlenHáromszög
  • UC1701SetCursor
  • UC1701ClearDisplay

Néhány eljárás kissé eltér egymástól:

  • void DrawChar (uint8_t c, szó betűtípus);
  • void DrawString (karakter *, szó betűtípus);
  • void DrawInt (int i, szó betűtípus);

A karakterlánc rajzolási eljárások áthaladnak egy betűtípus indexén. A betűtípusok az Arduino flash memóriájában vannak deklarálva, így nem foglalnak el értékes SRAM -ot. Három betűtípus áll rendelkezésre (kicsi, közepes és nagy). Csak akkor vannak összekapcsolva és elfoglalják a flash memóriát, ha használja őket (kb. 500-2000 bájt).

A „szín” kezelése eltér az U8g2 könyvtárétól. Amikor az LCD törlődik, sötét háttere van. Ha a MakeMark (globális változó) igaz, a rajzolás fehér színnel történik. Ha a MakeMark hamis, a rajz sötétben történik.

Néhány eljárás egyedülálló az UC1701 esetében:

A SetInverted fekete-fehér helyett fekete-fehérben rajzol.

void SetInverted (bool inv);

Az UC1701 fényerejét és kontrasztját a következők határozzák meg:

  • void SetContrast (uint8_t érték); // a javasolt 14
  • void SetResistor (uint8_t érték); // a javasolt 7

Eléggé nem kielégítő módon működnek együtt.

A SetEnabled kikapcsolja az LCD -t:

void SetEnabled (bool en);

A kijelző alvás közben 4uA -t vesz igénybe. A háttérvilágítást is ki kell kapcsolnia - vezesse a Nano csapjából. Az újbóli engedélyezés után az UC1701 alaphelyzetbe áll; a kijelző törlődik, és a kontraszt és az ellenállás visszaáll az alapértelmezett értékekre.

Összefoglalva tehát, a COG kijelzők olcsók és megfelelő méretűek. Könnyen csatlakoztathatók az Arduino -hoz.

Ajánlott: