آموزش راه‌اندازی ماژول نمایشگر 1.44 اینچ TFT با ESP32

فهرست مطالب

ویژگی‌های ماژول نمایشگر 1.44 اینچ TFT

نمایشگر TFT از انواع ال‌سی‌دی‌های کریستال مایع می‌باشد که با یک ترانزیستور به هر پیکسل وصل شده است و همچنین علاوه بر مصرف جریان نسبتاً کم، دارای بک لایت (Backlight) نیز می‌باشد. این ماژول در اندازه 1.44 اینچ و به صورت تمام رنگ، دارای یک صفحه باریک PCB می‌باشد. رزولوشن این ماژول 128X128 پیکسل و دارای رابط کاربری SPI چهار سیمه و بک‌لایت سفید است.

جهت دریافت دیتاشیت ماژول نمایشگر 1.44 اینچ TFT اینجا کلیک کنید.

معرفی پایه ها (Pinout) ماژول نمایشگر 1.44 اینچ TFT

ماژول نمایشگر 1.44 اینچ TFT دارای 8 پایه به شرح زیر است:

  • 3V: تغذیه ماژول
  • GND: زمین
  • MOSI: خط ارسالی اطلاعات برای پروتکل SPI
  • SCK: همزمان سازی برای پروتکل SPI
  • CS: انتخاب ماژول برای پروتکل SPI
  • RESET: ریست ماژول
  • DC: خط دیتا/ دستور ماژول
  • LED: کنترل نور پس زمینه ماژول

لوازمی که به آن احتیاج دارید

قطعات مورد نیاز

ماژول وای فای و بلوتوث ESP32S × 1
ماژول نمایشگر 1.44 اینچ TFT × 1
سیم جامپر نری به مادگی × 1

نرم افزارهای مورد نیاز

آردوینو IDE

راه اندازی ماژول نمایشگر 1.44 اینچ TFT با استفاده از ESP32

گام اول: سیم بندی

مطابق مدار زیر، ماژول را به ESP32 وصل کنید.

گام دوم: نصب کتابخانه

کتابخانه زیر را بر روی آردوینوی خود نصب کنید.

https://github.com/sumotoy/TFT_ILI9163C

توجه

اگر نیاز به راهنمایی بیشتر برای نصب کتابخانه بر روی آردوینو دارید، می توانید به آموزش نصب کتابخانه بر آردوینو مراجعه کنید.

وارد کتابخانه شده و به دنبال فایل TFT_ILI9163C بگردید.

سپس وارد پوشه settings_ شوید و فایل TFT_ILI9163C_settings.h را باز کنید.

در ابتدای فایل تنظیمات را به شکل زیر تغییر دهید.

//DID YOU HAVE A RED PCB, BLACk PCB or WHAT DISPLAY TYPE?
//  ---> SELECT HERE <----
//#define __144_RED_PCB__//128x128
#define __144_BLACK_PCB__//128x128
//#define __22_RED_PCB__//240x320

گام سوم: کد

کد زیر را بر روی ESP32 خود آپلود کنید.

/*
  Modify on March 17, 2021
  Modify by MohammedDamirchi base of https://github.com/sumotoy/TFT_ILI9163C
  
Home
*/ #include <SPI.h> #include <Adafruit_GFX.h> #include <TFT_ILI9163C.h> // Color definitions #define BLACK 0x0000 #define BLUE 0x001F #define RED 0xF800 #define GREEN 0x07E0 #define CYAN 0x07FF #define MAGENTA 0xF81F #define YELLOW 0xFFE0 #define WHITE 0xFFFF /* Teensy3.x and Arduino's You are using 4 wire SPI here, so: MOSI: 11//Teensy3.x/Arduino UNO (for MEGA/DUE refere to arduino site) MISO: 12//Teensy3.x/Arduino UNO (for MEGA/DUE refere to arduino site) SCK: 13//Teensy3.x/Arduino UNO (for MEGA/DUE refere to arduino site) the rest of pin below: */ #define __CS 2 #define __DC 4 /* Teensy 3.x can use: 2,6,9,10,15,20,21,22,23 Arduino's 8 bit: any DUE: check arduino site If you do not use reset, tie it to +3V3 */ TFT_ILI9163C tft = TFT_ILI9163C(__CS, __DC); void setup() { tft.begin(); } void loop(){ testLines(random(0x00ff,0xffff)); delay(100); testText(); delay(500); } unsigned long testText() { tft.fillScreen(); unsigned long start = micros(); tft.setCursor(0, 0); tft.setTextColor(WHITE); tft.setTextSize(1); tft.println("Hello World!"); tft.setTextColor(YELLOW); tft.setTextSize(2); tft.println(1234.56); tft.setTextColor(RED); tft.setTextSize(3); tft.println(0xDEAD, HEX); tft.println(); tft.setTextColor(GREEN); tft.setTextSize(4); tft.println("Hello"); return micros() - start; } unsigned long testLines(uint16_t color) { tft.fillScreen(); unsigned long start, t; int x1, y1, x2, y2, w = tft.width(), h = tft.height(); tft.fillScreen(); x1 = y1 = 0; y2 = h - 1; start = micros(); for(x2=0; x2<w; x2+=6) tft.drawLine(x1, y1, x2, y2, color); x2 = w - 1; for(y2=0; y2<h; y2+=6) tft.drawLine(x1, y1, x2, y2, color); t = micros() - start; // fillScreen doesn't count against timing tft.fillScreen(); x1 = w - 1; y1 = 0; y2 = h - 1; start = micros(); for(x2=0; x2<w; x2+=6) tft.drawLine(x1, y1, x2, y2, color); x2 = 0; for(y2=0; y2<h; y2+=6) tft.drawLine(x1, y1, x2, y2, color); t += micros() - start; tft.fillScreen(); x1 = 0; y1 = h - 1; y2 = 0; start = micros(); for(x2=0; x2<w; x2+=6) tft.drawLine(x1, y1, x2, y2, color); x2 = w - 1; for(y2=0; y2<h; y2+=6) tft.drawLine(x1, y1, x2, y2, color); t += micros() - start; tft.fillScreen(); x1 = w - 1; y1 = h - 1; y2 = 0; start = micros(); for(x2=0; x2<w; x2+=6) tft.drawLine(x1, y1, x2, y2, color); x2 = 0; for(y2=0; y2<h; y2+=6) tft.drawLine(x1, y1, x2, y2, color); return micros() - start; }

این کد جهت تست نمایشگر می‌باشد و انواع اشکال و طرح‌های مختلف را به صورت گرافیکی نمایش می‌دهد.

آموزش های مشابه

Comments (2)

  • علیرضا Reply

    سلام
    لطفا طریقه پیاده سازی تصویر یا ویدئوی ارسالی از یک ماژول وایفای متصل به دوربین مثل esp-cam را توسط ماژول ثسح متصل به نمایشگر چند اینچی رو بیان کنید .

    ژانویه 19, 2024 at 7:11 ب.ظ
    • محمد دمیرچی Reply

      با سلام
      در زمینه دریافت و پخش ویدیو در نمایشگر ها چالش های بسیار زیادی می باشد.
      برای این موضوع باید ابتدا لایبراری نمایشگر را بررسی کنید.
      یکی از مواردی که می توانید انجام بدهید تصویر ارسالی از سمت ESP را به صورت jpeg کنید و در این سمت نیز با استفاده از لایبراری TFT_eSPI و دیکودر jepg تصویر را به نمایشگر بدهید.
      ولی توجه داشته باشید که سرعت پخش بسیار پایین می باشد.
      مورد دیگر نیز بهتر است از لایبراری ها و آموزش هایی که این کار را کرده اند استفاده کنید.

      ژانویه 20, 2024 at 9:27 ق.ظ

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد.