Spisu treści:

LCD COG dla Arduino Nano: 3 kroki
LCD COG dla Arduino Nano: 3 kroki

Wideo: LCD COG dla Arduino Nano: 3 kroki

Wideo: LCD COG dla Arduino Nano: 3 kroki
Wideo: Текстовые LCD дисплей на контроллере HD44780, Уроки Arduino 2024, Lipiec
Anonim
LCD COG dla Arduino Nano
LCD COG dla Arduino Nano

Ta instrukcja opisuje, jak używać wyświetlacza LCD COG z Arduino Nano.

Wyświetlacze COG LCD są tanie, ale nieco trudniejsze w obsłudze. (COG oznacza „Chip On Glass”). Ten, którego używam, zawiera układ sterownika UC1701. Wymaga tylko 4 pinów Arduino: SPI-clock, SPI-data, chip-select i command/data.

UC1701 jest sterowany przez magistralę SPI i pracuje pod napięciem 3,3V.

Tutaj opisuję, jak go używać z Arduino Nano. Powinno też działać z Arduino Mini lub Uno - wkrótce spróbuję.

To jest mój pierwszy projekt Arduino i nie pisałem C od dziesięcioleci, więc jeśli popełniam oczywiste błędy, daj mi znać.

Krok 1: Budowanie sprzętu

Budowanie sprzętu
Budowanie sprzętu
Budowanie sprzętu
Budowanie sprzętu
Budowanie sprzętu
Budowanie sprzętu

Kup wyświetlacz LCD COG zawierający układ UC1701. Powinien używać magistrali SPI, a nie interfejsu równoległego. Będzie miał około 14 pinów, które będą oznaczone nazwami podobnymi do tych wymienionych poniżej. (Nie potrzebujesz interfejsu równoległego z wieloma pinami oznaczonymi D0, D1, D2…)

Ten, który kupiłem, to: https://www.ebay.co.uk/itm/132138390168 Lub możesz wyszukać w serwisie eBay „12864 LCD COG”.

Wybierz taki, który ma dość szeroki ogon z pinami rozmieszczonymi co 1,27 mm - drobniejsze piny będą trudne do wlutowania. Upewnij się, że ma chip UC1701. Zwróć uwagę, jak na szóstym zdjęciu na stronie eBay jest napisane „ZŁĄCZE: COG/UC1701”.

Wyświetlacz jest przezroczysty i trudno powiedzieć, który jest z przodu, a który z tyłu. Uważnie przestudiuj moje zdjęcia. Zwróć uwagę, gdzie są piny 1 i 14 - są zaznaczone na ogonie.

Elastyczny ogon jest dość łatwy do lutowania, ale wymaga adaptera, dzięki czemu można go podłączyć do płytki stykowej. Kupiłem: https://www.ebay.co.uk/itm/132166865767 Lub możesz wyszukać w serwisie eBay "Adapter Smd SSOP28 DIP28".

Adapter ma 28-pinowy układ SOP z jednej strony lub 28-pinowy układ SSOP z drugiej strony. Układ SOP ma odstęp między pinami 0,05 (1,27 mm), który jest taki sam jak ogon wyświetlacza LCD.

Potrzebne będą również szpilki nagłówka. Za każdym razem, gdy kupuję Arduino lub inny moduł, jest on wyposażony w więcej pinów nagłówka niż potrzeba, więc prawdopodobnie już je masz. W przeciwnym razie wyszukaj w serwisie eBay „szpilki nagłówka 2,54 mm”.

Przylutuj 14 kołków nagłówka do adaptera. Nie wciskaj ich do końca - lepiej, jeśli tył adaptera jest płaski. Połóż go płasko na ławce, aby szpilki nie mogły być wepchnięte zbyt głęboko w otwory. Upewnij się, że szpilki znajdują się po stronie SOP płyty (tj. na większym chipie).

Opuszki ogona są w rodzaju okna. Ocynuj obie strony lutem. Ocynuj podkładki adaptera. Przytrzymaj końcówkę adaptera na miejscu, a następnie dotknij każdego padu lutownicą (będziesz potrzebował dość cienkiej końcówki).

Przeciągnij trochę gwintu przez otwory w adapterze, aby działał jako odciążenie. (Użyłem "przewodu transformatorowego").

Jeśli lutujesz go w niewłaściwy sposób, nie próbuj wylutować ogona. Wyjmij szpilki pojedynczo i przenieś je na drugą stronę planszy. (Tak, popełniłem ten błąd i przelutowałem ogonek, dlatego na zdjęciu jest trochę bałaganu.)

Krok 2: Łączenie z Arduino

Podłączanie do Arduino
Podłączanie do Arduino
Podłączanie do Arduino
Podłączanie do Arduino

W tej sekcji wyjaśniono, jak połączyć się z Arduino Nano. Będzie bardzo podobnie w przypadku Mini lub Uno, ale jeszcze tego nie próbowałem.

Przestudiuj schemat obwodu.

Arduino Nano podłączone do portu USB działa z napięciem 5V. Wyświetlacz LCD działa z napięciem 3,3V. Musisz więc zasilić LCD z pinu 3V3 Nano i zmniejszyć napięcie na każdym pinie kontrolnym z 5V do 3,3V.

Pinout LCD to:

  • 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 to Chip-Select. Jest on obniżany, aby wybrać (włączyć) układ UC1701. (CS może być nazywany CS0 lub En lub podobnie.)

RST jest resetowany. Jest wyciągany nisko, aby zresetować układ. (RST może nazywać się Reset.)

CD to polecenie/dane. Jest on obniżany podczas wysyłania poleceń do układu przez SPI. Jest wysoki podczas przesyłania danych. (CD może nazywać się A0.)

CLK i SDA to piny magistrali SPI. (SDA może nazywać się SPI-Data. CLK może być SCL lub SPI-Clock.)

VB0+ i VB0- są używane przez wewnętrzną pompę ładującą UC1701. Pompa ładująca generuje nieparzyste napięcia wymagane przez wyświetlacz LCD. Podłącz kondensator 100n między VB0+ i VB0-. Dokumentacja UC1701 zaleca 2uF, ale nie widziałem różnicy z tym konkretnym LCD.

Jeśli twój wyświetlacz LCD ma piny VB1 + i VB1, podłącz między nimi również kondensator 100n. (Jeśli twój wyświetlacz LCD ma pin VLCD, możesz spróbować podłączyć kondensator 100n między VLCD a Gnd. Nie miało to znaczenia w przypadku mojego LCD.)

Podłącz wyświetlacz LCD do Nano w następujący sposób:

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

("*" oznacza użycie potencjalnego dzielnika, aby zmniejszyć napięcie. Jeśli Arduino działa na 3V3 z niezależnego źródła, nie będziesz potrzebować rezystorów.)

3,3 V jest wyprowadzane przez Nano i może zapewnić wystarczający prąd dla wyświetlacza LCD. (Wyświetlacz rysuje około 250uA.)

5V jest również wyprowadzane przez Nano i może być używane do zasilania podświetlenia. Ogranicz prąd do podświetlenia za pomocą rezystora 100 omów.

Jeśli brakuje ci pinów w Nano, możesz podłączyć RST do 3V3 - wtedy możesz użyć D6 do czegoś innego. U1701 można zresetować programowo za pomocą polecenia na SPI. Nigdy nie miałem z tym żadnych problemów, ale jeśli używasz własnego obwodu w hałaśliwym otoczeniu, może lepiej użyć resetu sprzętowego.

Krok 3: Oprogramowanie

Oprogramowanie
Oprogramowanie

Teoretycznie możesz sterować UC1701 z biblioteki U8g2 (lub Ucglib lub innych dostępnych bibliotek). Walczyłem przez kilka dni, aby to zadziałało, i zawiodłem. Biblioteka U8g2 jest potworem, ponieważ może obsługiwać wiele różnych układów i bardzo trudno jest śledzić kod. Więc zrezygnowałem i napisałem własną, mniejszą bibliotekę. Zajmuje znacznie mniej miejsca w Arduino (ok. 3400 bajtów plus czcionki).

Moją bibliotekę możesz pobrać stąd (przycisk Pobierz na tej stronie). Dołączono przykładowy szkic i instrukcję obsługi. Strona internetowa https://www.arduino.cc/en/Guide/Libraries opisuje, jak zaimportować bibliotekę; przejdź do sekcji „Importowanie biblioteki.zip”.

Zainicjuj wyświetlacz LCD za pomocą

UC1701Rozpocznij();

UC1701Begin może przyjmować parametry, aby zmienić piny lub zignorować pin RST. Biblioteka używa tylko sprzętowego SPI (programowy SPI nie jest dostarczany). Wyświetlacz można obracać w osiach x i y. Jest to przydatne, jeśli chcesz zamontować wyświetlacz LCD w innej orientacji.

Kilka procedur zostało zduplikowanych z biblioteki U8g2:

  • Rysować linię
  • DrawPixel
  • DrawHLine
  • RysujLinię
  • DrawBox
  • DrawRamka
  • RysujOkrąg
  • DrawDisc
  • DrawFilledEllipse
  • RysujElipsę
  • Rysuj trójkąt
  • UC1701Ustaw kursor
  • UC1701Przejrzysty wyświetlacz

Niektóre procedury są nieco inne:

  • void DrawChar(uint8_t c, czcionka wyrazu);
  • void DrawString(znak * s, słowo Czcionka);
  • void DrawInt(int i, czcionka wyrazu);

Procedury rysowania ciągów są przekazywane jako indeks czcionki. Czcionki są zadeklarowane w pamięci flash Arduino, więc nie zajmują cennej pamięci SRAM. Dostępne są trzy czcionki (mała, średnia i duża). Są one połączone i zajmują pamięć flash tylko wtedy, gdy ich używasz (około 500 do 2000 bajtów każdy).

"Kolor" jest obsługiwany inaczej niż biblioteka U8g2. Gdy wyświetlacz LCD jest wyczyszczony, ma ciemne tło. Jeśli MakeMark (zmienna globalna) ma wartość true, rysowanie odbywa się na biało. Jeśli MakeMark ma wartość false, rysowanie odbywa się w ciemności.

Niektóre procedury są unikalne dla UC1701:

SetInverted rysuje w kolorze czarno-białym, a nie białym na czarnym.

void SetInverted(bool inv);

Jasność i kontrast UC1701 są ustawiane przez:

  • void SetContrast(wartość uint8_t); // sugerowany to 14
  • void SetResistor (wartość uint8_t); // sugerowana wartość to 7

Pracują razem w dość niezadowalający sposób.

SetEnabled wyłącza wyświetlacz LCD:

void SetEnabled(bool en);

Wyświetlacz pobiera 4uA podczas snu. Należy również wyłączyć podświetlenie - wyprowadzić je z pinu Nano. Po ponownym włączeniu UC1701 zostanie zresetowany; wyświetlacz zostanie wyczyszczony, a kontrast i rezystor zostaną zresetowane do wartości domyślnych.

Podsumowując, wyświetlacze COG są tanie i przyzwoite. Można je łatwo połączyć z Arduino.

Zalecana: