การใช้งาน Arduino Nano กับจอ LCD 16×2 (I2C)

1. บทนำ

จอ LCD (Liquid Crystal Display) 16×2 หมายถึงจอที่แสดงผลได้ 16 ตัวอักษร ต่อ 2 บรรทัด หากใช้งานแบบปกติจะต้องต่อสายจำนวนมาก แต่เมื่อใช้งานร่วมกับ I2C Module จะเหลือเพียง 4 สาย คือ:

  • VCC (ไฟเลี้ยง 5V)
  • GND (กราวด์)
  • SDA (สายข้อมูล)
  • SCL (สายนาฬิกา)

2. อุปกรณ์ที่ใช้

  • Arduino Nano
  • จอ LCD 16×2 พร้อมโมดูล I2C
  • สาย Jumper

3. การต่อวงจร (ตามภาพ)

  • VCC ของ LCD → 5V ของ Arduino
  • GND ของ LCD → GND ของ Arduino
  • SDA ของ LCD → A4 ของ Arduino Nano
  • SCL ของ LCD → A5 ของ Arduino Nano

4. โค้ด (โค้ดครูทีม)

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

// กำหนดที่อยู่ของจอ LCD (0x27) และขนาด (16x2)
LiquidCrystal_I2C lcd(0x27, 16, 2);

void setup() {
  lcd.init();           // เริ่มต้นการทำงานของจอ
  lcd.backlight();      // เปิดไฟพื้นหลัง

  lcd.setCursor(0,0);   // กำหนดตำแหน่งบรรทัดที่ 1
  lcd.print("I LOVE");

  lcd.setCursor(0,1);   // กำหนดตำแหน่งบรรทัดที่ 2
  lcd.print("Kru Teem!");
}

void loop() {
  lcd.scrollDisplayLeft(); // เลื่อนข้อความไปทางซ้าย
  delay(300);              // ความเร็วในการเลื่อน
}

5. คำอธิบายโค้ด

  1. #include <Wire.h> → ใช้สำหรับสื่อสารผ่านบัส I2C
  2. #include <LiquidCrystal_I2C.h> → ไลบรารีควบคุมจอ LCD แบบ I2C
  3. LiquidCrystal_I2C lcd(0x27, 16, 2); → ประกาศวัตถุ LCD โดยกำหนด Address ของจอ (0x27 มักใช้บ่อย แต่บางตัวอาจเป็น 0x3F)
  4. lcd.init(); → เริ่มต้นการทำงานของจอ
  5. lcd.backlight(); → เปิดไฟพื้นหลัง
  6. lcd.setCursor(x,y); → กำหนดตำแหน่งพิมพ์ข้อความ (x = ตำแหน่งแนวนอน, y = แถว 0 หรือ 1)
  7. lcd.print("ข้อความ"); → แสดงข้อความบนจอ
  8. lcd.scrollDisplayLeft(); → สั่งให้ข้อความเลื่อนทางซ้าย

6. สรุป

  • LCD 16×2 I2C ใช้สายสื่อสารเพียง 4 เส้น ทำให้ง่ายต่อการต่อวงจร
  • เราสามารถใช้ Arduino แสดงข้อความได้ทั้งแบบคงที่และแบบเลื่อน
  • ประยุกต์ใช้งานได้หลายอย่าง เช่น แสดงค่าจากเซ็นเซอร์, นาฬิกาดิจิทัล, ข้อความแจ้งเตือน