خانه » فروشگاه » ماژول نمایشگر ماتریس نقطه‌ای ۸x۸

ماژول نمایشگر ماتریس نقطه‌ای ۸x۸

214,000 تومانهر عدد

ماژول ماتریس نقطه‌ای ۸x۸ با درایور MAX7219 یک نمایشگر همه‌کاره، قابل کنترل و مقرون‌به‌صرفه برای پروژه‌های الکترونیکی است.

با رابط SPI ساده، کتابخانه‌های گسترده و قابلیت اتصال سری، این ماژول امکان ایجاد نمایشگرهای بزرگ و پیچیده را با کمترین پیچیدگی فراهم می‌کند.

تعداد قیمت تخفیف
10-49 209,720 تومان هر عدد 2%
50+ 207,580 تومان هر عدد 3%

5,000,000 تومان را به سبد خرید اضافه کنید و ارسال رایگان دریافت کنید!

موجود در انبار

Size and packaging guidelines

یکا (واحد) علامت اختصاری شرح انگلیسی مقدار
1 متر m Meter 1
1 سانتی متر cm Canti Meter 2-^10
1 میلی متر mm Mili Meter 3-^10
1 اینچ in Inch 2.54cm
2 اینچ in Inch 5.08cm
3 اینچ in Inch 7.62cm
5 اینچ in Inch 12.7cm
6 افرادی که اکنون این محصول را تماشا می کنند!




توضیحات

ماژول نمایشگر ماتریس نقطه‌ای ۸x۸

با درایور MAX7219 (تک رنگ)

معرفی ماژول ماتریس ۸x۸ MAX7219

ماژول نمایشگر ماتریس نقطه‌ای ۸x۸ با درایور MAX7219 یک نمایشگر LED ماتریسی با کنترل آسان و امکانات پیشرفته است که امکان نمایش کاراکترها، اعداد، اشکال و انیمیشن‌های ساده را فراهم می‌کند. این ماژول با رابط SPI ساده و کتابخانه‌های گسترده، محبوب‌ترین انتخاب برای پروژه‌های نمایشی است.

مشخصات کلی

ویژگی‌های کلیدی:

  • رزولوشن: ۸x۶۴ پیکسل (۸ ماژول ۸x۸ به صورت سری)

  • رنگ LED: قرمز (آبی، سبز و دو رنگ نیز موجود است)

  • درایور: MAX7219 یا MAX7221

  • رابط: SPI 3 سیمه (DIN, CLK, CS)

  • ولتاژ تغذیه: ۵V DC

  • جریان مصرف: ۱۵۰-۵۰۰mA (بسته به روشنایی)

مشخصات فنی جامع

مشخصات نمایشگر:

  • تعداد LED: ۶۴ عدد LED در هر ماژول

  • اندازه LED: ۳mm یا ۵mm (بسته به مدل)

  • فاصله پیکسل: ۳٫۰mm یا ۳٫۷۵mm

  • ابعاد فعال: ۲۴×۲۴mm تا ۳۰×۳۰mm

  • روشنایی: ۸۰-۲۰۰ mcd بسته به رنگ

  • زاویه دید: ۱۲۰ درجه

مشخصات درایور MAX7219:

  • فرکانس کلاک: تا ۱۰MHz

  • پیکربندی: ۸ سگمنت × ۸ رقم

  • کنترل روشنایی: ۱۶ سطح دیجیتال

  • حالت‌های تست: تست تمام LEDها

  • کنترل مصرف: حالت خواب (Shutdown)

  • رمزگشایی: داخلی برای ۷ سگمنت

مشخصات الکتریکی:

  • ولتاژ تغذیه: ۵V ±۵٪

  • ولتاژ منطقی: ۳٫۳V یا ۵V (سازگار)

  • جریان هر LED: ۲۰mA (پیک ۴۰mA)

  • جریان کل: تا ۵۰۰mA در روشنایی ماکزیمم

  • توان مصرفی: ۲٫۵W در حالت کامل

مشخصات فیزیکی:

  • ابعاد PCB: ۳۲×۳۲mm تا ۵۰×۵۰mm

  • ضخامت: ۱۰-۱۵mm (با LED)

  • پین‌های اتصال: ۵ پین (VCC, GND, DIN, CLK, CS)

  • کانکتور‌ها: هدر ۲٫۵۴mm نری/ماده

  • وزن: ۱۰-۱۵ گرم

ساختار داخلی و پین‌ها

پین‌های ماژول:

    دید از پشت (سمت اتصالات):
    
    ┌─────────────────────┐
    │                     │
    │  ○   ○   ○   ○   ○  │
    │                     │
    │  VCC DIN CS  CLK GND│
    │                     │
    └─────────────────────┘
    
    یا در برخی مدل‌ها:
    
    ┌─────────────────────┐
    │                     │
    │  ○   ○   ○   ○   ○  │
    │                     │
    │  GND DIN CS  CLK VCC│
    │                     │
    └─────────────────────┘

اتصال زنجیره‌ای (Daisy Chain):

آردوینو ← [ماژول ۱] ← [ماژول ۲] ← [ماژول ۳] ← ...
           DIN→DOUT   DIN→DOUT   DIN→DOUT
           
نحوه اتصال:
آردوینو.MOSI → ماژول۱.DIN
آردوینو.SCK  → ماژول۱.CLK
آردوینو.SS   → ماژول۱.CS
ماژول۱.DOUT → ماژول۲.DIN (و ادامه...)

عملکرد MAX7219

ثبات‌های داخلی:

ثبات‌های آدرس‌دهی:
0x0X: رقم ۱-۸ (X=1 تا 8)
0x09: رمزگشایی
0x0A: روشنایی
0x0B: اسکن لیمیت
0x0C: حالت شات‌داون
0x0F: تست نمایشگر

کنترل روشنایی:

// ۱۶ سطح روشنایی:
// 0xX0 تا 0xXF (X=0 تا F)
// 0 = کمترین، F = بیشترین روشنایی

void setBrightness(int level) {
    level = constrain(level, 0, 15);
    writeRegister(0x0A, level);
}

کاربردهای اصلی

۱. نمایش اطلاعات ساده:

  • نمایش اعداد و حروف

  • نمایش زمان و تاریخ

  • نمایش دمای محیط

  • نشانگر سطح (Level Indicator)

۲. انیمیشن و گرافیک:

  • انیمیشن‌های ساده

  • نمایش ایموجی‌ها

  • بازی‌های ساده (مثل اسنیک)

  • نمایش نمودارهای ساده

۳. سیستم‌های اطلاع‌رسانی:

  • تابلوهای اعلانات

  • سیستم‌های هشدار

  • نشانگر وضعیت

  • نمایش پیام‌های متحرک

۴. پروژه‌های آموزشی:

  • آموزش برنامه‌نویسی گرافیکی

  • آموزش الگوریتم‌های نمایش

  • پروژه‌های دانشگاهی

  • کارگاه‌های الکترونیک

کتابخانه‌های پشتیبانی شده

برای آردوینو:

// ۱. کتابخانه LedControl
#include <LedControl.h>
LedControl lc = LedControl(12, 11, 10, 1);

// ۲. کتابخانه MaxMatrix
#include <MaxMatrix.h>
MaxMatrix m(12, 11, 10, 1);

// ۳. کتابخانه MD_MAX72xx (پیشرفته)
#include <MD_MAX72xx.h>
MD_MAX72xx mx = MD_MAX72xx(HARDWARE_TYPE, 12, 11, 10, 1);

برای پایتون (رزبری‌پای):

# کتابخانه luma.led_matrix
from luma.led_matrix.device import max7219
from luma.core.interface.serial import spi, noop
from luma.core.render import canvas

# کتابخانه Adafruit_CircuitPython_MAX7219
import board
import digitalio
import adafruit_max7219

برای میکروپایتون:

from max7219 import Matrix8x8
from machine import Pin, SPI

spi = SPI(1, baudrate=10000000, polarity=0, phase=0)
display = Matrix8x8(spi, Pin(15), 1)

برنامه‌نویسی پایه

راه‌اندازی اولیه:

#include <LedControl.h>

// پین‌ها: DIN, CLK, CS, تعداد ماژول‌ها
LedControl lc = LedControl(12, 11, 10, 1);

void setup() {
    // روشن کردن نمایشگر
    lc.shutdown(0, false);
    
    // تنظیم روشنایی متوسط
    lc.setIntensity(0, 8);
    
    // پاک کردن نمایشگر
    lc.clearDisplay(0);
}

نمایش یک پیکسل:

void setPixel(int x, int y, bool state) {
    // محدودیت‌های x و y بین ۰ تا ۷
    x = constrain(x, 0, 7);
    y = constrain(y, 0, 7);
    
    // ستون‌ها از ۰ تا ۷، سطرها از ۰ تا ۷
    lc.setLed(0, x, y, state);
}

نمایش یک کاراکتر:

// آرایه بیت‌مپ برای کاراکترها
byte charA[8] = {
    B00111100,
    B01100110,
    B01100110,
    B01111110,
    B01100110,
    B01100110,
    B01100110,
    B00000000
};

void displayChar(byte bitmap[8]) {
    for(int row = 0; row < 8; row++) {
        lc.setRow(0, row, bitmap[row]);
    }
}

اسکرول متن:

void scrollText(String text, int delayTime) {
    int length = text.length();
    
    for(int i = 0; i < length * 8; i++) {
        lc.clearDisplay(0);
        
        // محاسبه موقعیت نمایش
        int position = i;
        
        // نمایش بخشی از متن
        displayTextSegment(text, position);
        
        delay(delayTime);
    }
}

مثال‌های پیشرفته

۱. نمایش دماسنج:

class TemperatureDisplay {
private:
    float temperature;
    LedControl* display;
    
public:
    TemperatureDisplay(LedControl* lc) {
        display = lc;
    }
    
    void updateTemperature(float temp) {
        temperature = temp;
        displayTemperature();
    }
    
    void displayTemperature() {
        display->clearDisplay(0);
        
        // نمایش عدد
        String tempStr = String(int(temperature));
        for(int i = 0; i < tempStr.length(); i++) {
            displayChar(tempStr[i], i);
        }
        
        // نمایش درجه سانتیگراد
        displayDegreeSymbol();
        
        // نمایش گراف دمایی
        displayTemperatureGraph();
    }
    
    void displayTemperatureGraph() {
        // نمایش نوار دمایی
        int level = map(temperature, 0, 50, 0, 8);
        for(int y = 0; y < level; y++) {
            display->setLed(0, 7, y, true);
        }
    }
};

۲. ساعت دیجیتال:

class MatrixClock {
private:
    int hours;
    int minutes;
    int seconds;
    LedControl* display;
    
public:
    MatrixClock(LedControl* lc) {
        display = lc;
    }
    
    void updateTime(int h, int m, int s) {
        hours = h;
        minutes = m;
        seconds = s;
        displayTime();
    }
    
    void displayTime() {
        display->clearDisplay(0);
        
        // نمایش ساعت
        displayNumber(hours / 10, 0);
        displayNumber(hours % 10, 2);
        
        // نمایش دونقطه چشمک‌زن
        static bool colonState = false;
        if(seconds % 2 == 0) {
            displayColon(colonState);
            colonState = !colonState;
        }
        
        // نمایش دقیقه
        displayNumber(minutes / 10, 4);
        displayNumber(minutes % 10, 6);
    }
    
    void displayNumber(int num, int position) {
        byte numbers[10][8] = {
            // تعریف بیت‌مپ اعداد ۰-۹
        };
        
        for(int row = 0; row < 8; row++) {
            display->setRow(0, position, numbers[num][row]);
        }
    }
};

۳. بازی ساده اسنیک:

class SnakeGame {
private:
    struct Point {
        int x;
        int y;
    };
    
    Point snake[64];
    int length;
    Point food;
    int direction; // 0=up, 1=right, 2=down, 3=left
    
public:
    void init() {
        length = 3;
        snake[0] = {4, 4};
        snake[1] = {4, 5};
        snake[2] = {4, 6};
        direction = 0;
        generateFood();
    }
    
    void update() {
        // حرکت مار
        Point newHead = snake[0];
        
        switch(direction) {
            case 0: newHead.y--; break;
            case 1: newHead.x++; break;
            case 2: newHead.y++; break;
            case 3: newHead.x--; break;
        }
        
        // بررسی برخورد با دیوار
        if(newHead.x < 0 || newHead.x > 7 ||
           newHead.y < 0 || newHead.y > 7) {
            gameOver();
            return;
        }
        
        // بررسی برخورد با خود
        for(int i = 0; i < length; i++) {
            if(snake[i].x == newHead.x && 
               snake[i].y == newHead.y) {
                gameOver();
                return;
            }
        }
        
        // جابه‌جایی مار
        for(int i = length; i > 0; i--) {
            snake[i] = snake[i-1];
        }
        snake[0] = newHead;
        
        // بررسی غذا خوردن
        if(newHead.x == food.x && newHead.y == food.y) {
            length++;
            generateFood();
        }
    }
    
    void render(LedControl& lc) {
        lc.clearDisplay(0);
        
        // نمایش مار
        for(int i = 0; i < length; i++) {
            lc.setLed(0, snake[i].x, snake[i].y, true);
        }
        
        // نمایش غذا
        lc.setLed(0, food.x, food.y, true);
    }
};

اتصال چند ماژول به صورت سری

کنترل ۴ ماژول ۸x۸ (ماتریس ۸x۳۲):

#include <LedControl.h>

// اتصال ۴ ماژول به صورت سری
LedControl lc = LedControl(12, 11, 10, 4);

void setup() {
    for(int i = 0; i < 4; i++) {
        lc.shutdown(i, false);
        lc.setIntensity(i, 8);
        lc.clearDisplay(i);
    }
}

void displayAcrossModules(String text) {
    // نمایش متن در عرض ۴ ماژول
    int charWidth = 6; // عرض هر کاراکتر
    
    for(int pos = 0; pos < text.length() * charWidth; pos++) {
        for(int module = 0; module < 4; module++) {
            int moduleOffset = module * 8;
            displayTextSegment(text, pos - moduleOffset, module);
        }
        delay(100);
    }
}

ماتریس ۱۶x۱۶ (۴ ماژول):

class Matrix16x16 {
private:
    LedControl* lc;
    
public:
    Matrix16x16(LedControl* display) {
        lc = display;
    }
    
    void setPixel16(int x, int y, bool state) {
        // تعیین ماژول و موقعیت نسبی
        int moduleX = x / 8;
        int moduleY = y / 8;
        int moduleIndex = moduleY * 2 + moduleX;
        
        int localX = x % 8;
        int localY = y % 8;
        
        lc->setLed(moduleIndex, localX, localY, state);
    }
    
    void displayImage16x16(uint16_t image[16]) {
        for(int y = 0; y < 16; y++) {
            for(int x = 0; x < 16; x++) {
                bool pixel = (image[y] >> (15 - x)) & 1;
                setPixel16(x, y, pixel);
            }
        }
    }
};

بهینه‌سازی عملکرد

۱. استفاده از بافر گرافیکی:

class GraphicsBuffer {
private:
    byte buffer[8];
    LedControl* display;
    
public:
    GraphicsBuffer(LedControl* lc) {
        display = lc;
        clear();
    }
    
    void clear() {
        memset(buffer, 0, sizeof(buffer));
    }
    
    void setPixel(int x, int y, bool state) {
        if(x >= 0 && x < 8 && y >= 0 && y < 8) {
            if(state) {
                buffer[y] |= (1 << (7 - x));
            } else {
                buffer[y] &= ~(1 << (7 - x));
            }
        }
    }
    
    void render() {
        for(int row = 0; row < 8; row++) {
            display->setRow(0, row, buffer[row]);
        }
    }
    
    void scrollLeft() {
        for(int row = 0; row < 8; row++) {
            buffer[row] <<= 1;
        }
    }
};

۲. انیمیشن با تایمر:

class AnimationTimer {
private:
    unsigned long lastUpdate;
    unsigned long interval;
    int frame;
    int totalFrames;
    
public:
    AnimationTimer(unsigned long updateInterval) {
        interval = updateInterval;
        lastUpdate = millis();
        frame = 0;
    }
    
    bool shouldUpdate() {
        unsigned long current = millis();
        if(current - lastUpdate >= interval) {
            lastUpdate = current;
            return true;
        }
        return false;
    }
    
    int getFrame() {
        if(shouldUpdate()) {
            frame = (frame + 1) % totalFrames;
        }
        return frame;
    }
    
    void setTotalFrames(int frames) {
        totalFrames = frames;
    }
};

۳. کنترل مصرف انرژی:

class PowerManager {
private:
    LedControl* display;
    bool isSleeping;
    
public:
    PowerManager(LedControl* lc) {
        display = lc;
        isSleeping = false;
    }
    
    void sleep() {
        if(!isSleeping) {
            display->shutdown(0, true);
            isSleeping = true;
        }
    }
    
    void wake() {
        if(isSleeping) {
            display->shutdown(0, false);
            isSleeping = false;
        }
    }
    
    void autoSleep(unsigned long timeout) {
        static unsigned long lastActivity = millis();
        
        if(millis() - lastActivity > timeout) {
            sleep();
        }
    }
    
    void updateActivity() {
        lastActivity = millis();
        if(isSleeping) {
            wake();
        }
    }
};

راهنمای عیب‌یابی

مشکلات رایج و راه‌حل‌ها:

مشکل: نمایشگر روشن نمی‌شود
۱. بررسی اتصال VCC و GND
۲. بررسی پین‌های DIN, CLK, CS
۳. تست با تابع displayTest()
۴. بررسی جهت اتصال ماژول

مشکل: فقط برخی LEDها روشن می‌شوند
۱. بررسی تنظیمات اسکن لیمیت
۲. تست سخت‌افزار با تابع setLed()
۳. بررسی اتصال‌های لحیم‌کاری

مشکل: نمایشگر چشمک می‌زند
۱. افزایش تاخیر در به‌روزرسانی
۲. استفاده از خازن ۱۰μF روی VCC
۳. بررسی نویز منبع تغذیه

مشکل: ماتریس داغ می‌شود
۱. کاهش روشنایی با setIntensity()
۲. بررسی جریان مصرفی
۳. استفاده از منبع تغذیه با جریان کافی

برنامه تست سخت‌افزار:

void hardwareTest() {
    Serial.println("Starting hardware test...");
    
    // تست تمام LEDها
    lc.clearDisplay(0);
    lc.shutdown(0, false);
    lc.setIntensity(0, 15);
    
    // تست تک تک LEDها
    for(int y = 0; y < 8; y++) {
        for(int x = 0; x < 8; x++) {
            lc.setLed(0, x, y, true);
            delay(50);
            lc.setLed(0, x, y, false);
        }
    }
    
    // تست حالت تست نمایشگر
    lc.shutdown(0, true);
    delay(1000);
    lc.shutdown(0, false);
    
    Serial.println("Hardware test complete!");
}

پروژه‌های پیشنهادی

پروژه‌های مبتدی:

  1. نمایشگر دماسنج: نمایش دمای محیط

  2. ساعت دیجیتال: نمایش ساعت و دقیقه

  3. دایس رول: تولید عدد تصادفی

  4. نشانگر سطح: نمایش سطح سیال

پروژه‌های متوسط:

  1. تابلو روان: نمایش متن متحرک

  2. گیم اسنیک: بازی مار کلاسیک

  3. نمایشگر ECG: شبیه‌سازی سیگنال قلب

  4. اسکوپ ساده: نمایش شکل موج

پروژه‌های پیشرفته:

  1. نمایشگر سه‌بعدی: استفاده از ۸ ماژول

  2. سیستم آگهی: کنترل از طریق وب

  3. ویژوالایزر صوتی: واکنش به صدا

  4. نمایشگر باینری: نمایش داده‌های دیجیتال

 

بسته‌بندی و محتویات

بسته استاندارد شامل:

  • ۱ عدد ماژول ماتریس ۸x۸ با MAX7219

  • ۴ عدد پایه هدر نری (قابل لحیم)

  • ۱ عدد کابل ۵ سیمه ۲۰cm

  • راهنمای نصب سریع فارسی

بسته توسعه‌دهنده شامل:

  • ۴ عدد ماژول ماتریس

  • ۱ عدد برد اتصال سریع

  • ۱ عدد آداپتور ۵V 2A

  • کتابچه پروژه‌های عملی

  • کدهای نمونه کامل

بسته حرفه‌ای شامل:

  • ۸ عدد ماژول ماتریس

  • فریم آلومینیومی برای مونتاژ

  • منبع تغذیه صنعتی ۵V 10A

  • کتابخانه‌های سفارشی

  • پشتیبانی فنی VIP

تست‌های کیفیت:

۱. تست LEDها: بررسی تمام ۶۴ LED
۲. تست درایور: بررسی عملکرد MAX7219
۳. تست اتصال: بررسی پین‌های اتصال
۴. تست حرارتی: کارکرد در دمای ۵۰°C

پشتیبانی فنی:

  • راهنمای فارسی جامع

  • مثال‌های برنامه‌نویسی

  • کتابخانه‌های به‌روز

  • گروه تلگرام پشتیبانی

  • ویدئوهای آموزشی

جمع‌بندی

ماژول ماتریس نقطه‌ای ۸x۸ با درایور MAX7219 یک نمایشگر همه‌کاره، قابل کنترل و مقرون‌به‌صرفه برای پروژه‌های الکترونیکی است. با رابط SPI ساده، کتابخانه‌های گسترده و قابلیت اتصال سری، این ماژول امکان ایجاد نمایشگرهای بزرگ و پیچیده را با کمترین پیچیدگی فراهم می‌کند.

از پروژه‌های ساده نمایش متن تا سیستم‌های نمایش پیچیده، این ماژول ابزاری ایده‌آل برای طراحان و سازندگان است.

توضیحات تکمیلی
وزن 0.1 کیلوگرم
ابعاد 2 × 2 × 2 سانتیمتر
ساختار محصول تعیین نوع محصول فیزیکی و مجازی ( شامل نقشه ی شماتیک، مدار چاپی و .. بصورت دانلودی )

لایه های مدارچاپی

نوع مدار

کشور سازنده

نظرات (0)
0 بررسی
0
0
0
0
0

هیچ دیدگاهی برای این محصول نوشته نشده است.

.فقط مشتریانی که این محصول را خریداری کرده اند و وارد سیستم شده اند میتوانند برای این محصول دیدگاه ارسال کنند.

حمل و نقل و تحویل

در تهران فقط

پیک موتوری

تحویل حضوری

روشهای ارسال تهران و شهرستان ها

اداره پست جمهوری اسلامی ایران

پست سفارشی، پیشتاز، بین‌المللی، تیپاکس و پست پیشتاز خارج از کشور

در حال حاضر امکان رهگیری مرسوله های پستی با کد مرسوله، دریافت گواهی کد پستی، مشاهده تعرفه های پستی به صورت آنلاین و ... در سایت شرکت ملی پست جمهوری اسلامی ایران فراهم شده است. تمامی مردم می توانند با ورود به این سایت، از خدمات مربوط به شرکت و اداره پست استفاده کنند.

در اداره پست جمهوری اسلامی ایران، برای ارسال مرسولات، روش‌های مختلفی وجود دارد که عبارتند از:

۱. پست سفارشی: این روش برای ارسال کالاهای کوچک و سبک و با ارزش کمتر از ۱۰۰ هزار تومان استفاده می‌شود. در این روش، هزینه ارسال بر اساس وزن و مسافت محاسبه می‌شود و زمان تحویل ۳ تا ۷ روز کاری است.

۲. پیشتاز: این روش برای ارسال کالاهایی با ارزش بیشتر از ۱۰۰ هزار تومان و یا کالاهایی که به سرعت باید تحویل داده شوند، استفاده می‌شود. در این روش، هزینه ارسال بر اساس وزن و مسافت محاسبه می‌شود و زمان تحویل ۱ تا ۳ روز کاری است.

۳. بین‌المللی: این روش برای ارسال کالاهایی به خارج از کشور استفاده می‌شود. در این روش، هزینه ارسال بر اساس وزن و مسافت و هزینه گمرکی محاسبه می‌شود و زمان تحویل بسته به مقصد و روش ارسال، متفاوت است.

۴. تیپاکس: این روش برای ارسال کالاهایی است که به سرعت باید تحویل داده شوند. در این روش، هزینه ارسال بر اساس وزن و مسافت و زمان تحویل مورد نظر مشتری محاسبه می‌شود.

۵. پست پیشتاز خارج از کشور: این روش برای ارسال کالاها به خارج از کشور استفاده می‌شود و هزینه ارسال بر اساس وزن و مسافت و هزینه گمرکی محاسبه می‌شود.

در کل، برای ارسال مرسوله در اداره پست جمهوری اسلامی ایران، می‌توانید یکی از روش‌های فوق را انتخاب کنید که بسته به نیاز و شرایط شما، مناسب‌تر است.