Moduł wyświetlacza LCD o wymiarze 16x2 to prosty wyświetlacz tekstowy do wyświetlania informacji o zwarciach w układach elektronicznych. Może wyświetlać wartości, komunikaty, etykiety menu oraz status systemu bez wyświetlania grafiki. Działa z okablowaniem równoległym lub I2C i jest powszechna w projektach Arduino, licznikach, timerach i panelach sterujących. Ten artykuł zawiera informacje o okablowaniu, działaniu i konfiguracji.

Czym jest moduł wyświetlacza LCD 16x2?
Moduł wyświetlacza LCD o wymiarze 16x2 to wyświetlacz tekstowy używany do wyświetlania informacji krótkich w układach elektronicznych. Nie jest zaprojektowany do pełnej grafiki, jak wyświetlacze OLED czy TFT. Zamiast tego najlepiej korzystać z prostych informacji, takich jak odczyty napięcia, wartości temperatury, dane timera, komunikaty systemowe i etykiety w menu.
Każdy znak jest tworzony za pomocą małej matrycy kropek, zwykle 5x8 kropek. Ponieważ wyświetlacz jest prosty, przystępny cenowo i wspierany, pozostaje powszechnym wyborem w elektronice DIY, panelach sterowania i systemach wbudowanych.
Specyfikacje modułu wyświetlacza LCD 16x2
| Specyfikacja | Wartość |
|---|---|
| Format wyświetlania | 16 znaków × 2 linijki |
| Macierz znaków | 5 × 8 kropek |
| Łączna liczba pikseli | 1280 pikseli (32 znaki × 40 pikseli każdy) |
| Układ sterujący | HD44780U lub kompatybilny |
| Napięcie robocze | 5V DC |
| Prąd operacyjny | 1-3 mA (bez podświetlenia) |
| Strumień podświetlenia | 120-200 mA |
| Temperatura pracy | 0°C do +50°C |
| Tryby komunikacji | 4-bitowy lub 8-bitowy równoległy |
| Łączna liczba pinów | 16 kręgli |
Układ pinów i funkcje pinów LCD 16x2

| Starszy Nie | Pin nr | Nazwa kodu | Typ pinu | Opis przypinki | Połączenie PIN |
|---|---|---|---|---|---|
| 1 | Pin 1 | Grunt | Pin źródłowy | To jest pin uziemiający LCD | Podłączone do masy MCU/ Źródło zasilania |
| 2 | Pin 2 | VCC | Pin źródłowy | To jest pin napięcia zasilania LCD | Podłączony do pinu zasilania źródła zasilania |
| 3 | Pin 3 | V0/VEE | Pin kontrolny | Reguluje kontrast LCD. | Podłączony do zmiennego POT, który może dostarczać 0-5V |
| 4 | Pin 4 | Wybierz rejestr | Pin kontrolny | Przełącza się między Command/Data Register | Podłączam się do pinu MCU i otrzymuję albo 0, albo 1. |
| 0 -> Tryb poleceń | |||||
| 1-> Tryb danych | |||||
| 5 | Pin 5 | Odczyt/Zapis | Pin kontrolny | Przełącza LCD między operacją odczytu/zapisu | Podłączam się do pinu MCU i otrzymuję albo 0, albo 1. |
| 0 -> Operacja zapisu | |||||
| 1-> Operacja odczytu | |||||
| 6 | Pin 6 | Włącz | Pin kontrolny | Należy trzymać wysoko, aby wykonać operację Read/Write | Połączony z MCU i zawsze wysoko trzymany. |
| 7 | Pin 7-14 | Bity danych (0-7) | Pin danych/poleceń | Piny służą do wysyłania poleceń lub danych do LCD. | W trybie 4-przewodowym |
| Do MCU | podłączone są tylko 4 piny (0-3) | ||||
| W trybie 8-przewodowym | |||||
| Wszystkie 8 pinów (0-7) jest podłączonych do MCU | |||||
| 8 | Pin 15 | Pozytywny sygnał LED | Pin LED | Normalna funkcja LED do oświetlenia LCD | Podłączone do +5V |
| 9 | Pin 16 | LED Negatywny | Pin LED | Normalna funkcja LED do oświetlenia LCD podłączonego do GND. | Podłączony do masy |
Jak działa wyświetlacz LCD 16x2?

LCD 16x2 odbiera polecenia i dane znaków z mikrokontrolera. Polecenia kontrolują takie działania jak czyszczenie ekranu, przesuwanie kursora oraz włączanie lub wyłączanie wyświetlacza. Dane znaków mówią LCD, które litery, cyfry lub symbole ma pokazać.
Pin RS wybiera, czy sygnał przychodzący jest poleceniem czy danymi wyświetlanymi. Pin E umożliwia przeniesienie. Pinezki danych zawierają rzeczywiste informacje. Kontroler LCD umieszcza znaki we właściwej pozycji wyświetlania.
Tryby okablowania LCD 16x2: 4-bitowy, 8-bitowy i I2C

| Tryb | Piny używane do danych | Główna zaleta | Ograniczenie | Najlepsze dla |
|---|---|---|---|---|
| Tryb 4-bitowy | D4, D5, D6, D7 | Zapisuje piny GPIO | Nieco wolniejszy niż tryb 8-bitowy | Projekty Arduino, proste menu, wyświetlacze sensorów |
| Tryb 8-bitowy | D0 do D7 | Wysyła pełny bajt naraz | Używa więcej pinów GPIO | Starsze systemy lub konstrukcje z wieloma wolnymi pinami |
| Tryb I2C | SDA i SCL | Redukuje okablowanie | Potrzebny jest poprawny adres i biblioteka | Kompaktowe projekty i czystsze okablowanie |
Jak podłączyć wyświetlacz LCD 16x2 do Arduino?

Najczęściej stosowane połączenie Arduino korzysta z trybu 4-bitowego. Metoda ta wykorzystuje cztery piny danych LCD oraz kilka pinów sterujących.
| Pin LCD | Połącz się z Arduino | Cel |
|---|---|---|
| VSS | GND | Grunt |
| VDD | 5V | Zasilanie LCD |
| V0 / VEE | Środkowy pin potencjometru | Kontrola kontrastu |
| RS | Arduino digital pin | Wybiera polecenie lub dane |
| RW | GND | Tryb zapisu |
| E | Arduino digital pin | Włącz sygnał |
| D4-D7 | Cyfrowe piny Arduino | Transfer danych |
| A / LED+ | 5V przez rezystor, jeśli jest potrzebny | Podświetlenie pozytywne |
| K / LED- | GND | Podświetlenie negatywne |
Przykładowy kod Arduino
#include
// RS, E, D4, D5, D6, D7
LiquidCrystal lcd (12, 11, 5, 4, 3, 2);
void setup() {
lcd.begin(16, 2);
lcd.print ("16x2 LCD Ready");
lcd.setCursor(0, 1);
lcd.print ("Hello World");
}
void loop() {
}
Kod ten inicjalizuje LCD i drukuje tekst w obu wierszach.
Jak używać wyświetlacza LCD 16x2 z modułem I2C?

I2C 16x2 LCD ma do wyświetlacza przymocowaną małą deskę plecaka. Ta płytka przekształca standardowy interfejs równoległy w dwuprzewodowy interfejs komunikacyjny, wykorzystując SDA i SCL.
Wersja I2C jest przydatna, gdy projekt ma ograniczoną liczbę pinów mikrokontrolera lub wymaga czystszego okablowania. Potrzebne są tylko VCC, GND, SDA i SCL.
Podstawowy przykład kodu LCD I2C
#include
#include
Typowe adresy I2C: 0x27 lub 0x3F
LiquidCrystal_I2C lcd(0x27, 16, 2);
void setup() {
lcd.init();
lcd.backlighting();
lcd.setCursor(0, 0);
lcd.print ("I2C LCD Ready") );
lcd.setCursor(0, 1);
lcd.print(" "Adres: 0x27");
}
void loop() {
}
Jeśli wyświetlacz nie reaguje, użyj skanera I2C, aby znaleźć właściwy adres.
Równoległy LCD 16x2 vs I2C 16x2 LCD

| Cecha | Równoległy 16x2 LCD | I2C 16x2 LCD |
|---|---|---|
| Okablowanie | Zużywa więcej przewodów | Zużywa mniej przewodów |
| Zastosowanie GPIO | Wyżej | Dolny |
| Konfiguracja kodu | Wykorzystuje bezpośrednie mapowanie pinów | Używa adresu I2C |
| Skupienie na rozwiązywaniu problemów | Kolejność pinów, RS, E, linie danych | Adres, SDA/SCL, biblioteka |
| Wartość uczenia się | Lepsze do zrozumienia sygnałów LCD | Lepsze do szybkiego budowania projektu |
| Koszt | Tańsze | Zazwyczaj nieco wyższe |
| Najlepsze zastosowanie | Bezpośrednia kontrola i uczenie się | Kompaktowe okablowanie i ograniczone projekty GPIO |
Typowe problemy z LCD 16x2 i rozwiązywanie problemów
| Problem | Możliwa przyczyna | Rozwiązanie |
|---|---|---|
| Podświetlenie się włącza, ale tekst się nie pojawia | Zły kontrast lub nieudana inicjalizacja | Dostosuj kontrast i sprawdź kod |
| Czarne pudełka pojawiają się | LCD ma zasilanie, ale nie jest inicjalizowany | Sprawdź RS, E, piny danych i konfigurację biblioteki |
| Losowe znaki pojawiają się | Luźne przewody lub błędne mapowanie pinów | Sprawdź ponownie okablowanie i kolejność pinów kodowych |
| Brak podświetlenia | Piny A/K odwrócone lub brak podświetlenia | Sprawdź okablowanie LED+ i LED |
| I2C LCD nie wykryty | Zły adres lub problem z SDA/SCL | Uruchom skaner I2C |
| Tekst jest zbyt słaby | Słaby kontrast lub słabe napięcie zasilania | Wyreguluj V0 i sprawdź moc |
| Migotanie wyświetlacza | Niestabilne zasilanie lub powtarzające się czyszczenie ekranu | Używaj stabilnej mocy i ograniczaj częste clear() połączenia |
| Czasami wyświetlanie działa | Luźne połączenie płyty stykowej lub słabe połączenie lutownicze | Zabezpiecz okablowanie i sprawdź lutowanie |
Polecenia LCD 16x2 i niestandardowe znaki
Wyświetlacz LCD 16x2 obsługuje polecenia kontrolujące pozycję kursora, wyczyszczanie ekranu, przesuwanie tekstu oraz niestandardowe znaki. Postacie niestandardowe są przechowywane w CGRAM i mogą być używane jako małe ikony, takie jak symbole baterii, strzałki, znaki stopni, paski sygnalizacji czy bloki postępu.
Prosty przykład niestandardowej postaci
#include
LiquidCrystal lcd (12, 11, 5, 4, 3, 2);
bajt batteryIcon[8] = {
B01110,
B11011,
B10001,
B10001,
B11111,
B11111,
B11111,
B00000
};
void setup() {
lcd.begin(16, 2);
lcd.createChar(0, batteryIcon);
lcd.setCursor(0, 0);
lcd.print ("Bateria: ");
lcd.write(byte(0));
}
void loop() {
}
Niestandardowe znaki sprawiają, że wyświetlacz jest bardziej użyteczny dla prostych interfejsów użytkownika bez potrzeby ekranu graficznego.
Wyświetlacze LCD 16x2 vs OLED, TFT, 7-segmentowe i szeregowe
| Typ wyświetlania | Najlepsze dla | Przewaga | Ograniczenie |
|---|---|---|---|
| 16x2 LCD | SMS, numery i komunikaty statusowe | Niskie koszty i łatwość obsługi | Brak pełnej grafiki |
| I2C 16x2 LCD | Wyświetlanie tekstu z mniejszą liczbą przewodów | Proste okablowanie | Potrzebny jest poprawny adres i biblioteka |
| Wyświetlacz OLED | Ostry tekst i drobne grafiki | Wysoki kontrast i kompaktowy rozmiar | Mniejszy obszar wyświetlania w wielu modułach |
| Wyświetlacz TFT | Interfejs kolorów i grafika | Obsługuje obrazy i kolory | Bardziej złożony kod i okablowanie |
| Wyświetlacz 7-segmentowy | Wartości numeryczne | Bardzo czytelne dla liczb | Słaby tekst |
| Szeregowy LCD | Prosta komunikacja mikrokontrolerów | Łatwa kontrola | Często droższe |
Najczęściej zadawane pytania [FAQ]
Q1. Kiedy powinienem używać równoległego LCD zamiast LCD I2C?
Używaj równoległego LCD, gdy chcesz nauczyć się bezpośredniej kontroli LCD. Używaj LCD I2C, gdy potrzebujesz mniej przewodów i chcesz czystszego okablowania.
Q2. Dlaczego na LCD pojawiają się czarne okienka?
Czarne skrzynki oznaczają, że LCD ma zasilanie, ale nie jest poprawnie zaificjalizowany. Sprawdź kod, konfigurację biblioteki i połączenia elektryczne.
Q3. Co robi pin RS?
Pin RS wybiera, czy LCD otrzymuje polecenie, czy dane wyświetlania. Pomaga to LCD wiedzieć, czy sterować ekranem, czy pokazać postacie.
Q4. Dlaczego pin RW często jest podłączony do masy?
Większość projektów zapisuje dane tylko na LCD, więc RW jest podłączony do masy, aby utrzymać go w trybie zapisu. To również oszczędza jeden pin mikrokontrolera.
Q5. Dlaczego potrzebny jest skaner I2C?
Skaner I2C pomaga znaleźć właściwy adres LCD, taki jak 0x27 lub 0x3F. Jeśli adres jest błędny, wyświetlacz może nie odpowiadać.