การใช้งานจอ LCD 16x2 กับ STM32 รุ่น STM32F407VET6
การใช้งานจอ LCD 16×2 กับ STM32 รุ่น STM32F407VET6

บทความนี้ กล่าวถึงขั้นตอนการใช้งานจอ LCD 16×2 กับ STM32 รุ่น STM32F407VET6 โดยใช้ Character LCD เป็นจอที่แสดงผลเป็นตัวอักษรตามช่องแบบตายตัว เช่น จอ LCD ขนาด 16×2 หมายถึงใน 1 แถว มีตัวอักษรใส่ได้ 16 ตัว และมีทั้งหมด 2 บรรทัดให้ใช้งาน

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



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

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

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



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

1 : ทดสอบการใช้งาน STM32 รุ่น STM32F407VET6

ทดสอบการใช้งานเบื้องต้นของบอร์ด STM32 รุ่น STM32F407VET6 ตามลิงค์ด้านล่าง



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

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

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

ไปที่ Code -> Download ZIP

ไลบรารี LiquidCrystal_I2C



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

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



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

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



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

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



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


เขียนโปรแกรมและอัพโหลดโค้ดด้านล่างนี้ ไปที่ STM32



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

// Set the LCD address to 0x27 for a 16 chars and 2 line display
LiquidCrystal_I2C lcd(0x27, 16, 2);

void setup()
{
  lcd.begin();
  lcd.backlight();
  lcd.setCursor(0, 0);
  lcd.print(" I2C LCD with ");
  lcd.setCursor(0, 1);
  lcd.print(" STM32F407VET6 ");
}

void loop()
{
  // Do nothing here…
}



การใช้งานจอ LCD 16x2 กับ STM32 รุ่น STM32F407VET6
การใช้งานจอ LCD 16x2 กับ STM32 รุ่น STM32F407VET6



4 : เชื่อมต่อ I2C LCD เข้ากับ STM32 ตามรูปด้านล่าง

เชื่อมต่อสายระหว่าง I2C LCD กับ STM32F407VET6


การใช้งานจอ LCD 16x2 กับ STM32 รุ่น STM32F407VET6
ขา STM32F407VET6
ขา STM32F407VET6



5 : ผลลัพธ์การทำงาน

เชื่อมต่อแหล่งจ่ายไฟ 5V ให้กับ STM32 โดยเสียบสาย USB ระหว่าง STM32 กับ คอมพิวเตอร์ หรือ พาวเวอร์แบงค์

การใช้งานจอ LCD 16x2 กับ STM32 รุ่น STM32F407VET6



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

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


ผลลัพธ์การทำงาน บรรทัดบนแสดง I2C LCD with และ บรรทัดล่างแสดง STM32F407VET6 แสดงว่าจอ I2C LCD พร้อมใช้งานกับ STM32 แล้ว

การใช้งานจอ LCD 16x2 กับ STM32 รุ่น STM32F407VET6



6 : อุปกรณ์ที่ใช้