// مشروع شاشة الماتريكس لعرض نص متحرك بشكل مستمر
// إعداد المهندس/ أحمد درويش
#include <MD_Parola.h>
#include <MD_MAX72xx.h>
#include <SPI.h>
// تحديد نوع العتاد وعدد الوحدات
#define HARDWARE_TYPE MD_MAX72XX::PAROLA_HW
#define MAX_DEVICES 4 // عدد وحدات المصفوفة المترابطة
#define CLK_PIN 13 // منفذ الإشارة الساعة (Clock)
#define DATA_PIN 11 // منفذ نقل البيانات (Data)
#define CS_PIN 10 // منفذ تحديد الشريحة (Chip Select)
// إعداد سرعة التمرير
#define SPEED_TIME 80 // زمن تأخير التمرير
#define PAUSE_TIME 1000 // زمن التوقف بعد انتهاء النص
// إنشاء كائن التحكم في شاشة المصفوفة (Matrix)
MD_Parola P = MD_Parola(HARDWARE_TYPE, CS_PIN, MAX_DEVICES);
// إعداد نص العرض
const char* message = "Welcome to my project. I'm Eng. Ahmed Darwish";
void setup() {
P.begin(); // بدء عمل الشاشة
P.setIntensity(0, 10); // ضبط سطوع الشاشة (من 0 إلى 15)
P.displayZoneText(0, message, PA_CENTER, SPEED_TIME, PAUSE_TIME, PA_SCROLL_LEFT, PA_SCROLL_LEFT);
}
void loop() {
// تشغيل الرسوم المتحركة باستمرار مع إعادة تشغيل التمرير عند الانتهاء
if (P.displayAnimate()) {
P.displayReset(); // إعادة التمرير من البداية عند انتهاء النص
}
}