ข้ามไปที่เนื้อหา

LCD Display (16x2 / 20x4) with I2C

LCD Display

📋 ภาพรวม

จอ LCD (Liquid Crystal Display) รุ่น 16x2 (16 ตัวอักษร 2 แถว) และ 20x4 เป็นจอพื้นฐานที่นิยมที่สุดในงานไมโครคอนโทรลเลอร์ โดยส่วนใหญ่จะใช้คู่กับ I2C Interface Adapter เพื่อลดจำนวนสายที่ต้องใช้จาก 16 เส้น เหลือเพียง 4 เส้น

🔌 การต่อสาย (I2C)

การใช้โมดูล I2C Adapter ช่วยให้การต่อสายง่ายขึ้นมาก

พินโมดูล ฟังก์ชัน ต่อกับ Arduino Uno ต่อกับ ESP32 ต่อกับ STM32 (I2C1)
VCC ไฟเลี้ยง 5V 5V (หรือ 3.3V*) 5V (หรือ 3.3V*)
GND กราวด์ GND GND GND
SDA ข้อมูล A4 GPIO 21 PB7
SCL สัญญาณนาฬิกา A5 GPIO 22 PB6

*หมายเหตุ: จอ LCD ส่วนใหญ่ทำงานที่ 5V แต่ I2C บางรุ่นอาจรองรับ 3.3V โปรดตรวจสอบสเปกโมดูล

💻 โค้ดตัวอย่าง

ต้องติดตั้ง Library: LiquidCrystal I2C (โดย Frank de Brabander หรือตัวที่ได้รับความนิยม)

Arduino / ESP32

#include <Wire.h> 
#include <LiquidCrystal_I2C.h>

// ตั้งค่า Address ของ I2C (ส่วนใหญ่เป็น 0x27 หรือ 0x3F)
// และขนาดของจอ (16 ตัวอักษร 2 แถว)
LiquidCrystal_I2C lcd(0x27, 16, 2);  

void setup() {
  lcd.init();          // เริ่มต้นหน้าจอ
  lcd.backlight();     // เปิดไฟ Backlight

  lcd.setCursor(0,0);  // ไปที่หลัก 0 บรรทัด 0
  lcd.print("Hello, DIYer!");

  lcd.setCursor(0,1);  // ไปที่หลัก 0 บรรทัด 1
  lcd.print("GhostMicro DIY");
}

void loop() {
  // ไม่มีการทำงานซ้ำในส่วนนี้
}

🛠️ โปรเจค DIY

1. ป้ายชื่อดิจิทัล (Digital Name Tag)

ทำป้ายแสดงชื่อและข้อความต้อนรับวางไว้ที่โต๊ะทำงาน

2. จอแสดงผลข้อมูลเซ็นเซอร์

ใช้ร่วมกับเซ็นเซอร์ DHT22 เพื่อแสดงค่าอุณหภูมิและความชื้นแบบ Real-time บนหน้าจอ

⚠️ ข้อควรระวัง

จอไม่ชัดหรือไม่มีตัวอักษร?

ที่ด้านหลังโมดูล I2C Adapter จะมี Potentiometer (ตัวปรับค่าสลับสีน้ำเงิน) ให้ใช้ไขควงแบนขนาดเล็กปรับเพื่อเพิ่มหรือลดความเข้มของตัวอักษร (Contrast) หากปรับไม่ถูกจุด ตัวอักษรอาจไม่ขึ้นเลยหรือขึ้นเป็นแถบขาวทั้งหมด

I2C Address

หากใช้โค้ดแล้วจอไม่ขึ้น ให้ลองรันโค้ด I2C Scanner เพื่อหา Address ที่แท้จริงของโมดูลคุณ (ส่วนใหญ่มักเป็น 0x27 หรือ 0x3F)