เริ่มต้นบอร์ด LARB32 ด้วย RTC และจอ TFT

เริ่มต้นเขียนโปรแกรมบนไมโครคอนโทรลเลอร์ ESP32 ด้วยบอร์ด LARB32 ซึ่งออกแบบช่องต่อจอ TFT มาให้โดยเฉพาะ ผู้ใช้สามารถนำจอมาเสียบผ่านสายแพและบอร์ดแปลงขาจอได้ทันที ไม่ต้องไล่เสียบทีละพินเหมือนการต่อบนบอร์ดทดลองทั่วไป อุปกรณ์ที่ใช้มีดังนี้

  1. บอร์ด LARB32
  2. สายแพและบอร์ดแปลงขาจอ
  3. จอ TFT ขนาด 2.8 นิ้วหรือใหญ่กว่า รุ่นทัชสกรีนหรือไม่ทัชสกรีนก็ได้ ที่ใช้ไดเวอร์ Ili9341 
  4. (ไม่มีก็ได้) ชิ้นส่วน 3D สำหรับยึดจอ TFT 2.8″ เข้ากับรางปีกนก ดาวน์โหลดไฟล์ 3D ได้ที่ https://www.hs3uka.com/downloads/TFT-ILI9341.stl

ตัวอย่างโค้ดสำหรับรับค่าจาก RTC บนบอร์ดมาแสดงบนจอ TFT

#include "RTClib.h"
#include <TFT_eSPI.h>
#include <SPI.h>

RTC_DS1307 rtc;
TFT_eSPI tft = TFT_eSPI();

void setup() {
  Serial.begin(115200);

  tft.init();
  tft.setRotation(2);           //หมุนจอ

  if (! rtc.begin()) {          //ถ้า RTC ไม่ทำงานให้แจ้ง Serial Monitor
    Serial.println("Couldn't find RTC");
    Serial.flush();
    while (1) delay(10);
  }

  if (! rtc.isrunning()) {      //ถ้า RTC ยังไม่ตั้งเวลา ให้ตั้งเวลาปัจจุบัน
    rtc.adjust(DateTime(F(__DATE__), F(__TIME__)));
  }
}

void loop() {
  tft.fillScreen(TFT_BLACK);    //เปลี่ยนจอเป็นสีดำ
  tft.setCursor(10, 10);        //ขยับไปตำแหน่ง 10,10
  tft.setTextColor(TFT_YELLOW); //เปลี่ยนอักษรเป็นสีเหลือง
  tft.setTextFont(7);           //เปลี่ยนตัวหนังสือ
  tft.setTextSize(1);           //เปลี่ยนขนาดอักษร
  DateTime now = rtc.now();     //รับค่าเวลาจาก RTC
  tft.print(now.hour(), DEC);   //แสดงผลบนจอ
  tft.print(':');
  tft.print(now.minute(), DEC);
  tft.print(':');
  tft.print(now.second(), DEC);
  tft.setCursor(50, 300);
  tft.setTextFont(1);
  tft.setTextSize(2);
  tft.print(now.year(), DEC);
  tft.print('/');
  tft.print(now.month(), DEC);
  tft.print('/');
  tft.print(now.day(), DEC);
  delay(1000);
}

ดูข้อมูลการใช้งานไลบรารี่และวิธีติดตั้ง TFT eSPI ได้ที่ https://www.hs3uka.com/programing/mcu/tft-touch-screen-esp32 ไลบรารี่นี้การตั้งค่าค่อนข้างยุ่งยากเพราะปกติแล้วไลบรารี่อื่นสามารถตั้งค่าการเชื่อมต่อพินได้ที่โค้ดโปรแกรมเลย แต่เท่าที่ลองมาหลายตัว TFT eSPI ทำงานเร็วที่สุดเมื่อเทียบกับไลบรารี่อื่น ในกรณีที่เปลี่ยนไปใช้ไลบรารี่อื่นสามารถตั้งค่าตามพินที่ระบุไว้บนบอร์ดลงในโค้ดโปรแกรมได้เลย เมื่ออัพโหลดโปรแกรมแล้วจะได้ผลลัพธ์ตามภาพ

Facebook Comments