เขียนโค้ดให้บอร์ดทักทาย! สอนต่อจอ LCD 16x2 กับ Arduino ฉบับจับมือทำ

Arduino with LCD Display Text

อยากให้โปรเจกต์ของเราสื่อสารได้ เริ่มยังไงดี?

สมมติว่าคุณกำลังทำเครื่องวัดอุณหภูมิ หรือสร้างหุ่นยนต์สักตัว คงจะดีไม่น้อยถ้ามันสามารถแสดงค่าตัวเลข หรือส่งข้อความทักทายเราออกมาเป็นตัวหนังสือได้เลย โดยที่เราไม่ต้องคอยเสียบสาย USB ต่อเข้าคอมพิวเตอร์เพื่อดูผลลัพธ์ตลอดเวลา

บทความนี้จะพาคุณมาลุยโปรเจกต์เบสิกที่คลาสสิกที่สุด นั่นคือการเชื่อมต่อจอ LCD 16x2 เข้ากับบอร์ด Arduino Uno เพื่อแสดงข้อความบนหน้าจอครับ ถือเป็นพื้นฐานสำคัญที่นำไปต่อยอดกับโปรเจกต์อิเล็กทรอนิกส์และหุ่นยนต์ได้อีกเพียบ!

อุปกรณ์ที่ต้องใช้ (Supplies)

หาของมาวางบนโต๊ะให้พร้อมตามลิสต์นี้เลยครับ:

  • บอร์ดไมโครคอนโทรลเลอร์ Arduino Uno
  • หน้าจอ LCD ขนาด 16x2
  • เบรดบอร์ด (Breadboard) สำหรับต่อวงจร
  • สายจัมเปอร์ (Jumper wires)
  • ตัวต้านทานปรับค่าได้ (Potentiometer) สำหรับปรับความสว่าง/ความคมชัดของจอ
  • ตัวต้านทานขนาด 100 Ohm (ในต้นฉบับระบุ 1k Resistor ในลิสต์อุปกรณ์ แต่ตอนต่อวงจรไฟแบคไลท์ใช้ 100 Ohm ครับ)
Supplies List
View more (ดูรูปอุปกรณ์เพิ่มเติม)
Supply Item 1 Supply Item 2 Supply Item 3 Supply Item 4 Supply Item 5

Step 1-3: การเตรียมบอร์ดและต่อไฟเลี้ยง (Power & Backlight)

เริ่มต้นจากการต่อไฟเลี้ยงเข้าเบรดบอร์ด เพื่อกระจายไฟไปให้อุปกรณ์ตัวอื่นๆ ครับ:

  1. วางบอร์ด Arduino และ Breadboard ไว้คู่กัน
  2. นำสายจัมเปอร์ต่อจากขา 5V ของบอร์ด Arduino ไปที่แถบขั้วบวก (Positive rail) ของ Breadboard และต่อขา GND ไปที่แถบขั้วลบ (Negative rail)
  3. เสียบหน้าจอ LCD ลงบน Breadboard (สมมติว่าครอบคลุมช่วงขา a15 ถึง a30)
  4. ต่อไฟแบคไลท์ (Backlight): ลากสายจากแถบขั้วบวกมาใกล้ๆ ขาของจอ นำตัวต้านทาน 100 Ohm มาต่อเข้าที่ขา 15 ของ LCD (เพื่อจ่ายไฟให้แบคไลท์) จากนั้นต่อสายจากขั้วลบ (GND) เข้าที่ขา 16 ของ LCD ให้ครบวงจร
Arduino and Breadboard Setup
View more (ดูรูปการต่อไฟแบคไลท์)
LCD Backlight Wiring

Step 4-7: การเชื่อมต่อสายสัญญาณและตัวปรับความสว่าง

ขั้นตอนนี้เราจะโยงสายข้อมูล (Data Pins) เพื่อให้บอร์ดส่งข้อความไปหาจอได้ และต่อตัวปรับความคมชัด (Potentiometer) ครับ:

  • สายสัญญาณข้อมูล (Data Pins): ต่อขา 14 ของ LCD ไปที่ขา Digital 2 บนบอร์ด Arduino, ขา 13 ไปที่ D3, ขา 12 ไปที่ D4, และขา 11 ไปที่ D5
  • ต่อ Potentiometer: นำตัวต้านทานปรับค่าได้เสียบลง Breadboard ต่อขาหนึ่งเข้าขั้วบวก อีกขาเข้าขั้วลบ ส่วน "ขาตรงกลาง (Wiper)" ให้ต่อเข้าที่ขา 3 ของ LCD เพื่อเอาไว้หมุนปรับความคมชัดของตัวหนังสือ
  • สายควบคุม (Control Pins): ต่อขา 1 ของ LCD ลง GND (ขั้วลบ) / ต่อขา 2 ของ LCD เข้า VCC (ขั้วบวก) / ต่อขา 4 (RS) เข้า D12 / ต่อขา 5 (R/W) ลง GND เพื่อให้จออยู่ในโหมดเขียนเสมอ / และต่อขา 6 (Enable) เข้าที่ขา D11 ของบอร์ด
Data Pins Connection
View more (ดูรูปการต่อสายสัญญาณและ Potentiometer)
Potentiometer 1 Potentiometer 2 Control Pins Power Potentiometer 1 Power Potentiometer 2

Step 8-10: โครงสร้างโค้ดและการอัปโหลดเพื่อดูผลลัพธ์

เมื่อฮาร์ดแวร์พร้อมแล้ว ต่อมาคือการเขียนโค้ดสั่งงานบนโปรแกรม Arduino IDE โครงสร้างหลักๆ จะมีการเรียกใช้ไลบรารี LiquidCrystal กำหนดขาเชื่อมต่อให้ตรงกับที่เราต่อสายไว้ และสั่งพิมพ์ข้อความลงไป

ไปที่เมนู Tools > Board เลือกเป็น Arduino Uno และเลือก Port ให้ถูกต้อง จากนั้นกดปุ่มเครื่องหมายถูก (Verify) เพื่อเช็คความถูกต้องของโค้ด และกดปุ่มลูกศรขวา (Upload) เพื่อส่งโปรแกรมลงบอร์ด

View more (ดูตัวอย่าง Code และการกดอัปโหลด / Copy Code)
Code Structure Upload Code

นำโค้ดภาษา C++ ด้านล่างนี้ไปวางใน Arduino IDE ของคุณได้เลยครับ:

#include <LiquidCrystal.h>

LiquidCrystal lcd(12, 11, 5, 4, 3, 2);

void setup() {
  lcd.begin(16, 2);
  lcd.setCursor(0, 0);
  lcd.print("hello");
  lcd.setCursor(0, 1);
  lcd.print("world");
}

void loop() {

}

แท่นแท้นนน! ถ้าทำทุกอย่างถูกต้อง หน้าจอจะสว่างขึ้นมา (ถ้าตัวหนังสือไม่ชัด ให้ลองใช้ไขควงหมุนปรับที่ตัว Potentiometer) และแสดงคำว่า Hello ในบรรทัดแรก และ World!! ในบรรทัดที่สอง ถือเป็นการจบโปรเจกต์จอ LCD อย่างสวยงามครับ!

LCD Hello World Output

เริ่มโปรเจกต์หุ่นยนต์ของคุณเองได้แล้ววันนี้!

อยากลองทำโปรเจกต์เจ๋งๆ หรือกำลังตามหาบอร์ด Arduino และเซ็นเซอร์ไปประกอบร่างอยู่ใช่ไหม? เข้ามาดูอุปกรณ์และทริคดีๆ กับเราได้เลย:

คำเตือน: เนื้อหานี้เป็นการสรุปและเรียบเรียงจากบทความต้นฉบับภาษาอังกฤษ ข้อมูลฉบับภาษาไทยอาจมีความคลาดเคลื่อนบางประการจากการตีความหรือย่อเนื้อหา โปรดอ้างอิงและตรวจสอบการต่อวงจรโดยละเอียดจากต้นฉบับ
อ้างอิงจาก (References):

แท็ก


Blog posts

เข้าสู่ระบบ

ลืมรหัสผ่านใช่ไหม?

ยังไม่มีบัญชีใช่ไหม?
สร้างบัญชี