Ya β LCD1602 16×2 dengan backpack I2C hanya perlukan empat wayar ke Arduino Uno: GND ke GND, VCC ke 5V, SDA ke A4 dan SCL ke A5, tambah satu library daripada Library Manager. Panduan ini mendawaikannya tanpa solder, mencari alamat sebenar modul anda, dan membaiki masalah skrin kosong serta teks bercelaru yang memenuhi inbox support kami.
Adakah cip I2C sudah disolder pada LCD ini?
Pada modul 1602 + I2C, ya β backpack I2C hitam itu tiba sudah disolder merentasi baris 16 pin paparan. Terbalikkan board dan semuanya ada di situ: cip antara muka, trimmer kontras biru, jumper backlight dan header 4 pin bengkok siku berlabel GND, VCC, SDA, SCL. Tiada apa-apa yang perlu disolder dalam binaan ini.
Varian Basic pula ialah kaca paparan yang sama tanpa backpack itu: antara muka selari 16 pin kosong yang perlukan sedozen wayar tambah potentiometer kontras anda sendiri. Ia pilihan yang betul hanya apabila rancangan pelajaran memang khusus meminta pendawaian selari β untuk selain daripada itu, versi I2C sedia solder itulah yang patut dibeli.
| Paparan | Antara muka | Warna skrin | Dapatkan di |
|---|---|---|---|
| 16×2 | I2C, sedia disolder | Putih atas biru | 1602 + I2C (Biru) β panduan ini |
| 16×2 | I2C, sedia disolder | Gelap atas hijau | Pilihan hijau pada halaman produk yang sama |
| 16×2 | Selari, tanpa backpack | Gelap atas hijau | 1602 Basic (Hijau) |
| 20×4 | I2C, sedia disolder | Putih atas biru | 2004 + I2C (Biru) |
| 20×4 | I2C, sedia disolder | Gelap atas hijau | Pilihan hijau pada halaman produk yang sama |
| 20×4 | Selari, tanpa backpack | Putih atas biru | 2004 Basic (Biru) |
Senarai komponen β paparan, board, kabel dan empat wayar antara kedua-duanya
Parts list
| Item | Price | Qty | |
|---|---|---|---|
LCD1602 LCD2004 Liquid Crystal Display Module with IIC I2C Basic 16x2 20x4For Arduino Display Application - 2004 + I2C (Blue)LCD2004 | RM19.95 |
Skrin 20x4 yang lebih besar. Pendawaian dan library serba sama β hanya baris constructor bertukar kepada (0x27, 20, 4).
Bagaimana backpack I2C menukar 16 pin menjadi 4?
Backpack ini membawa PCF8574 β sebuah port expander I2C: ia mendengar pada bus I2C dua wayar dan menyalin setiap byte yang diterimanya ke lapan pin output fizikal. Pengawal LCD itu sendiri, HD44780 yang klasik itu, ada mod 4-bit di mana setiap arahan tiba sebagai dua separuh byte pada talian data D4βD7. Lapan output expander cukup-cukup untuk menyuap empat talian data itu, tiga talian kawalan (RS, RW, E) dan satu transistor yang menghidupkan backlight β maka seluruh antara muka 16 pin runtuh menjadi SDA dan SCL sahaja.
Sebab itu jugalah sketch anda masih bercakap dengan paparan melalui library bernama LiquidCrystal: otak skrin tidak pernah berubah, hanya laluan penghantarannya. Dan kerana PCF8574 ialah cip beralamat generik, dua wayar yang sama boleh membawa peranti I2C lain serentak β setiap satu menjawab hanya pada alamatnya sendiri.

Bagaimana cara mendawai LCD1602 ke Arduino Uno?
Header 4 pin pada backpack terus dicucuk ke jumper wire male-to-female: hujung female duduk pada pin backpack, hujung male masuk ke header soket Uno. Tiada breadboard, tiada solder β koyakkan empat wayar daripada riben 40 wayar itu dan siap. Jalur header male yang terlepas dalam kotak Uno itu untuk projek lain; binaan ini langsung tidak menyentuhnya. Semuanya berjalan pada 5 V DC daripada port USB β voltan rendah, bekalan mains tidak pernah dekat dengan projek ini.
| Pin backpack | Pin Uno | Kenapa |
|---|---|---|
| GND | GND | Rujukan sepunya untuk kuasa dan bus I2C |
| VCC | 5V | HD44780 dan backlight-nya komponen 5 V β board 5 V memacunya terus |
| SDA | A4 | Talian data I2C Uno |
| SCL | A5 | Talian clock I2C Uno |
Uno turut mendedahkan dua pin khusus bertanda SDA dan SCL di sebelah AREF β ia net elektrik yang sama dengan A4 dan A5, jadi guna mana-mana pasangan yang lebih mudah; ia satu bus yang dikongsi, bukan port kedua. Satu perkara yang Uno ini tidak sertakan ialah kabel USB: ia diprogram melalui port USB-B saiz penuh, jadi ambil sekali kabel A-to-B bersamanya β atau pilih Uno CH340, yang memang menyertakan satu dalam kotak.
Nak tengok dulu cara sambung dan kuasa kali pertama dibuat depan kamera sebelum cucuk apa-apa?
Library mana perlu dipasang β dan alamat anda 0x27 atau 0x3F?
Pasang LiquidCrystal I2C oleh Frank de Brabander daripada Library Manager (Sketch β Include Library β Manage Libraries, cari “LiquidCrystal I2C”). Beberapa fork dengan nama hampir serupa duduk dalam senarai yang sama, jadi padankan nama penulisnya, bukan sekadar tajuknya. Kalau anda langsung tidak mahu fikirkan hal alamat, hd44780 oleh Bill Perry mengesan sendiri alamat dan pemetaan pin β tetapi berbaloi juga memahami apa yang dikesannya.
Alamat ditentukan oleh cip mana yang dibawa backpack anda, dan ia loteri batch. Datasheet PCF8574 menetapkan empat bit alamat atas pada 0100, memberikan 0x20β0x27; adiknya PCF8574A menjawab pada 0111, memberikan 0x38β0x3F. Tiga pad solder A0βA2 pada backpack tiba tanpa jambatan dari kilang, yang menarik ketiga-tiga bit alamat bawah ke tinggi β jadi PCF8574 mendarat di 0x27 dan PCF8574A di 0x3F. Kedua-dua cip memacu paparan dengan cara yang serupa; hanya nombor dalam sketch anda yang berubah. Jadi jangan teka β imbas:
// I2C scanner: cetak alamat setiap peranti yang ada pada bus.
// Jalankan ini DULU - ia beritahu sama ada nak tulis 0x27 atau 0x3F.
#include <Wire.h>
void setup() {
Wire.begin();
Serial.begin(9600);
Serial.println("Scanning...");
byte found = 0;
for (byte addr = 1; addr < 127; addr++) {
Wire.beginTransmission(addr);
if (Wire.endTransmission() == 0) { // ada peranti menjawab di sini
Serial.print("Device found at 0x");
if (addr < 16) Serial.print("0");
Serial.println(addr, HEX);
found++;
}
}
if (found == 0) Serial.println("No devices found - check SDA/SCL wiring");
}
void loop() {}
Upload, buka Serial Monitor pada 9600 baud, dan alamat yang tercetak itulah yang sketch anda pakai. Jika scanner tidak mencetak apa-apa langsung, punca biasa ialah SDA dan SCL tertukar β menyilangkan A4 dan A5 ialah kesilapan pendawaian paling mudah dalam binaan ini, dan penyelesaiannya cuma menukar semula dua wayar itu. Scanner ini bekerja dengan mengetuk setiap pintu: ia memulakan penghantaran pada setiap alamat dari 1 hingga 126 dan memeriksa sama ada ada yang mengakui dengan menarik talian data (SDA) ke rendah. Ini juga jawapan jujur tentang menukar alamat: ia ditetapkan dalam hardware, bukan dalam kod. Menjambat pad A0βA2 dengan solder mengikat input alamat itu ke ground dan menarik bitnya ke rendah β jambat A0 pada modul 0x27 dan ia menjadi 0x26 β dan itulah tepatnya cara dua paparan berkongsi satu bus.
Macam mana rupa sketch pertama?
Sepuluh baris setup sudah meletakkan teks pada kaca LCD1602 β gantikan dengan alamat yang scanner anda cetak:
// LCD1602 + backpack I2C pada Arduino Uno.
// Library: "LiquidCrystal I2C" oleh Frank de Brabander (Library Manager).
// Letak alamat yang scanner ANDA cetak dalam argumen pertama.
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 16, 2); // alamat, lajur, baris
// LCD2004: (0x27, 20, 4)
void setup() {
lcd.init(); // hidupkan PCF8574 dan HD44780 di belakangnya
lcd.backlight(); // nyalakan backlight LED
lcd.setCursor(0, 0); // lajur 0, baris 0 (baris atas)
lcd.print("Hello MakerHub");
}
void loop() {
lcd.setCursor(0, 1); // lajur 0, baris 1 (baris bawah)
lcd.print("Uptime: ");
lcd.print(millis() / 1000); // saat sejak dihidupkan
lcd.print("s");
delay(1000);
}
Ia compile kepada 3,496 bait β satu persepuluh daripada flash Uno. Dua panggilan yang paling kerap terlepas pandang oleh pemula ada di bahagian paling atas: lcd.init() mengejutkan pengawal masuk ke mod 4-bit, dan lcd.backlight() menyalakan LED β langkau salah satu dan paparan yang didawai sempurna pun kekal gelap. Untuk versi 20×4, hanya constructor yang berubah: (0x27, 20, 4).
Kenapa skrin kosong β atau keluar teks bercelaru?
Kontras dan backlight pada LCD1602 ialah dua litar yang berasingan, dan tersalah antara kedua-duanya ialah punca hampir setiap mesej skrin-kosong yang kami terima. Backlight cuma LED di belakang kaca, disuap melalui jumper hitam boleh tanggal pada backpack β ia menentukan sama ada skrin bercahaya. Kontras pula kerja trimmer biru: ia menetapkan voltan pacuan pada pin VO LCD, yang mengawal sekuat mana segmen kristal cecair menggelap β ia menentukan sama ada karakter kelihatan. Skrin yang bercahaya tanpa teks biasanya masalah kontras, bukan masalah data.
Jadi jadikan trimmer itu hentian pertama anda: kuasakan paparan dan pusingkannya perlahan-lahan dengan pemutar skru kecil sehingga karakter kelihatan tajam. Belum ada sketch dimuatkan? Set pada titik di mana baris atas blok samar mula kelihatan β itu sweet spot yang sama. Terlalu jauh ke satu arah, teks pudar hingga hilang; terlalu jauh ke arah satu lagi, setiap sel karakter penuh menjadi blok pejal. Set sekali dan ia kekal di situ β ia skru, bukan tombol yang berubah sendiri.

Apabila trimmer bukan jawapannya, simptom itu sendiri menamakan puncanya:
| Apa yang anda nampak | Punca paling mungkin | Penyelesaiannya |
|---|---|---|
| Backlight menyala, selain itu tiada apa-apa | Kontras terlalu rendah, atau alamat I2C salah | Pusing trimmer biru; kalau masih kosong, jalankan scanner |
| Satu baris blok pejal | Ada kuasa tetapi tidak pernah di-initialise | Alamat salah, atau sketch tidak pernah jalankan lcd.init() β imbas, kemudian semak constructor |
| Karakter bercelaru secara rawak | Wayar SDA/SCL longgar, atau alamat salah | Cucuk semula empat jumper itu, imbas semula, restart board |
| Langsung tiada cahaya | Jumper backlight tercabut, atau tiada kuasa | Pasang semula penutup jumper hitam; semak GND dan VCC |
Kes satu-baris-blok berhak diberi sedikit penjelasan mekanisme: blok itu ialah apa yang HD44780 tunjukkan apabila ia ada kuasa dan kontras tetapi tidak pernah menerima jujukan initialisation-nya β paparan itu sedang memberitahu anda “saya hidup, cuma tiada siapa bercakap dengan saya”. Itu masalah software atau alamat, bukan sekali-kali skrin yang rosak.
Kesilapan biasa yang kami nampak daripada pelanggan sebenar
“This lcd is already soldered with i2c chip?” β Untuk varian +I2C, ya: backpack dihantar sedia disolder, dan header empat pin itulah satu-satunya sambungan yang anda buat. Kalau tidak pasti versi mana di tangan anda, terbalikkan sahaja β board hitam di belakang itulah antara muka I2C.
“lcd1602 + I2C last time brough with u need install what library ah” β LiquidCrystal I2C oleh Frank de Brabander, daripada Library Manager. Library LiquidCrystal biasa yang datang bersama IDE adalah untuk versi selari yang kosong β ia compile tanpa bantahan tetapi tidak mampu mencapai paparan yang tergantung pada bus I2C, jadi skrin kekal kosong.
“i cant change the address of the lcd” β Alamat tidak ditetapkan dalam kod, jadi tiada sketch yang boleh mengubahnya: ia tinggal dalam hardware backpack. Yang anda boleh buat ialah membacanya (dengan scanner) atau memindahkannya (jambat pad solder A0βA2 untuk menarik bit alamat ke rendah). Untuk satu paparan, letak sahaja apa yang scanner cetak ke dalam constructor dan ia terus berfungsi.
Memusing kawalan yang salah untuk simptomnya. Cahaya itu kerja jumper backlight; kebolehlihatan itu kerja trimmer kontras. Padankan penyelesaian dengan jadual simptom di atas sebelum menyentuh mana-mana satu.
FAQ
Apakah alamat I2C LCD1602 saya?
Sama ada 0x27 atau 0x3F, bergantung pada cip expander mana yang dibawa oleh batch backpack anda β modul PCF8574 dihantar pada 0x27, PCF8574A pada 0x3F. Jalankan sketch I2C scanner di atas dan guna alamat yang dicetaknya; meneka ada kadar gagal separuh-separuh macam terbalikkan duit syiling.
Boleh guna kod yang sama untuk LCD2004?
Boleh. Modul 20×4 guna backpack yang sama, pendawaian yang sama dan library yang sama β tukar constructor kepada LiquidCrystal_I2C lcd(0x27, 20, 4); dan selebihnya kekal tanpa sebarang ubah.
Kenapa LCD saya tunjuk satu baris blok putih?
Paparan itu ada kuasa dan kontras tetapi tidak pernah di-initialise. Kebiasaannya sketch sedang bercakap ke alamat I2C yang salah, jadi jujukan init tidak pernah sampai β jalankan scanner dan betulkan constructor. Kalau alamat memang betul, pastikan lcd.init() benar-benar ada dalam setup().
Perlukah breadboard atau pemateri solder untuk binaan ini?
Kedua-duanya tidak perlu. Backpack tiba sedia disolder pada paparan, pin header-nya male, jumper wire-nya male-to-female, dan header Uno pula soket female β setiap sambungan dalam rantaian ini cucuk terus sahaja.
Boleh sambung dua LCD pada satu Arduino?
Boleh β itulah gunanya pad A0βA2. Jambat satu pad pada backpack kedua supaya ia menjawab pada alamat yang berbeza, kemudian cipta dua objek LiquidCrystal_I2C, satu untuk setiap alamat. Kedua-dua paparan berkongsi wayar A4/A5 yang sama.

Sebaik sahaja paparan mencetak dengan stabil, ia menjadi skrin bacaan untuk hampir apa sahaja: jam digital DS3231 kami meletakkan waktu langsung pada skrin yang sama ini, dan kunci password keypad 4×4 menggantungkan paparannya pada bus I2C A4/A5 yang sama anda dawai di sini. Imbas dahulu, dawai empat pin, dan selebihnya cuma lcd.print().
Kemas kini terakhir Ogos 2026. Tersangkut? Chat dengan kami di WhatsApp.



LCD1602 LCD2004 Liquid Crystal Display Module with IIC I2C Basic 16x2 20x4For Arduino Display Application - 1602 + I2C (Blue)
Arduino Compatible UNO R3 FT232 Development Board Arduino Compatible CH340 Alternative
Data Cable Type-A Type-C MicroUSB Type-B 0.5m 1m 30cm 0.3m 100cm Data Transfer Upload Code - TYPE-A TO TYPE-B (1.0M)
40pcs Dupont Wire 10cm 20cm 30cm for Breadboard DIY Experiment Jumper Wire Breadboard wire - DUPONT WIRE M-F 20CM
LCD1602 LCD2004 Liquid Crystal Display Module with IIC I2C Basic 16x2 20x4For Arduino Display Application - 2004 + I2C (Blue)