- Wymagany materiał
- Schemat obwodu
- 128 * 64 graficzny wyświetlacz LCD
- Konwersja obrazu na kod szesnastkowy:
- Kod Arduino i objaśnienie robocze
Istnieje wiele rodzajów wyświetlaczy LCD używanych w projektach elektronicznych. W wielu naszych projektach używaliśmy już 16X2 LCD, a także używaliśmy TFT LCD z Arduino. Możesz znaleźć cały nasz projekt związany z wyświetlaczem LCD 16X2, klikając ten link, w tym łącząc się z 8051, AVR, Arduino i wieloma innymi.
ST9720 graficzny LCD jest całkowicie odmienne od zwyczajnych LCD. Zwykły wyświetlacz LCD może drukować tylko zwykły tekst lub liczby o ustalonym rozmiarze. Ale w graficznych wyświetlaczach LCD mamy 128 * 64, co odpowiada 8192 punktom lub 8192/8 = 1024 pikselom, więc oprócz znaku możemy wyświetlić dowolny obraz graficzny na tym GLCD.
Połączyliśmy już GLCD z 8051, dziś połączymy graficzny wyświetlacz LCD z Arduino, aby wyświetlać na nim tekst i obrazy.
Wymagany materiał
- Arduino UNO
- 128 * 64 graficzny LCD ST9720
- Potencjometr-10k
- Przewody łączące
- Płytka prototypowa
Schemat obwodu
128 * 64 graficzny wyświetlacz LCD
Ten graficzny wyświetlacz LCD ma niskie zużycie energii i nadaje się również do przenośnego urządzenia zasilanego z baterii. Ma szeroki zakres napięcia roboczego od 2,2 V do 5,5 V i obsługuje zarówno komunikację szeregową, jak i 8/4-bitową komunikację równoległą oraz jest wyposażony w kontroler / sterownik LCD ST7290. Tryb komunikacji interfejsu można przełączać między równoległym i szeregowym za pomocą PSB PIN 15. Ten graficzny wyświetlacz LCD ma funkcję automatycznego resetowania po włączeniu i może być łatwo kontrolowany przez MCU, takie jak 8051, AVR, ARM, Arduino i Raspberry Pi.
Możesz przejrzeć arkusz danych, aby uzyskać szczegółowe informacje na temat graficznego wyświetlacza LCD ST7290 128 * 64
Konfiguracja pinów
Nr pinu |
Nazwa pinu |
Opis |
1 |
Gnd |
Zacisk uziemienia |
2 |
Vcc |
Napięcie wejściowe zasilania (2,7 V do 5,5 V) |
3 |
Vo |
Kontrast wyświetlacza LCD |
4 |
RS |
Zarejestruj się Wybierz RS = 0: Rejestr instrukcji RS = 1: Rejestr danych |
5 |
R / W |
Kontrola odczytu / zapisu |
6 |
mi |
Włączyć |
7,8,9,10,11,12,13,14 |
DB0, DB1, DB2, DB3, DB4, DB5, DB6, DB7 |
Piny danych (używane w równoległym trybie komunikacji 8/4-bitowej) |
15 |
PSB |
Wybór interfejsu: Niski (0) dla trybu komunikacji szeregowej Wysoki (1) dla trybu magistrali równoległej 8/4-bitowej. |
16 |
NC |
Nie połączony |
17 |
RST |
Resetuj pin |
18 |
Vout |
Wyjście podwajacza napięcia LCD. VOUT ≦ 7V. |
19 |
BLA |
Podświetlenie dodatnie |
20 |
BLK |
Podświetlenie Ujemne zasilanie |
Aplikacje
- Urządzenie przemysłowe
- Systemy wbudowane
- Bezpieczeństwo
- Medyczny
- Sprzęt ręczny
Konwersja obrazu na kod szesnastkowy:
Aby wyświetlić dowolny obraz na graficznym wyświetlaczu LCD, potrzebujemy kodu HEX tego obrazu, więc oto kilka kroków, aby przekonwertować obraz na kod HEX. Wcześniej musisz upewnić się, że rozmiar obrazu nie powinien przekraczać 128 * 64.
Krok 1: Zmniejsz rozmiar normalnego obrazu do 128 * 64 lub mniej, co możesz zrobić za pomocą dowolnego oprogramowania do edycji obrazu, takiego jak MS Paint.
Jak pokazano na powyższym obrazku, ustawiamy szerokość i wysokość obrazu na 128 * 64.
Krok 2: Następnie musisz zapisać obraz w formacie „nazwa_obrazu .bmp ”.
Wybierz format pokazany na powyższym obrazku i zapisz plik do dalszego przetwarzania.
Krok-3: Po zapisaniu go w formacie „.bmp” musisz przekonwertować obraz na kod szesnastkowy w celu wydrukowania. W tym celu używam oprogramowania o nazwie GIMP 2, które konwertuje plik BMP na kod szesnastkowy.
Jak pokazano na powyższym obrazku, otworzyliśmy plik w formacie „.bmp” w oprogramowaniu GIMP 2.
Krok 4: Po pobraniu oprogramowania, należy otworzyć plik obrazu w formacie BMP, który chcesz wydrukować, a następnie zapisać w niej w „ .xbm ” (X bitmapy) format. Po zapisaniu otwórz ten plik za pomocą Notatnika, a otrzymasz kod szesnastkowy obrazu.
Jak pokazano na poniższym obrazku, wybierz opcję Eksportuj, aby zapisać plik w formacie xbm :
Wybierz format pokazany na poniższym obrazku i wyeksportuj plik obrazu.
Po wyeksportowaniu pliku otrzymasz plik w formacie „.xbm”. Otwórz plik xbm za pomocą Notatnika, a otrzymasz kod HEX, jak pokazano na poniższym obrazku.
Kod Arduino i objaśnienie robocze
Aby połączyć graficzny wyświetlacz LCD z Arduino, najpierw musimy zdefiniować bibliotekę używaną do graficznego wyświetlacza LCD. Arduino nie ma tej biblioteki, musisz pobrać i zainstalować tę bibliotekę z tego linku. Następnie możesz dołączyć bibliotekę, jak poniżej:
#include „U8glib.h”
Tutaj ' u8g (10) ' definiuje połączenie pinu RS (Register Select) graficznego wyświetlacza LCD z 10. pinem Arduino UNO. Pin RS używany jako „chip select” i „Register Select”, gdy jest używany odpowiednio w trybie szeregowym i równoległym. Tak więc używamy trybu szeregowego i pin RS ustawionego na wysoki (1) dla włączonego układu i niski (0) dla układu wyłączonego.
U8GLIB_ST7920_128X64_4X u8g (10);
Teraz, aby wydrukować obraz, musimy umieścić kod Hex obrazu w poniższym kodzie. Możesz wydrukować dowolny inny obraz, wszystko, co musisz zrobić, to wkleić kod szesnastkowy obrazu.
const uint8_t rook_bitmap U8G_PROGMEM = { Wklej tutaj kod szesnastkowy obrazu };
Sprawdź pełny kod Arduino na końcu tego artykułu.
Poniższa funkcja służy do drukowania obrazu, polecenie używane do drukowania to „u8g.drawXBMP (x, y, szerokość obrazu, wysokość obrazu)” . Gdzie X i Y to pozycja początkowa obrazu na LCD i musimy również wpisać rozmiar obrazu, który nie powinien przekraczać 128 * 64 iw ostatnim argumencie wywołaliśmy funkcję, w której umieściliśmy kod HEX obrazu.
void picture (void) {u8g.drawXBMP (0, 0, 128, 64, rook_bitmap); }
Zrobiliśmy dwie funkcje o nazwie „draw” i „next”, w których kod do wypisywania treści jest zapisywany za pomocą polecenia „u8g.drawStr (x, y,” abcd ”)”. W tym przypadku x i y to pozycja na wyświetlaczu LCD, na której zostanie wydrukowana treść, a „ abcd ” to treść do wydrukowania.
void draw (void) {u8g.setFont (u8g_font_unifont); u8g.drawStr (07, 35, "PRZEGLĄD OBWODU"); } void next (void) {u8g.setFont (u8g_font_unifont); u8g.drawStr (0, 15, "Interfejs"); u8g.drawStr (0, 35, "Graficzny wyświetlacz LCD"); u8g.drawStr (0, 55, "z Arduino"); }
Funkcja clearLCD () służy do czyszczenia wyświetlacza LCD poprzez nadanie funkcji wartości null.
void clearLCD () {u8g.firstPage (); do {} while (u8g.nextPage ()); }
Ustaw piksel, kolor i intensywność za pomocą poniższego kodu
void setup (void) {if (u8g.getMode () == U8G_MODE_R3G3B2) {u8g.setColorIndex (255); // biały} else if (u8g.getMode () == U8G_MODE_GRAY2BIT) {u8g.setColorIndex (3); // maksymalna intensywność} else if (u8g.getMode () == U8G_MODE_BW) {u8g.setColorIndex (1); // piksel włączony} else if (u8g.getMode () == U8G_MODE_HICOLOR) {u8g.setHiColorByRGB (255,255,255); }}
Nieważne pętli nadal drukować tekst i obraz po określonym opóźnieniem. Najpierw wydrukowaliśmy „Circuit Digest” za pomocą funkcji rysowania i po 2 sekundach. opóźnienia wyczyściliśmy ekran za pomocą funkcji clearLCD, a następnie wydrukowaliśmy „ Interfacing Graphical LCD using Arduino ” za pomocą funkcji next . Następnie wydrukowaliśmy obraz za pomocą funkcji picture (), która pozostanie na ekranie przez 3 sekundy. Będzie to trwało do momentu włączenia zasilania.
void loop (void) {u8g.firstPage (); do {draw (); } while (u8g.nextPage ()); opóźnienie (2000); clearLCD (); u8g.firstPage (); Zrób następne(); } while (u8g.nextPage ()); opóźnienie (2000); clearLCD (); u8g.firstPage (); do {obraz (); } while (u8g.nextPage ()); opóźnienie (3000); clearLCD (); opóźnienie (50); }
Po zaprogramowaniu Arduino przy użyciu podanego kodu, należy połączyć graficzny wyświetlacz LCD zgodnie ze schematem z Arduino i zasilić Arduino za pomocą adaptera lub USB. Zawartość i obraz zostaną wydrukowane na graficznym wyświetlaczu LCD, jak pokazano na poniższym filmie.
Sprawdź także interfejs graficzny LCD Nokia 5110 z Arduino,