Obsah:

LCD COG pro Arduino Nano: 3 kroky
LCD COG pro Arduino Nano: 3 kroky

Video: LCD COG pro Arduino Nano: 3 kroky

Video: LCD COG pro Arduino Nano: 3 kroky
Video: ЛУЧШИЙ ЭКРАН ДЛЯ АРДУИНО ARDUINO TFT LCD 1.44 SPI 128Х128 ЗА $3! 2024, Červenec
Anonim
LCD COG pro Arduino Nano
LCD COG pro Arduino Nano

Tento návod popisuje, jak používat COG LCD s Arduino Nano.

COG LCD displeje jsou levné, ale jejich rozhraní je o něco těžší. (COG znamená „Chip On Glass“.) Ten, který používám, obsahuje čip ovladače UC1701. Vyžaduje pouze 4 piny Arduina: hodiny SPI, data SPI, výběr čipu a příkaz/data.

UC1701 je řízen sběrnicí SPI a běží na 3,3V.

Zde popisuji, jak jej používat s Arduino Nano. Mělo by to fungovat i s Arduino Mini nebo Uno - brzy to vyzkouším.

Toto je můj první projekt Arduino a nepsal jsem C po celá desetiletí, takže pokud dělám nějaké zjevné chyby, dejte mi prosím vědět.

Krok 1: Budování hardwaru

Budování hardwaru
Budování hardwaru
Budování hardwaru
Budování hardwaru
Budování hardwaru
Budování hardwaru

Kupte si COG LCD, který obsahuje čip UC1701. Mělo by používat spíše sběrnici SPI než paralelní rozhraní. Bude mít asi 14 pinů, které budou označeny názvy, jako jsou uvedeny níže. (Nechcete paralelní rozhraní se spoustou dalších pinů označených D0, D1, D2…)

Ten, který jsem koupil, je: https://www.ebay.co.uk/itm/132138390168 Nebo můžete na eBay vyhledat „12864 LCD COG“.

Vyberte si ten, který má poměrně široký ocas s kolíky rozmístěnými na 1,27 mm - jemnější kolíky bude těžké pájet. Ujistěte se, že má čip UC1701. Všimněte si, jak na šestém obrázku na stránce ebay říká „CONNECTOR: COG/UC1701“.

Displej je průhledný a je těžké zjistit, který je přední a zadní. Pečlivě si prostudujte moje obrázky. Všimněte si, kde jsou piny 1 a 14 - jsou označeny na ocase.

Flexibilní ocas je docela snadno pájitelný, ale vyžaduje adaptér, takže jej můžete zapojit do prkénka. Koupil jsem: https://www.ebay.co.uk/itm/132166865767 Nebo můžete na eBay vyhledat „Adaptér Smd SSOP28 DIP28“.

Adaptér má 28pinový SOP čip na jedné straně nebo 28pinový SSOP čip na druhé straně. Čip SOP má rozteč pinů 0,05 (1,27 mm), což je stejné jako ocas LCD.

Budete také potřebovat několik kolíků záhlaví. Kdykoli si koupím modul Arduino nebo jiný modul, přichází s více kolíky záhlaví, než je potřeba, takže pravděpodobně již nějaké máte. V opačném případě vyhledejte na eBay „kolíky 2,54 mm záhlaví“.

Na adaptér připájejte 14 kolíků záhlaví. Netlačte je úplně - je hezčí, když je zadní strana adaptéru plochá. Položte jej na zem, aby kolíky nebylo možné zasunout příliš hluboko do otvorů. Ujistěte se, že kolíky jsou na straně SOP desky (tj. Větší čip).

Podložky ocasu jsou v jakémsi okně. Obě jejich strany pocínujte pájkou. Cínujte podložky adaptéru. Držte ocas adaptéru na místě a poté se dotkněte každé podložky páječkou (budete potřebovat docela jemný hrot).

Provlékněte trochu vlákna skrz otvory v adaptéru, aby působilo jako odlehčení tahu. (Použil jsem „transformátorový drát“).

Pokud jej pájíte špatným směrem, nepokoušejte se rozpojit ocas. Vytáhněte kolíky jeden po druhém a přesuňte je na druhou stranu desky. (Ano, udělal jsem tu chybu a znovu připájel ocas, a proto je na fotografii trochu nepořádek.)

Krok 2: Připojení k Arduinu

Připojení k Arduinu
Připojení k Arduinu
Připojení k Arduinu
Připojení k Arduinu

Tato část vysvětluje, jak se připojit k Arduino Nano. Bude to velmi podobné pro Mini nebo Uno, ale ještě jsem to nezkoušel.

Prostudujte si schéma zapojení.

Arduino Nano, které je připojeno k USB portu, běží na 5V. LCD běží na 3,3V. Potřebujete tedy napájet LCD z pinu 3V3 Nano a snížit napětí na každém ovládacím pinu 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. Chcete -li vybrat (povolit) čip UC1701, zatáhněte dolů. (CS lze nazvat CS0 nebo En nebo podobně.)

RST je Reset. Zatažením dolů resetujete čip. (RST lze nazvat Reset.)

CD je příkaz/data. Při odesílání příkazů na čip přes SPI je stažen nízko. Při odesílání dat je vysoká. (CD se může jmenovat A0.)

CLK a SDA jsou piny sběrnice SPI. (SDA se může nazývat SPI-Data. CLK může být SCL nebo SPI-Clock.)

VB0+ a VB0- jsou používány interním nabíjecím čerpadlem UC1701. Nabíjecí čerpadlo generuje lichá napětí potřebná pro LCD. Připojte 100n kondenzátor mezi VB0+ a VB0-. Dokumentace UC1701 doporučuje 2uF, ale u tohoto konkrétního LCD jsem neviděl rozdíl.

Pokud má váš LCD piny VB1+ a VB1-, připojte mezi ně také 100n kondenzátor. (Pokud má váš LCD kolík VLCD, můžete zkusit připojit 100n kondenzátor mezi VLCD a Gnd. Na mém LCD to nic nezměnilo.)

Připojte LCD k Nano následujícím způsobem:

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

(„*“znamená použít ke snížení napětí dělič potenciálu. Pokud Arduino běží na 3V3 z nezávislého zdroje, nebudete potřebovat odpory.)

3,3 V je na výstupu z Nano a může poskytnout dostatečný proud pro LCD. (Displej čerpá kolem 250uA.)

5V je také vyvedeno Nano a může být použito k napájení podsvícení. Omezte proud na podsvícení odporem 100 ohmů.

Pokud vám na Nano dochází pinů, můžete připojit RST na 3V3 - pak můžete D6 použít na něco jiného. U1701 lze resetovat v softwaru příkazem na SPI. Nikdy jsem s tím neměl problémy, ale pokud používáte svůj vlastní obvod v hlučném prostředí, může být lepší použít hardwarový reset.

Krok 3: Software

Software
Software

UC1701 můžete teoreticky řídit z knihovny U8g2 (nebo Ucglib nebo z jiných dostupných knihoven). Celé dny jsem bojoval, aby to fungovalo, a neuspěl jsem. Knihovna U8g2 je monstrum, protože dokáže řídit obrovské množství čipů a je velmi těžké dodržovat kód. A tak jsem to vzdal a napsal vlastní menší knihovnu. V Arduinu zabírá mnohem méně místa (přibližně 3400 bajtů plus písma).

Moji knihovnu si můžete stáhnout zde (tlačítko Stáhnout na této stránce). Součástí je ukázkový náčrt a uživatelská příručka. Webová stránka https://www.arduino.cc/en/Guide/Libraries popisuje, jak importovat knihovnu; přejděte do části „Import knihovny.zip“.

Inicializujte LCD pomocí

UC1701Begin ();

UC1701Begin může mít parametry ke změně pinů nebo ignorování pinu RST. Knihovna používá pouze hardwarové SPI (softwarové SPI není k dispozici). Displej lze překlopit v osách x a y. To je užitečné, pokud chcete LCD namontovat v jiné orientaci.

Z knihovny U8g2 bylo duplikováno několik procedur:

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

Některé postupy se mírně liší:

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

Postupům kreslení řetězců se předá index písma. Písma jsou deklarována ve flash paměti Arduina, takže nezabírají drahocenný SRAM. K dispozici jsou tři písma (malé, střední a velké). Jsou propojeny a zabírají flash paměť, pokud je používáte (přibližně 500 až 2 000 bajtů každý).

„Barva“je zpracována odlišně od knihovny U8g2. Když je displej LCD vymazán, má tmavé pozadí. Pokud je MakeMark (globální proměnná) pravdivý, kreslí se bíle. Pokud je MakeMark false, kreslení se provádí ve tmě.

Některé postupy jsou pro UC1701 jedinečné:

SetInverted kreslí spíše černou na bílou než bílou na černou.

neplatné SetInverted (bool inv);

Jas a kontrast UC1701 nastavuje:

  • neplatné SetContrast (hodnota uint8_t); // doporučeno je 14
  • neplatný SetResistor (hodnota uint8_t); // doporučeno je 7

Spolupracují celkem neuspokojivým způsobem.

SetEnabled vypne LCD:

void SetEnabled (bool en);

Při spánku displej zabírá 4uA. Měli byste také vypnout podsvícení - řídit jej z kolíku Nano. Po opětovném povolení bude UC1701 resetován; displej se vymaže a kontrast a odpor budou resetovány na výchozí hodnoty.

Takže na závěr, COG displeje jsou levné a slušné velikosti. Snadno se připojují k Arduinu.

Doporučuje: