یہ ٹیوٹوریل کا حصہ ہے: ESP32-S3 RGB LED میٹرکس
ESP32-S3 RGB میٹرکس ماڈیول کا استعمال کرتے ہوئے تفریحی اور عملی ایپلی کیشنز کے لیے تخلیق کرنے کے لیے زبردست پروجیکٹ۔ دیگر ویڈیوز کے لنکس اس مضمون کے نیچے ہیں۔
ESP32-S3 آر جی بی ایل ای ڈی میٹرکس پروجیکٹ 2 - اسکرولنگ ٹیکسٹ
پروجیکٹ 2 – ESP32-S3 RGB LED میٹرکس پر ٹیکسٹ اسکرول
اس پروجیکٹ میں ہم ESP32-S3 RGB LED میٹرکس کو ایک چھوٹے ٹیکسٹ بینر میں تبدیل کرتے ہیں۔ ایک مختصر پیغام (مثال کے طور پر Robojax) 8×8 RGB ڈسپلے پر اسکرول ہوتا ہے، اور آپ کوڈ میں براہ راست ٹیکسٹ، رنگ، چمک، اور اسکرول کی رفتار آسانی سے تبدیل کر سکتے ہیں۔ یہ سادہ اطلاعات، نام کے ٹیگز، یا چھوٹے اسٹیٹس پیغامات کے لیے بہت مفید ہے۔
اس سیریز کے تمام چھ پروجیکٹس ایک ہی YouTube ویڈیو میں دکھائے اور وضاحت کیے گئے ہیں۔ وہی ویڈیو اس صفحے پر ایمبیڈڈ ہے، تاکہ آپ حقیقی وقت میں ٹیکسٹ اسکرول کی شکل اور ہر سیٹنگ کا اینیمیشن پر اثر دیکھ سکیں۔ اس پروجیکٹ کا مکمل کوڈ مضمون کے نیچے خود بخود لوڈ ہوتا ہے، اور آپ کوڈ سیکشن کے نیچے درج ایفیلی ایٹ اسٹورز سے ESP32-S3 RGB LED میٹرکس ماجیول خرید سکتے ہیں۔
یہ پروجیکٹ پروجیکٹ 1 (حرکت پذیر ڈاٹ اور رنگ کنٹرول) کی بنیادوں پر استوار ہے اور NeoMatrix لائبریری کا استعمال کرتے ہوئے ٹیکسٹ رینڈرنگ اور اسکرولنگ شامل کرتا ہے۔


ESP32-S3 RGB LED میٹرکس ماجیول کا جائزہ
ہارڈویئر تمام چھ پروجیکٹس میں یکساں ہے: ایک ESP32-S3 مائیکروکنٹرولر جس میں Wi-Fi اور بلوٹوتھ ہے، ایک 8×8 RGB LED میٹرکس (64 ایڈریس ایبل RGB LEDs)، ایک QMI8658C ایکسلرومیٹر، USB پورٹ، اور قابل رسائی IO پنز۔

- ESP32-S3 – اعلی درجے کے پروجیکٹس کے لیے Wi-Fi/BLE کے ساتھ مرکزی CPU۔
- 8×8 RGB میٹرکس – آئیکنز، ٹیکسٹ، اور اینیمیشنز کے لیے 64 RGB LEDs۔
- QMI8658C ایکسلرومیٹر – بعد کے پروجیکٹس میں جھکاؤ اور سمت کے لیے استعمال ہوتا ہے۔
- USB پورٹ – Arduino IDE کے ذریعے پاور اور پروگرامنگ کے لیے استعمال ہوتا ہے۔
- کھلے پنز – آپ کو بورڈ کو دوسرے IO کے لیے عام ESP32 کی طرح استعمال کرنے دیتے ہیں۔
- بوٹ / ری سیٹ بٹن – فرم ویئر اپ لوڈ اور اسکیچز کو دوبارہ شروع کرنے کے لیے۔
پروجیکٹ 2 میں ہم بنیادی طور پر میٹرکس اور NeoMatrix ٹیکسٹ فنکشنز پر توجہ دیتے ہیں۔ ایکسلرومیٹر ابھی استعمال نہیں ہوتا، لیکن وہی بورڈ بعد کے تمام انٹرایکشن اور گیم پروجیکٹس کو بھی سنبھالے گا۔

ویڈیو میں شامل پروجیکٹس (ٹائم اسٹیمپس)
اس مضمون سے منسلک ویڈیو تمام چھ پروجیکٹس کا احاطہ کرتی ہے۔ تقریبی ٹائم اسٹیمپس یہ ہیں:
- 00:00 – تعارف
- 02:01 – ESP32 بورڈز کی تنصیب
- 03:32 – لائبریریوں کی تنصیب
- 05:32 – پروجیکٹ 1: حرکت پذیر ڈاٹ
- 11:11 – پروجیکٹ 2: ٹیکسٹ اسکرول
- 12:59 – پروجیکٹ 3: HTTP ٹیکسٹ
- 16:41 – پروجیکٹ 4: جھکاؤ ڈاٹ
- 18:55 – پروجیکٹ 5: اوپر تیر
- 20:02 – پروجیکٹ 6: ٹارگٹ گیم
آپ کو اس مضمون کو پڑھتے ہوئے ویڈیو دیکھنے کی ترغیب دی جاتی ہے۔ یہ LED میٹرکس پر ٹیکسٹ کو لائیو اسکرول ہوتا دکھاتی ہے اور Arduino IDE میں تمام مراحل سے گزرتی ہے۔
Arduino IDE میں ESP32 بورڈز کی تنصیب
ٹیکسٹ اسکرول کوڈ چلانے سے پہلے، یقینی بنائیں کہ آپ کے Arduino IDE میں ESP32 سپورٹ انسٹال ہے:
File > Preferencesکھولیں اور ESP32 بورڈز کا URL “Additional Boards Manager URLs” میں شامل کریں۔Tools > Board > Boards Manager…پر جائیں،ESP32تلاش کریں، اور سرکاری ESP32 پیکیج انسٹال کریں۔Tools > Boardسے اپنا ESP32-S3 RGB میٹرکس بورڈ منتخب کریں۔- ماجیول کو USB کے ذریعے جوڑیں اور
Tools > Portکے تحت صحیح COM/سیریل پورٹ منتخب کریں۔
اگر بورڈ کی قسم یا پورٹ درست نہ ہو تو اسکیچ اپ لوڈ نہیں ہوگا۔
NeoMatrix اور مطلوبہ لائبریریوں کی تنصیب
ٹیکسٹ اسکرول Adafruit NeoMatrix اور اس کے انحصارات کا استعمال کرتے ہوئے لاگو کیا گیا ہے۔ ویڈیو میں، انہیں لائبریری مینیجر کے ذریعے انسٹال کیا گیا ہے۔
آپ کو درج ذیل کی ضرورت ہوگی:
Adafruit NeoMatrixAdafruit NeoPixelAdafruit GFX Library
Sketch > Include Library > Manage Libraries…کھولیں۔Adafruit NeoMatrixتلاش کریں اور Install پر کلک کریں۔- جب اشارہ کیا جائے تو اسے
Adafruit GFXاورAdafruit NeoPixelکو انحصار کے طور پر انسٹال کرنے دیں۔
اگر تنصیب کامیاب ہو تو آپ کو File > Examples > Adafruit NeoMatrix اور File > Examples > Adafruit NeoPixel کے تحت مثالی اسکیچز نظر آئیں گے۔
پروجیکٹ 2 – کوڈ سیٹنگز (ٹیکسٹ اسکرول)
مکمل ٹیکسٹ اسکرول اسکیچ ویب سائٹ پر اس مضمون کے نیچے خود بخود لوڈ ہوتا ہے۔ یہاں ہم صرف ان کنفیگریشن اقدار پر توجہ دیتے ہیں جنہیں آپ شاید تبدیل کرنا چاہیں گے: پن، میٹرکس کا سائز، چمک، ٹیکسٹ سٹرنگ، رنگ، اسکرول کی رفتار، اور اختیاری سمت۔
نیچے دیے گئے تمام ٹکڑے اسکیچ کے اوپری حصے میں کنفیگریشن سیکشن سے لیے گئے ہیں تاکہ آپ مرکزی منطق کو چھوئے بغیر رویے کو تیزی سے ایڈجسٹ کر سکیں۔
میٹرکس پن اور سائز
بالکل پروجیکٹ 1 کی طرح، RGB میٹرکس GPIO 14 سے منسلک ہے اور اس میں 64 LEDs (8×8) ہیں۔ یقینی بنائیں کہ یہ دو لائنیں آپ کے ماجیول سے مماثل ہیں:
// 8×8 RGB میٹرکس سے منسلک پن
const int MATRIX_PIN = 14; // اس ماجیول پر 14 ہونا ضروری ہے // میٹرکس کا سائز (چوڑائی اور اونچائی)
const int MATRIX_WIDTH = 8;
const int MATRIX_HEIGHT = 8;
اگر آپ NeoMatrix لائبریری سے کوئی مثال کاپی کرتے ہیں تو اس میں مختلف پن یا سائز ہو سکتا ہے؛ انہیں ہمیشہ اس بورڈ سے مماثل کرنے کے لیے تبدیل کریں۔
ٹیکسٹ کی چمک
چمک عام طور پر 0 اور 255 کے درمیان ایک قدر سے کنٹرول ہوتی ہے، جہاں 0 بند ہے اور 255 زیادہ سے زیادہ چمک ہے۔ ایک معتدل قدر عام طور پر کافی ہوتی ہے:
// مجموعی میٹرکس چمک (0–255)
uint8_t matrixBrightness = 40; // آرام دہ اندرونی چمک // In
setup():
matrix.setBrightness(matrixBrightness);
اگر آپ پینل کو روشن ماحول میں یا تھوڑے وقت کے لیے استعمال کرتے ہیں، تو آپ اس قدر کو بڑھا سکتے ہیں، لیکن اگر آپ ڈسپلے کے قریب ہیں تو بہت زیادہ کرنے سے گریز کریں۔
سکرول کرنے کے لیے متن
اصل پیغام ایک سٹرنگ کے طور پر محفوظ ہوتا ہے۔ ویڈیو میں، مثال کے طور پر متن Robojax ہے۔ آپ اسے کسی بھی مختصر لیبل یا پیغام میں تبدیل کر سکتے ہیں:
// 8×8 میٹرکس پر سکرول کرنے کے لیے متن const char scrollText[] = "Robojax";
// اسے اپنے پیغام میں تبدیل کریں
ذہن میں رکھیں کہ یہ صرف ایک 8×8 میٹرکس ہے، اس لیے بہت لمبے پیغامات سکرول ہونے میں زیادہ وقت لیں گے اور پڑھنا مشکل ہو سکتا ہے۔
متن کا رنگ (RGB اقدار)
سکرولنگ متن کا رنگ سرخ، سبز اور نیلے اجزاء (0–255) سے طے ہوتا ہے۔ مثال کے طور پر، خالص سرخ (255, 0, 0) ہے، خالص سبز (0, 255, 0) ہے، اور خالص نیلا (0, 0, 255) ہے۔ اسکیچ میں آپ کو کچھ اس طرح نظر آئے گا:
// متن کا رنگ (R, G, B) uint8_t textRed = 255; // سرخ جزو uint8_t textGreen = 0; // سبز جزو uint8_t textBlue = 0; // نیلا جزو
رنگ تبدیل کرنے کے لیے:
- پیلا:
textRed = 255; textGreen = 255; textBlue = 0; - سیان:
textRed = 0; textGreen = 255; textBlue = 255; - سفید:
textRed = 255; textGreen = 255; textBlue = 255;
ویڈیو میں آن لائن کلر پکر استعمال کرکے RGB اقدار تلاش کرنے اور پھر انہیں کوڈ میں داخل کرنے کا طریقہ بھی دکھایا گیا ہے۔
سکرول رفتار (فریموں کے درمیان تاخیر)
سکرول رفتار ہر اپڈیٹ مرحلے کے درمیان ملی سیکنڈ میں تاخیر کی قدر سے کنٹرول ہوتی ہے۔ چھوٹی قدر متن کو تیز حرکت دیتی ہے؛ بڑی قدر اسے سست کر دیتی ہے۔ اسکیچ میں، آپ کو کچھ اس طرح کا متغیر ملے گا:
// سکرول مراحل کے درمیان تاخیر (ملی سیکنڈ میں) int scrollDelayMs = 50;
// چھوٹا = تیز، بڑا = سست
مثالیں:
scrollDelayMs = 20;→ تیز سکرولنگ۔scrollDelayMs = 50;→ درمیانی رفتار (ویڈیو کی طرح)۔scrollDelayMs = 100;یا اس سے زیادہ → سست، آسانی سے پڑھنے کے قابل سکرول۔
loop() کے اندر، یہ قدر متن کی پوزیشن کے ہر دوبارہ ڈرائو کے بعد delay(scrollDelayMs); کال میں استعمال ہوتی ہے۔
سکرول سمت (اختیاری)
“بنیادی متن سکرول” پروجیکٹ میں ہم عام طور پر بائیں طرف سکرول کرتے ہیں، لیکن ایک علامتی سمت متغیر کی وضاحت کرنا مفید ہے تاکہ آپ بعد میں دیگر سمتوں (بائیں، دائیں، اوپر، نیچے) کے ساتھ تجربہ کر سکیں۔
ایک عام طریقہ یہ ہے:
// سکرول سمت منتخب کرنے والا // 0 = بائیں، 1 = دائیں، 2 = اوپر، 3 = نیچے
int scrollDirection = 0; // ڈیفالٹ: بائیں طرف سکرول
مرکزی لوپ پھر scrollDirection چیک کرتا ہے اور متن کو منتخب سمت میں حرکت دیتا ہے۔ پروجیکٹ 2 کے لیے آپ اسے 0 (بائیں) پر چھوڑ سکتے ہیں، لیکن اگر آپ بعد میں اسکیچ کو بڑھاتے ہیں تو آپ ایسی شرائط شامل کر سکتے ہیں:
if (scrollDirection == 0) {
// متن کو بائیں منتقل کریں
} else if (scrollDirection == 1) {
// متن کو دائیں منتقل کریں
} else if (scrollDirection == 2) {
// متن کو اوپر منتقل کریں
} else if (scrollDirection == 3) {
// متن کو نیچے منتقل کریں
}
اس مضمون کے لیے ہم صرف ترتیب کو دستاویز کرتے ہیں۔ مکمل نفاذ مضمون کے نیچے لوڈ کردہ کوڈ کا حصہ ہے۔
خلاصہ
پروجیکٹ 2 آپ کے ESP32-S3 RGB LED میٹرکس کو ایک سادہ لیکن دلکش متن ڈسپلے میں تبدیل کرتا ہے۔ کوڈ کے اوپری حصے میں صرف چند متغیرات میں ترمیم کرکے، آپ جلدی سے تبدیل کر سکتے ہیں:
- کون سا پیغام دکھایا جاتا ہے (
scrollText)۔ - متن کا رنگ (
textRed,textGreen,textBlue)۔ - میٹرکس کی چمک (
matrixBrightness)۔ - سکرول کی رفتار (
scrollDelayMs)۔ - سکرول کی سمت (
scrollDirection، اگر آپ اسے استعمال کرنے کا انتخاب کرتے ہیں)۔
اس پروجیکٹ کا مکمل اسکیچ اس مضمون کے نیچے دستیاب ہے (ویب سائٹ کے ذریعے خودکار طور پر لوڈ ہوتا ہے)۔ تفصیلی مرحلہ وار ترتیب اور سکرولنگ متن کے عملی مظاہرے کے لیے، ویڈیو کے متعلقہ حصے کو ضرور دیکھیں۔ اگر آپ کو پروجیکٹ پسند ہے اور اسے خود بنانا چاہتے ہیں، تو آپ کوڈ کے نیچے درج ایفلی ایٹ لنکس سے ESP32-S3 RGB LED میٹرکس ماجیول بھی خرید سکتے ہیں۔
یہ ٹیوٹوریل کا حصہ ہے: ESP32-S3 RGB LED میٹرکس
- ESP32-S3 آر جی بی ایل ای ڈی میٹرکس پروجیکٹ 1- بنیادی ڈاٹ
- ESP32-S3 RGB LED میٹرکس پروجیکٹ 3 - موبائل فون سے ٹیکسٹ
- ESP32-S3 آر جی بی ایل ای ڈی میٹرکس پروجیکٹ 4 - جھکاؤ ڈاٹ
- ESP32-S3 آر جی بی ایل ای ڈی میٹرکس پروجیکٹ 5 - تیر ہمیشہ اوپر
- ESP32-S3 آر جی بی ایل ای ڈی میٹرکس پروجیکٹ 6 - سیبل گیم
- ESP32-S3 RGB LED میٹرکس وائی فائی + NTP ٹائم کلاک پروجیکٹ -1 بنیادی کلاک
- ESP32-S3 RGB LED میٹرکس انٹرنیٹ کلاک پروجیکٹ - 2 کلاک ملٹی کلر ٹائم اور ڈیٹ ڈسپلے
- ESP32-S3 RGB LED میٹرکس انٹرنیٹ کلاک پروجیکٹ - تاریخ کے ساتھ 3 رات کے رنگ
- ESP32-S3 RGB LED میٹرکس انٹرنیٹ کلاک پروجیکٹ - 5 قوس قزح رنگ
- ESP32-S3 RGB LED میٹرکس انٹرنیٹ کلاک پروجیکٹ - 4 بے ترتیب رنگ
- ESP32-S3 RGB LED Matrix test for RGB, GRB setting
/*
Project 2: Text scroll – ESP32-S3 RGB LED Matrix (Waveshare)
This sketch displays the scrolling text on 8x8 matrix
▶️ Video Tutorial:
https://youtu.be/JKLuYrRcLMI
📚⬇️ Resources & Code Page:
https://robojax.com/RJT829
QMI8658_RGB_2
*/
#include <Arduino.h>
#include <Adafruit_GFX.h>
#include <Adafruit_NeoMatrix.h>
#include <Adafruit_NeoPixel.h>
// -------- LED MATRIX SETUP --------
#define MATRIX_PIN 14
#define MATRIX_WIDTH 8
#define MATRIX_HEIGHT 8
Adafruit_NeoMatrix matrix = Adafruit_NeoMatrix(
MATRIX_WIDTH, MATRIX_HEIGHT, MATRIX_PIN,
NEO_MATRIX_TOP + NEO_MATRIX_LEFT +
NEO_MATRIX_ROWS + NEO_MATRIX_PROGRESSIVE,
NEO_RGB + NEO_KHZ800
);
// =========================
// USER SETTINGS
// =========================
// Text to scroll
const char* MESSAGE = "ROBOJAX ";
// Brightness (0–255)
uint8_t BRIGHTNESS = 10;
// Scroll speed (milliseconds between steps)
// Smaller = faster
uint16_t SCROLL_DELAY = 80;
// Scroll direction
enum ScrollDir {
SCROLL_LEFT,
SCROLL_RIGHT,
SCROLL_UP,
SCROLL_DOWN
};
// Change this to set direction
ScrollDir DIRECTION = SCROLL_LEFT;
// Text color (set RGB here)
uint8_t COLOR_R = 255;
uint8_t COLOR_G = 0;
uint8_t COLOR_B = 0;
// =========================
// INTERNAL STATE
// =========================
uint16_t textColor;
int16_t posX, posY;
int16_t textWidth, textHeight;
uint32_t lastStepTime = 0;
// Compute text size in pixels for default 5x7 font
void computeTextSize() {
int16_t x1, y1;
uint16_t w, h;
matrix.getTextBounds((char*)MESSAGE, 0, 0, &x1, &y1, &w, &h);
textWidth = (int16_t)w;
textHeight = (int16_t)h;
}
// Initialize starting position based on direction
void resetScrollPosition() {
switch (DIRECTION) {
case SCROLL_LEFT:
// Start just off the right edge
posX = matrix.width();
posY = 0; // top row for 8x8
break;
case SCROLL_RIGHT:
// Start just off the left edge
posX = -textWidth;
posY = 0;
break;
case SCROLL_UP:
posX = 0;
posY = matrix.height(); // start below bottom
break;
case SCROLL_DOWN:
posX = 0;
posY = -textHeight; // start above top
break;
}
}
// One scroll step
void stepScroll() {
// Move position
switch (DIRECTION) {
case SCROLL_LEFT:
posX--;
if (posX < -textWidth) {
posX = matrix.width();
}
break;
case SCROLL_RIGHT:
posX++;
if (posX > matrix.width()) {
posX = -textWidth;
}
break;
case SCROLL_UP:
posY--;
if (posY < -textHeight) {
posY = matrix.height();
}
break;
case SCROLL_DOWN:
posY++;
if (posY > matrix.height()) {
posY = -textHeight;
}
break;
}
// Draw frame
matrix.fillScreen(0);
matrix.setCursor(posX, posY);
matrix.print(MESSAGE);
matrix.show();
}
void setup() {
matrix.begin();
matrix.setBrightness(BRIGHTNESS);
matrix.setTextWrap(false); // No automatic wrapping
matrix.setTextSize(1); // Default 5x7 font
textColor = matrix.Color(COLOR_R, COLOR_G, COLOR_B);
matrix.setTextColor(textColor);
computeTextSize();
resetScrollPosition();
matrix.fillScreen(0);
matrix.show();
}
void loop() {
uint32_t now = millis();
if (now - lastStepTime >= SCROLL_DELAY) {
lastStepTime = now;
stepScroll();
}
}
آپ کو جن چیزوں کی ضرورت ہو سکتی ہے
-
ایمیزون
-
ای بے
-
علی ایکسپریسPurchase ESP32-S3 RGB Matrix from AliExpresss.click.aliexpress.com
-
علی ایکسپریسPurchase ESP32-S3 RGB Matrix from AliExpress (2)s.click.aliexpress.com
وسائل اور حوالہ جات
-
اندرونی🎨 Color picker Toolrobojax.com
فائلیں📁
فریٹزنگ فائل
-
esp32-S3-supermini-tht fritzing part
esp32-S3-supermini-tht.fzpz0.02 MB