كيفية استخدام شاشة ILI9341 مع Arduino – برنامج تعليمي كامل ومفصل

  • تتصل شاشة ILI9341 TFT عبر واجهة SPI وتتطلب اتصالات دقيقة.
  • من الضروري استخدام محولات المستوى المنطقي في حالة استخدام Arduino 5V لتجنب إتلاف الشاشة.
  • تعد مكتبات Adafruit_GFX وAdafruit_ILI9341 ضرورية لبرمجة الرسومات على الشاشة.
  • يمكن تنفيذ المشاريع العملية مثل تصور البيانات أو استشعار اللمس باستخدام شاشة ILI9341.

TFT مع التحكم ST7789VI MCU في اردوينو-7

اليوم، تعد شاشات TFT المزودة بوحدة التحكم ILI9341 أحد أكثر الخيارات شيوعًا لمشاريع النماذج الأولية لـ Arduino نظرًا لتعدد استخداماتها وقدراتها الرسومية. إذا كنت تبحث عن كيفية الاستفادة من هذه الشاشات في مشاريعك، فقد وصلت إلى المكان الصحيح. نوضح هنا كل ما تحتاج إلى معرفته للاتصال بشاشة ILI9341 TFT وتكوينها واستخدامها، وسنرى أيضًا بعض أمثلة التعليمات البرمجية المفيدة جدًا.

قد يبدو العمل مع هذه الشاشة معقدًا في البداية نظرًا لعدد المسامير والوصلات المطلوبة، ولكن بمجرد فهم العملية، يصبح الأمر أكثر بساطة. سنرى في هذه المقالة خطوة بخطوة كيفية إجراء الاتصال واختباره وبرمجته.

المواد اللازمة لاستخدام شاشة ILI9341 مع الاردوينو

  • Arduino UNO أو 3.3 فولت اردوينو برو ميني: إذا كنت تستخدم أ Arduino UNO، ستحتاج إلى محولات المستوى المنطقي لتجنب إتلاف الشاشة، لأنها تعمل بجهد 3.3 فولت. إذا كنت تستخدم Arduino Pro Mini بجهد 3.3 فولت، فيمكنك الاتصال مباشرة.
  • شاشة تي اف تي ILI9341: شاشة 2.4 أو 2.8 بوصة بدقة 240 × 320 بكسل.
  • محول مستوى المنطق (إذا كنت تستخدم Arduino UNO): لتكييف المستويات من 5 فولت إلى 3.3 فولت.
  • اللوح y الكابلات من الاتصال.

الخطوة 1: قم بتوصيل شاشة ILI9341 إلى Arduino

تستخدم شاشة ILI9341 TFT واجهة SPI للتواصل مع Arduino، لذلك سيكون من المهم إجراء الاتصالات الصحيحة بين منافذ SPI على Arduino والشاشة. يشرح الجدول التالي بالتفصيل كيفية إجراء التوصيلات الأساسية:

دبوس الشاشة اردوينو دبوس
إس دي أو (ميسو) رقم 12
SCK رقم 13
سدي (موسي) رقم 11
D / C رقم 9
CS رقم 10
GND دبوس GND
VCC دبوس 3.3 فولت
LED دبوس 3.3 فولت

تذكر أنه إذا كنت تستخدم Arduino UNO، سيكون من الضروري استخدام محولات المستوى المنطقي لتحويل 5V من دبابيس اردوينو إلى 3.3V. إذا كنت تستخدم Arduino Pro Mini بجهد 3.3 فولت، فهذا الاحتياط ليس ضروريًا.

الخطوة 2: تثبيت المكتبات اللازمة

للتفاعل مع شاشة ILI9341، نحتاج إلى تثبيت بعض المكتبات في Arduino IDE. يجب علينا التأكد من أن لدينا المكتبات التالية:

  • ادافروت_ILI9341: هذه هي المكتبة الرئيسية لتشغيل شاشات ILI9341 باستخدام Arduino.
  • Adafruit_GFX: تسهل هذه المكتبة إنشاء الرسومات الأساسية مثل الخطوط والدوائر والمستطيلات وما إلى ذلك.

لتثبيت هذه المكتبات، افتح بيئة تطوير Arduino المتكاملة (IDE) وانتقل إلى Sketch > Include Library > Manage Libraries ، ثم ابحث عن ILI9341 لتثبيت المكتبة المناسبة. ابحث أيضًا عن مكتبة Adafruit GFX وتأكد من تثبيت المكتبة الصحيحة.

الخطوة 3: اختبر شاشة TFT بمثال أساسي

اردوينو IDE ، أنواع البيانات ، البرمجة

بعد تثبيت المكتبات، حان وقت اختبار الشاشة للتأكد من توصيل كل شيء بشكل صحيح وعمله بكفاءة. تتضمن بيئة تطوير أردوينو (Arduino IDE) مثالًا شاملًا للغاية سيكون مفيدًا جدًا. لنقم بتحميل ملف الاختبار الرسومي :

  • افتح اردوينو IDE.
  • اذهب إلى ملف > أمثلة > Adafruit_ILI9341 > اختبار الرسم.
  • قم بتجميع المثال وتحميله على Arduino الخاص بك.

إذا سارت الأمور على ما يرام، فيجب أن تشاهد سلسلة من الرسوم البيانية التي تعرض أنواعًا مختلفة من الخطوط والأشكال والألوان على الشاشة.

الخطوة 4: إنشاء مشروع عملي: عرض القيم التناظرية على شاشة ILI9341

أحد المشاريع الأولى التي يمكننا القيام بها بهذه الشاشة هو عرض قيمة المدخلات التناظرية، مثل جهد مقياس الجهد. لهذا، سوف نستخدم منافذ العرض التي قمنا بتوصيلها بالفعل، بالإضافة إلى مقياس الجهد المتصل بالمدخل التناظري A0 الخاص بـ Arduino.

يوضح الكود التالي كيف يمكننا قراءة القيمة التناظرية لمقياس الجهد وعرضها على الشاشة:

#include 
#include 
#include 

#define TFT_DC 9
#define TFT_CS 10

Adafruit_ILI9341 tft = Adafruit_ILI9341(TFT_CS, TFT_DC);

void setup() {
  tft.begin();
  tft.setRotation(1);
  tft.fillScreen(ILI9341_BLACK);
  tft.setTextColor(ILI9341_WHITE);
  tft.setTextSize(2);
}

void loop() {
  int val = analogRead(A0);
  float voltage = val * (5.0 / 1023.0);
  tft.setCursor(60, 30);
  tft.print("Voltaje: ");
  tft.print(voltage);
  delay(500);
}

يقوم هذا البرنامج بقراءة الجهد بشكل مستمر ويعرضه على الشاشة بتنسيق نصي. إذا قمت بإدارة مقبض مقياس الجهد، فيجب أن ترى التغيير ينعكس على الشاشة على الفور تقريبًا.

إضافة زر على شاشة اللمس ILI9341

بالإضافة إلى عرض المعلومات، تتمتع شاشة ILI9341 أيضًا بإمكانية اللمس إذا كانت مزودة بوحدة التحكم XPT2046. لنقم بإنشاء مثال بسيط يوضح كيفية اكتشاف اللمسات على الشاشة.

أولاً، نحتاج إلى إجراء اتصالات وحدة التحكم التي تعمل باللمس على الشاشة. المسامير الرئيسية لوحدة التحكم باللمس هي:

  • TOUCH_CS: دبوس 10.
  • TOUCH_IRQ: دبوس 2.

بعد إتمام هذه التوصيلات، سنستخدم مكتبة XPT2046_Touchscreen لاكتشاف اللمسات. فيما يلي بعض التعليمات البرمجية التي تعرض زرًا على الشاشة، والذي يتغير لونه في كل مرة يتم الضغط عليه.

#include 
#include 
#include 
#include 

#define TFT_DC 9
#define TFT_CS 10
#define TOUCH_CS 10
#define TOUCH_IRQ 2

Adafruit_ILI9341 tft = Adafruit_ILI9341(TFT_CS, TFT_DC);
XPT2046_Touchscreen ts(TOUCH_CS, TOUCH_IRQ);

void setup() {
  tft.begin();
  ts.begin();
  tft.setRotation(1);
  tft.fillScreen(ILI9341_BLACK);
  tft.fillRect(50, 160, 100, 50, ILI9341_RED);
  tft.setCursor(75, 175);
  tft.setTextColor(ILI9341_WHITE);
  tft.setTextSize(2);
  tft.println("BOTON");
}

void loop() {
  if (ts.touched()) {
    TS_Point p = ts.getPoint();
    if (p.x >= 50 && p.x <= 150 && p.y >= 160 && p.y <= 210) {
      tft.fillRect(50, 160, 100, 50, ILI9341_GREEN);
      tft.setCursor(75, 175);
      tft.println("PULSADO");
    }
  }
}

يكتشف الرمز ما إذا تم الضغط على الزر ويغير لونه من الأحمر إلى الأخضر. يمكنك أيضًا تخصيص موضع الزر وحجمه وفقًا لاحتياجاتك.

من الضروري التأكد من معايرة الشاشة بشكل صحيح لضمان تطابق اللمسات بدقة مع إحداثيات الشاشة. إذا لاحظتَ أن استجابة اللمس غير دقيقة، فقد تحتاج إلى معايرة دقة الشاشة.


أضف كمصدر مفضل في جوجل