เริ่มต้นบอร์ด LARB32 ด้วย RTC และจอ TFT
เริ่มต้นเขียนโปรแกรมบนไมโครคอนโทรลเลอร์ ESP32 ด้วยบอร์ด LARB32 ซึ่งออกแบบช่องต่อจอ TFT มาให้โดยเฉพาะ ผู้ใช้สามารถนำจอมาเสียบผ่านสายแพและบอร์ดแปลงขาจอได้ทันที ไม่ต้องไล่เสียบทีละพินเหมือนการต่อบนบอร์ดทดลองทั่วไป อุปกรณ์ที่ใช้มีดังนี้
- บอร์ด LARB32
- สายแพและบอร์ดแปลงขาจอ
- จอ TFT ขนาด 2.8 นิ้วหรือใหญ่กว่า รุ่นทัชสกรีนหรือไม่ทัชสกรีนก็ได้ ที่ใช้ไดเวอร์ Ili9341
- (ไม่มีก็ได้) ชิ้นส่วน 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