📜 درس 77: متن متحرک روی ماتریس LED
مثل تابلوهای اعلانات: نوشتهای که از روی صفحهی ۸×۸ رد میشود.
سطح: پیشرفته · زمان: حدود 20 دقیقه · مفاهیم: MAX7219، انیمیشن، باقیمانده %
قدمهای این درس
- ترفند پنجره
- قدم ۱ — همان مدار
- قدم ۲ — لغزاندن پنجره
- اشتباه رایج: بیرون زدن از آرایه
- چالش: اسم خودت
نمونهای از کد این درس
// Scrolling "HI!" on the MAX7219: a long strip of columns slides past an 8-wide window.
#include <LedControl.h>
LedControl lc = LedControl(12, 11, 10, 1);
// Each byte is ONE COLUMN (bit 0 = top row). 8 blank columns at both ends.
byte message[] = {
0, 0, 0, 0, 0, 0, 0, 0,
B01111111, B00001000, B00001000, B01111111, 0, // H
B01000001, B01111111, B01000001, 0, // I
B01011111, 0, // !
0, 0, 0, 0, 0, 0, 0, 0
};
int len = sizeof(message) / sizeof(message[0]);
int offset = 0;
int speedMs = 120;
void setup() {
lc.shutdown(0, false);
lc.setIntensity(0, 5);
lc.clearDisplay(0);
}
void loop() {
for (int col = 0; col < 8; col++) {
lc.setColumn(0, col, message[(offset + col) % len]);
}
offset = (offset + 1) % len; // move the window one column
delay(speedMs);
}
چرا این درس؟
دورهی تینکرکد فارسی تعاملی است: هر قدم را خودت داخل شبیهساز انجام میدهی — مدار واقعی میچینی، کد واقعی اجرا میکنی و نتیجه را همان لحظه میبینی. این درس روی درسهای قبلی ساخته شده، پس اگر تازه شروع کردهای از درس ۱ بیا!
این درس را رایگان در شبیهساز شروع کن 🎓