การใช้งานจอ LCD 20x4

การใช้งานจอ LCD 20×4


บทความนี้ กล่าวถึงขั้นตอนการใช้งานจอ LCD2004 I2C 20×4 กับ Arduino UNO โดยใช้ Character LCD เป็นจอที่แสดงผลเป็นตัวอักษรตามช่องแบบตายตัว เช่น จอ LCD ขนาด 20×4 หมายถึงใน 1 แถว มีตัวอักษรใส่ได้ 20 ตัว และมีทั้งหมด 4 บรรทัดให้ใช้งาน

จอ LCD ปกติจะใช้สายไฟหลายเส้นในการต่อใช้งาน แต่โมดูล LCD2004 I2C ที่เลือกใช้ จะมีวงจรแปลงสัญญาณสำหรับติดต่อจอ LCD แบบอินเตอร์เฟส I2C ต่อแปลงการใช้สายไฟหลาย ๆ เส้น ให้เหลือสายไฟเพียง 2 เส้น ทำให้การเขียนโปรแกรมและการต่อวงจรทำได้ง่ายขึ้น เพียงแค่ใช้โมดูล LCD2004 I2C ไปต่อกับจอ LCD แบบเดิม ก็สามารถใช้งานได้ทันที โมดูล I2C LCD นี้จะมีตัวต้านทานปรับค่าได้สำหรับปรับความสว่างหน้าจอมาด้วย


การสื่อสารอนุกรมแบบ I2C



การสื่อสารอนุกรมแบบ I2C


I2C ย่อมาจาก inter integrated circuit (IIC) แต่นิยมเรียกว่า I2C มากกว่า เป็นการสื่อสารอนุกรมแบบ synchronous เพื่อใช้สื่อสารข้อมูลระหว่างอุปกรณ์ความเร็วต่ำ I2C มีความโดดเด่นที่การเชื่อมต่อกันเป็นระบบบัสแบบรับและส่งข้อมูล ซึ่งสามารถเชื่อมต่อกับอุปกรณ์จำนวนมากได้โดยใช้สายเพียงแค่ 2 เส้น ทำให้ลดจำนวนของสายไฟและขนาดของอุปกรณ์ไปได้ จึงทำให้เป็นการสื่อสารที่นิยมสำหรับระบบฝังตัว (embedded system) ขนาดเล็ก

รายการอุปกรณ์


ขั้นตอนการทํางาน

1 : ติดตั้งโปรแกรม Arduino IDE

สำหรับการเขียนโปรแกรมของ Arduino IDE นั้นจะใช้ภาษา C/C++ ซึ่งเป็นรูปแบบภาษาซีประยุกต์แบบหนึ่ง ที่มีโครงสร้างการทำงานของตัวภาษาโดยรวม คล้ายกับ ภาษาซีมาตรฐาน (ANSI-C) ทั่วๆไป เพียงแต่ได้มีการปรับปรุงเพื่อลดความยุ่งยากในการใช้งานลง เพื่อให้ผู้ใช้สามารถใช้งาน เขียนโปรแกรมได้ง่าย และสะดวกมากกว่าเขียนภาษาซี แบบมาตรฐาน

Arduino integrated development environment หรือเรียกสั้นๆว่า โปรแกรม Arduino IDE เป็นโปรแกรมที่ “แจกฟรี” ภายใต้เงื่อนไขในการใช้งานลักษณะ Open source ซึ่ง Arduino IDE จะทำหน้าที่ ติดต่อ ระหว่าง คอมพิวเตอร์ ของเรา (Windows, Mac OS X และ Linux) กับ บอร์ด Arduino ซึ่งโปรแกรมนี้ออกแบบให้ง่ายต่อการเขียนโค้ดและอัปโหลดโค้ดที่เราเขียน เข้าสู่ บอร์ด Arduino

โดย Download ตัวติดตั้งได้จาก

https://www.arduino.cc/en/Main/Software

เลือก Windows Installer, for Windows 7 and up

Download ตัวติดตั้ง Arduino IDE


คลิกเลือก JUST DOWNLOAD (หากต้องการร่วมบริจาคช่วยการพัฒนา Arduino Software สามารถกด CONTRIBUTE & DOWNLOAD)

เมื่อดาวน์โหลดเสร็จแล้ว ให้ติดตั้งตามที่โปรแกรมแนะนำ


2 : ติดตั้งไลบรารี LiquidCrystal_I2C



สำหรับการใช้งานโมดูล I2C LCD ต้องติดตั้งไลบรารี LiquidCrystal_I2C เพิ่มเข้าไปที่ Arduino IDE

ดาวน์โหลดไลบรารีได้ที่ : Arduino-LiquidCrystal-I2C-library-master

ไปที่ Code -> Download ZIP

ไลบรารี LiquidCrystal_I2C



เปิดโปรแกรม Arduino IDE ไปที่ Sketch -> Include Library -> Add .ZIP Library…

ไปที่ Sketch -> Include Library -> Add .ZIP Library…



ไปที่ ไลบรารี Arduino-LiquidCrystal-I2C-library-master.zip ที่เรา ดาวน์โหลด มา -> Open

ไลบรารี Arduino-LiquidCrystal-I2C-library-master.zip ที่เรา ดาวน์โหลด มา -> Open



ตรวจสอบที่ Sketch -> Include Library  จะพบ ไลบรารี Arduino-LiquidCrystal-I2C-library-master เพิ่มเข้ามาใน Arduino IDE ของเรา

ไลบรารี Arduino-LiquidCrystal-I2C-library-master เพิ่มเข้ามาใน Arduino IDE ของเรา


3 : อัพโหลดโค้ดให้กับ Arduino UNO


เชื่อมต่อสาย USB จาก คอมพิวเตอร์ ไปที่บอร์ด Arduino UNO



เปิดโปรแกรม Arduino IDE เขียนโปรแกรม หรือ Sketch ตามโค้ดด้านล่างนี้

#include <Wire.h>
#include <LiquidCrystal_I2C.h>
// Set the LCD address to 0x27 for a 20 chars and 4 line display
LiquidCrystal_I2C lcd(0x27, 20, 4);

void setup() {

  // initialize the LCD,
  lcd.begin();
  // Turn on the blacklight and print a message.
  lcd.backlight();
  lcd.clear();
  lcd.setCursor (0, 0); //
  lcd.print("LungMaker LCD2004 Test");
  lcd.setCursor (0, 1); //

  lcd.print("Please Wait - 3");
  lcd.setCursor (0, 1); //
  delay(1000);
  lcd.print("Please Wait - 2");
  delay(1000);
  lcd.setCursor (0, 1); //
  lcd.print("Please Wait - 1");
  delay(1000);
}

void loop() {

  // LungMaker.com LCD2004 with I2C custom code
  lcd.clear();// clearn previous values from screen
  lcd.setCursor (0, 0); //character zero, line 1
  lcd.print("LCD2004 I2C Example"); // print text

  lcd.setCursor (4, 1); //character 4, line 2
  lcd.print("LungMaker.com"); // print text

  lcd.setCursor (0, 2); //character 0, line 3
  lcd.print("Voltage: "); // print text
  float v = 8.254;// define or get voltage
  char VoltageStr[5];
  dtostrf(v, 5, 3, VoltageStr );
  lcd.setCursor (9, 2); //character 9, line 3
  lcd.print(VoltageStr); // print voltage
  lcd.setCursor (14, 2); //character 14, line 3
  lcd.print("V"); // print V at the end of voltage

  lcd.setCursor (0, 3); //character 0, line 4
  lcd.print("X: "); // print x
  float xdeg = -123.87;// define or get x degree (just example)
  lcd.setCursor (3, 3); //character 8, line 3
  lcd.print(xdeg); // print xdeg value


  lcd.setCursor (12, 3); //character 12, line 4
  lcd.print("Y: "); // print Y
  float ydeg = 32.8;// define or get y degree (just example)
  lcd.setCursor (15, 3); //character 15, line 4
  lcd.print(ydeg); // print ydeg value


  delay(1000);

}



ไปที่ Tools -> Board -> Arduino AVR Boards -> แล้วเลือกให้ตรงกับบอร์ดที่ใช้งาน สำหรับ Arduino UNO ให้เลือกบอร์ด Arduino Uno

สำหรับ Arduino UNO ให้เลือกบอร์ด Arduino Uno



เลือก Port โดยไปที่ Tools -> Port -> COM4
(โดย COM4 แต่ละเครื่องจะไม่เหมือนกัน ให้เลือกตามที่ปรากฎ)

เลือก Port โดยไปที่ Tools -> Port -> COM4



คลิกที่ Upload

คลิกที่ Upload


รอจนกระทั่งขึ้น Done uploading. ที่แถบด้านล่าง แสดงว่าเราอัพโหลดโปรแกรมลงบอร์ดได้สำเร็จแล้ว

4 : เชื่อมต่อ LCD เข้ากับ Arduino UNO

ประกอบ Sensor Shield V 5.0 เข้ากับ Arduino UNO

ประกอบ Sensor Shield V 5.0 เข้ากับ Arduino UNO



เชื่อมต่อสายระหว่าง LCD กับ Sensor Shield ตามรูปด้านล่าง


การใช้งานจอ LCD 20x4


ถ้ายังไม่เห็นตัวอักษร ให้ปรับความสว่างหน้าจอ LCD โดยใช้ไขควงหมุนปรับ Contrast ที่ R ปรับค่าได้สีฟ้า (ค่อยๆปรับจนกว่าจะเห็นตัวอักษร)

ปรับความสว่างหน้าจอ LCD


ผลลัพธ์การทำงาน แสดงตามรูปด้านล่าง แสดงว่าจอ LCD 20×4 พร้อมใช้งานกับ Arduino UNO แล้ว

การใช้งานจอ LCD2004 I2C 20x4  กับ Arduino UNO
การใช้งานจอ LCD 20x4