การใช้งานจอ LCD STM32F103C8T6

การใช้งานจอ LCD STM32F103C8T6


บทความนี้ กล่าวถึงขั้นตอนการใช้งานจอ LCD 16×2 กับ STM32 รุ่น STM32F103C8T6 โดยใช้ 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 รุ่น STM32F103C8T6

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


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 : อัพโหลดโค้ดให้กับ STM32

ย้ายจั้มเปอร์สีเหลืองด้านบนให้มาอยู่อีกฝั่ง จาก โหมดใช้งาน เปลี่ยนเป็น โหมดอัพโหลดโปรแกรม

โหมดอัพโหลดโปรแกรม 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(" STM32F103C8T6 ");
}

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



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

กดปุ่ม RESET 1 ครั้ง

กดปุ่ม RESET  STM32 1 ครั้ง


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

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


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

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


เชื่อมต่อ LCD เข้ากับ STM32
การใช้งานจอ LCD STM32F103C8T6



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

ย้ายจั้มเปอร์สีเหลืองด้านบน จาก โหมดอัพโหลดโปรแกรม เปลี่ยนเป็น โหมดใช้งาน

โหมดอัพโหลดโปรแกรม STM32


กดปุ่ม RESET 1 ครั้ง

กดปุ่ม RESET STM32 1 ครั้ง

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


การใช้งานจอ LCD STM32F103C8T6
การใช้งานจอ LCD STM32F103C8T6


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

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


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