این کتابخانه یه پیادهسازی سبک (Lightweight) و بهینهسازیشده از کتابخانهی اصلی نمایشگرهای TFT 3.5 اینچه که برای محیطهای Arduino و طیف گستردهای از میکروکنترلرها توسعه یافته.
ارائهی توابعی ساده برای ترسیم اشکال هندسی مختلف، بدون شلوغی کد.
امکان تعریف قابلیت کلیک روی اشیاء بدون نیاز به محاسبهی دستی مختصات برخورد (Collision Detection).
کاهش پیچیدگی کد برای دستیابی به سرعت اجرای بالاتر در سیستمهای Embedded.
فراخوانی کتابخانه:
#include <Arduino.h>
#include <SPI.h>
#include <TFT_eSPI.h>
#include <XPT2046_Touchscreen.h>
#include <tfUI.h>
#include <pgmspace.h>
تعریف پینهای نمایشگر:
#define TFT_CS 5
#define TFT_DC 2
#define TFT_RST 4
#define TOUCH_CS 15
#define TOUCH_IRQ 21
تعریف شیء SPI و tfUI:
XPT2046_Touchscreen ts(TOUCH_CS);
TFT_eSPI tft = TFT_eSPI();
تعریف اشکال مختلف:
tf::RoundedRect NAME = tf::makeRounded(tft, WIDTH, HEIGHT, BORDER_RADIUS); // تعریف roundedrect
tf::Rect NAME = tf::makeRect(tft, WIDTH, HEIGHT); // تعریف مستطیل
tf::Circle NAME = tf::makeCircle(tft, RADIUS); // تعریف دایره
tf::Text NAME = tf::makeText(tft, SIZE); // تعریف متن
تعریف عکس (کد hex):
const uint16_t IMAGE_HEX[SIZE] PROGMEM = {
0x0FF5,0x0FF5,0x0FF5,0x0FF5,0x0FF5,0x0FF5,0x0FF5,0x0FF5,
0x0FF5,0x0FF5,0x0FF5,0x0FF5,0x0FF5,0x0FF5,0x0FF5,0x0FF5,
0x0FF5,0x0FF5,0x0FF5,0x0FF5,0x0FF5,0x0FF5,0x0FF5,0x0FF5,
0x0FF5,0x0FF5,0x0FF5,0x0FF5,0x0FD5,0x0F74,0x0FF5,0x0FF5,
// ...
};
tf::ImageHEX NAME(tft, IMAGE_HEX, WIDTH, HEIGHT);
تنظیمات اشکال:
NAME.setPosition(X,Y); // تعیین موقعیت
NAME.setFillColor(COLOR); // رنگ داخل شکل
NAME.setOutlineColor(COLOR); // رنگ دور شکل
NAME.setOutlineThickness(SIZE); // ضخامت دور شکل
NAME.setVisible(BOOL); // وضعیت مشاهده
NAME.draw(); // رسم شکل
NAME.clear(); // پاک کردن شکل
تعریف رنگ:
#define NAME tft.color565(R, G, B) // 0 <= R,G,B <= 255
تنظیمات متن:
NAME.setPosition(X,Y); // تعیین موقعیت
NAME.setbgColor(COLOR); // رنگ پسزمینه
NAME.setColor(COLOR); // رنگ متن
NAME.setString(STRING); // متن عنصر
NAME.setText(STRING); // بهروزرسانی متن عنصر
NAME.setVisible(BOOL); // حالت نمایش
NAME.draw(); // رسم متن
NAME.clear(); // پاک کردن متن
تنظیمات عکس:
NAME.setPosition(X,Y); // تعیین موقعیت
NAME.setVisible(BOOL); // حالت نمایش
NAME.clear(); // پاک کردن از صفحه
NAME.draw(); // رسم تصویر
بررسی کلیک روی عنصر:
NAME.isClicked(ts) // اگر کلیک شده باشد 1، اگر نه 0
// مثال:
if (NAME.isClicked(ts))
Serial.print("clicked!");
else
Serial.print("notclicked");