🙂 درس 76: ماتریس LED ۸×۸
۶۴ LED با فقط سه سیم — و نقاشی با صفر و یک.
سطح: متوسط · زمان: حدود 18 دقیقه · مفاهیم: MAX7219، بایت، بیت
قدمهای این درس
- چطور ۶۴ LED با سه سیم؟
- قدم ۱ — سیمکشی MAX7219
- قدم ۲ — لبخند و فلش
- اشتباه رایج: ماتریس هیچ چیز نشان نمیدهد
- چالش: قلب تپنده
نمونهای از کد این درس
// MAX7219 8x8 LED matrix: a smiley and an arrow from byte arrays.
#include <LedControl.h>
LedControl lc = LedControl(12, 11, 10, 1); // DIN, CLK, CS, number of modules
byte smile[8] = {
B00111100,
B01000010,
B10100101,
B10000001,
B10100101,
B10011001,
B01000010,
B00111100
};
byte arrow[8] = {
B00011000,
B00111100,
B01111110,
B11011011,
B00011000,
B00011000,
B00011000,
B00011000
};
void drawPicture(byte pic[]) {
for (int row = 0; row < 8; row++) {
lc.setRow(0, row, pic[row]); // each byte = one row, each bit = one LED
}
}
void setup() {
lc.shutdown(0, false); // wake the chip up (it starts asleep)
lc.setIntensity(0, 8); // brightness 0..15
lc.clearDisplay(0);
}
void loop() {
drawPicture(smile);
delay(1500);
drawPicture(arrow);
delay(1500);
}
چرا این درس؟
دورهی تینکرکد فارسی تعاملی است: هر قدم را خودت داخل شبیهساز انجام میدهی — مدار واقعی میچینی، کد واقعی اجرا میکنی و نتیجه را همان لحظه میبینی. این درس روی درسهای قبلی ساخته شده، پس اگر تازه شروع کردهای از درس ۱ بیا!
این درس را رایگان در شبیهساز شروع کن 🎓