آموزش راه اندازی ماژول دات ماتریس با اردوینو Mega 2560

در این آموزش می خواهیم با تایپ متن دلخواه خود در برنامه ترمینال اردوینو ان را روی ماژول دات ماتریس نمایش دهیم و ماژول را تبدیل به یک تابلو روان نماییم.در واقع اطلاعات بصورت زنده از پورت سریال دریافت و متن مورد نظر بصورت تابلو روان روی ماژول دات ماتریس نمایش داده می شود.برای شروع نیاز به ماژول دات ماتریس با تراشه Max7219 و همچنین ماژول اردوینو Mega2560 داریم.

در زیر وضعیت پایه های ماژول را مشاهده می کنید:

این ماژول در سمت چپ خود دارای 5 پایه می باشد که پایه VCC ان باید به ولتاژ 5 ولت متصل گردد و پایه GND ان با پایه زمین اردوینو یکی شود همچنین پایه DIN ان باید به پایه MOSI میکروکنترلر متصل شود و پایه  CLK ان به پایه کلاک SPI میکروکنترلر وصل شود .شما می توانید از هر ماژول اردوینو دیگری استفاده نمایید و پایه CS که پایه chip select ای سی می باشد را به هر پایه ی دلخواه متصل نمایید.ما از ماژول mega 2560 استفاده کرده ایم در زیر پایه های ان را مشاهده می کنید:

 

توضیحات برنامه :

#include <MD_Parola.h>
#include <MD_MAX72xx.h>
#include <SPI.h>

فراخوانی کتابخانه های مورد نیاز.در صورتی که دو کتابخانه را از قبل نصب ندارید انها را نصب نمایید.

#define HARDWARE_TYPE MD_MAX72XX::FC16_HW

مشخص کردن نوع تراشه ماژول

#define MAX_DEVICES 1

مشخص کردن تعداد ماژول های مورد استفاده که در این پروژه یک عدد می باشد.

#define CS_PIN 10

مشخص کردن پایه chip select ماژول

MD_Parola myDisplay = MD_Parola(HARDWARE_TYPE, CS_PIN, MAX_DEVICES);

تعریف شئی از کلاس MD_Parola

char tempStr[100];
char cache[100];
int pos = 0;
bool getData = false;

void setup() {

  Serial.begin(115200);

تنظیم بادریت پورت سریال

  myDisplay.begin();

راه اندازی ماژول

  myDisplay.setIntensity(3);

تنظیم شدت نور ماژول که از سطح 0 تا 15 قابل تنظیم می باشد.

myDisplay.displayClear();
  myDisplay.displayScroll(" ", PA_CENTER, PA_SCROLL_LEFT, 100);
}

void loop() {

  if (myDisplay.displayAnimate()) {//if is finished

در صورت اتمام نمایش متن قبلی می توانیم متن جدید را نمایش دهیم.

 myDisplay.displayScroll(cache, PA_CENTER, PA_SCROLL_LEFT, 100);

نمایش اطلاعات قبلی که قبلا در متغییر cache ذخیره شده اند.

    if (getData == true) {

اگر دیتای جدیدی دریافت کردیم در این صورت متغییر getData در روتین سریال true می شود.

      myDisplay.displayClear();

ابتدا صفحه را پاک کرده

      myDisplay.displayScroll(tempStr, PA_CENTER, PA_SCROLL_LEFT, 100);

و متن جدید را بصورت اسکرول از سمت چپ و با تاخیر 100 میلی ثانیه نمایش می دهیم.

pos = 0;

      for(int i = 0; i < 100; i++) {
        cache[i] = tempStr[i];
           tempStr[i] = 0;
      }

کپی کردن اطلاعات در ارایه cache

      getData = false;

و پاکسازی متغییرها تا برای دریافت بعدی اماده شوند.

}


    myDisplay.displayReset();

اماده کردن ماژول برای اجرای بعدی

}
  
}




void serialEvent() {

ذخیره کارکترهای دریافتی در ارایه tempStr

while (Serial.available()) {

    char temp_char = (char)Serial.read();

    if(temp_char != '\n'){

       tempStr[pos] = temp_char;
    }

    pos++;

    if (temp_char == '\n' || pos == 100) {

اگر به کارکتر اینتر رسیدیم یا تعداد کارکترهای دریافتی به حد سایز ارایه دریافتی ما رسیده است دریافت را متوقف می کنیم و متغییر getData را true می کنیم تا در برنامه loop متن ما بروز شود.

      Serial.println(tempStr);
        getData = true;
        break;
    }

  }

}

 

 

 

بعد از باز کردن ترمینال سریال اردوینو کافی است در کادر مشخص شده متن خود را تایپ کرده و اینتر را بزنید تا متن به اردوینو ارسال شود.

در ادامه می توانید فابل برنامه را دانلود نمایید:

دانلود فایل

 

دیدگاهتان را بنویسید!

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

گیل الکترونیک
سبد خرید
empty basket

هیچ محصولی در سبد خرید نیست.