آردوینو آموزش آردوینو پروژه های آردوینو

آموزش ساخت تابلو روان با برد آردوینو

led-matrix--arduino-digispark
نوشته شده توسط پریسا پوربلورچیان

تابلو روان مجموعه ای از چندین LED که به صورت تک رنگ و یا دورنگ و یا  RGB می باشد. عملکرد تابلوروان های پیشرفته همانند یک تلویزیون می باشد و می ‌تواند تصاویر را با تغییر رنگ LED ها نمایش دهد. به طور معمول تابلو روان ها به دو دسته ی ثابت و متحرک تقسیم می شوند. تابلو روان ثابت فقط امکان نمایش یک متن از پیش تعیین شده و ثابت را دارد. ولی تابلو روان متحرک حالت پویا دارد و توانایی نمایش متن ها و تصاویر دلخواه را دارد. امروزه ساخت تابلو روان بسیار ساده شده است. با کنار هم قرار دادن تعدادی ماژول LED سخت افزار اولیه ساخته می شود. من در این آموزش از نمایشگر LED دات ماتریس ۸*۸ استفاده میکنم. در ادامه ی آموزش ساخت تابلو روان با آردوینو با مرجع تخصصی آردوینو ، دیجی اسپارک همراه باشید.

ساختار نمایشگر دات ماتریس

نمایشگرهای دات ماتریس Dot matrix همانند سون سگمنت از شبکه ی LED ها تشکیل شده است. این شبکه از LED به صورت آند مشترک یعنی اتصال کلیه ی پایه های مثبت و کاند مشترک یعنی اتصال پایه های منفی وجود دارند. برای راه اندازی یک نمایشگر دات ماتریس ۸*۸ نیاز به ۱۶ پایه از میکروکنترلر داریم. ولی مدلی که من در این آموزش از آن استفاده میکنم دارای تراشه ی MAX7219 می باشد و فقط ۳ پایه از میکروکنترلر را اشغال میکند. این نکته در راه اندازی تابلو روان بسیار اهمیت دارد. از این رو آدرس دهی برای روشن شدن هرکدام از ماتریس ها بسیار ساده خواهد بود ولی دقت داشته باشید همانند آموزش راه اندازی سون سگمنت با آردوینو ، کتابخانه ی مربوطه را نصب کرده باشید. به طور معمول نمایشگر های دات ماتریس برای نمایش اطلاعات در ترمینال ها ، فرودگاه ها ، انواع ساعت های صنعتی و نمایش اطلاعات یک ماشین صنعتی به کار می رود.

 

وسایل مورد نیاز:

آردوینو Arduino

ماژول دات ماتریس ۸×۸ با تراشه MAX7219

چند رشته سیم

 

اتصال به آردوینو

قبل از شروع کار ولتاژ کاری ماژول مورد نظرتان را دقیق بررسی کنید. مدلی که من استفاده میکنم از نوع ۵ ولت می باشد. بنابراین میتوانم از پین های آردوینو استفاده کنم. من به رابط SPI نیاز دارم بنابراین اتصال در آردوینو UNO ؛ پایه DIN به پبن ۱۱ ، پایه CS به پین ۱۰ و پایه CLK به پبن ۱۳ می باشد. چنانچه از آردوینو mega2560 استفاده می کنید ، پایه DIN به پبن ۵۱ ، پایه CS به پبن ۱۰ و پایه CLK را به پین ۵۲ متصل کنید.

 

فراخوانی کتابخانه :

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

 

کدهای برنامه:

استفاده همزمان از چند ماژول :

برای این منظور باید فایل HCMAX7219.h را از مسیر کتابخانه ویرایش کنید. ابتدا در مسیر Documents/arduino/libraries فایل مربوطه را پیدا کنید و فایل با پسوند .h را با Notepad ویرایش کنید. سپس کد زیر را پیدا کرده و عدد ۱ را به تعداد ماژول‌های مورد استفاده تغییر دهید. در این آموزش من از ۵ عدد ماژول استفاده کرده‌ام. سپس فایل را با کلید میانبر Ctrl+S ذخیره کنید. سپس مجددا از برنامه آردوینو کدها را کامپایل کنید.

 

 

نمایش نوشته

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

 

نمایش به صورت متحرک

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

 

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

 

 

در پایان نظرات و پیشنهادات خود را با ما درمیان بگذارید و با اشتراک گذاری این آموزش در شبکه های اجتماعی , از وبسایت دیجی اسپارک حمایت کنید.

درباره نویسنده

پریسا پوربلورچیان

۴۲ دیدگاه

    • سلام
      ممنونم از شما
      دقت کنید که این مشکل بخاطر عدم شناخت برد توسط سیستم است. چنانچه از برد آردوینو با تراشه ch340 استفاده میکنید، حتما درایور مربوطه را از دانشجوکیت دانلود و نصب کنید. اگر از مدل R3 استفاده میکنید، باید اتصالات کابل را بررسى و مطمئن شوید در برنامه آردوینو ، در منو قسمت Tools ، پورت (Port) را درست انتخاب کرده باشید. این موضوع را ادامه دهید تا مشکل برطرف شود.

  • با سلام وتشکر از مطلب خیلی خوبتون
    متاسفانه متوجه قسمت استفاده همزمان از چند ماژول نشدم.فرمودید کد زیر را پیدا کرده و عدد ۱ را به تعداد ماژول‌های مورد استفاده تغییر دهید.منظورتون کدوم کد هست؟
    با تشکر

    • سلام
      همانطور که در آموزش گفته شده برای این منظور باید فایل HCMAX7219.h را از مسیر کتابخانه ویرایش کنید. برای تغییر تعداد ماژول ها باید ابتدا وارد پوشه Documents/arduino/libraries شده سپس فایل با پسوند .h را با Notepad ویرایش کنید. سپس کد #define NUMBEROFDRIVERS را پیدا کرده و عدد ۱ را به تعداد ماژول‌های مورد استفاده تغییر دهید. در این آموزش من از ۵ عدد ماژول استفاده کرده‌ام. سپس فایل را با کلید میانبر Ctrl+S ذخیره کنید. سپس مجددا از برنامه آردوینو کدها را کامپایل کنید.

    • سلام
      از توجه شما ممنونم
      برای این منظور باید از دات ماتریس بزرگتری استفاده نمایید. در این آموزش ارتفاع دات ماتریس استفاده شده ۸ می باشد.

    • سلام
      کدها بررسی شد و مشکلی برای آپلود ندارد.
      لطفا توضیح دهید که آردوینو چه اروری به شما میدهد؟ تا بررسی کنم.

  • با سلام من میخوام بدونم اگه بخوام متن من تو دو ردیف نمایش داده بشه باید چی کار کنم یعنی متن ارتفاش بزرگتر بشه از دو یا سه ردیف استفاده کنم چه طور میتونم این کار رو بکنم
    سوال دوم ایا این ماژولها نیاز به تنظیمات آدرس دارند یا نه میکرو از کجا بدونه ایناطلاعات رو به کدوم مازول ماتریس باید بفرسته

    • سلام
      برای اینکار باید از دو عدد ماژول در کنار هم استفاده کنید و تغییرات کوچکی در مدار باید داده شود.
      در مورد سوال دوم نیز نقش کتابخانه برای همین موضوع است.

  • باسلام
    من وقتی در برنامه ام از کتابخانه HCMAX7219 استفاده میکنم با ارور اینکه همچین فایل یا کتابخانه ای وجود ندارد مواجه میشوم باید چه کار کنم؟

    • سلام
      بعد از دانلود کتابخانه باید فایل دانلود را از حالت زیپ خارج کرده و در پوشه آردوینو Arduino در قسمت Libraries کپی نمایید ، تا مشکل برطرف شود.

  • کدتون کاملا اشتباهه.
    این کد فقط برای یک تراشه max نوشته شده.
    توی تریس کردن و توضیحات کدتون نوشتین print7seg !!!!!!!!!!!!
    سون سگمنتی که کاملا با کدی که بالاش گذاشتین در تناقضه…

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

  • سلام
    من اگر بخوام تعدا زیادتری دات ماتریکس استفاده کنم و یک ساعت با چندین زمان آلارم داشته باشم از این روش امکان پذیر هست ؟

    • سلام
      اقدامات لازم برای افزایش تعداد دات ماتریس ها را در آموزش توضیح داده ام. راجع به بخش دوم ساعت و چندین آلارم لطفا بیشتر توضیح دهید تا راهنمایی دقیق تری داشته باشم.

    • سلام
      کد ها را به صورت مستقیم از منوی کد سمت راست کپی نمایید. ممکن است در هنگام کپی پیست کدها تغییر کرده باشد.

      • اتصالات و تنظیمات آردوینو و پرتی که انتخاب کرده اید را دقیق بیان نمایید تا راهنمایی دقیق تری ارائه دهم. در ضمن تمام کدها چک شده و ایرادی ندارد. حتما در اتصالات اشتباهی رخ داده است.

    • سلام
      بله میتوان استفاده کرد. همانطور که در قسمت استفاده همزمان از چند ماژول توضیح داده ام، میتوانید تعداد ماژول ها را افزایش دهید.

      • سلام خانم مهندس
        تعداد ماژول ها رو افزایش دادم.
        ولی نوشته به صورت عمودی است و شیفتش هم عمودی است.
        در صورتی که باید افقی نوشته حرکت بکند.
        چطور میشه این مشکل رو حل کرد؟
        نمیدونم که آیا متوجه منظورم شدید یا نه، اگه امکان آپلود فیلم بود، نحوه ی کار کردن به صورت عمودی را برای شما قرار میدادم.
        متشکر

    • سلام
      برای این موضوع باید با استفاده از کتابخانه liquid crystal مقادیری که میخواهید نمایش دهید را آدرس دهی کنید.

  • با سلام کد شما در نرم افزار Arduino من این ارور را میدهد. مشکلش چیه؟ برای تمامی دستوراتی که از namespace HCMX7219 استفاده شده همین ارور را دارم.
    ممنون
    ghazal.orig:61: error: expected unqualified-id before ‘.’ token
    HCMAX7219.Refresh();
    ^
    exit status 1
    expected unqualified-id before ‘.’ token

  • با سلام خدمت خانم بلورچیان
    خواستم بپرسم برای دو یا سه ستون کردن بورد هم برنامه قابل تغییر است؟
    به عبارت دیگه، بخواییم یک دات ماتریکس ۱۶*۳۲ یا ۲۴*۳۲ بسازیم.
    با این برنامه امکانش هست؟
    و اگر هست، چه کارهایی باید انجام داد.

    متشکر از پاسخ هاتون

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

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