آموزش طراحی و ساخت تابلوهای روان LED با AVR

مقدمه

تابلوهای روان ( LED Display Panel ) که کاربرد ویژه در کارهای نمایشی و تبلیغاتی دارند ، در انواع مختلف تک رنگ و چند رنگ و با ابعاد مختلف در مغازه ها ، پاساژها ، فروشگاه ها ، بانک ها ، چهار راه ها و … دیده می شود. در این آموزش میخواهیم نحوه ساخت و برنامه نویسی مدل های کوچک و تک رنگ آن ها را  آموزش دهیم.

tbrv0


تابلو روان چیست ؟

در واقع یک تابلوی نمایشگر دیجیتالی، متن مورد نظر خود را از طریق تجهیزات ورودی همچون کیبورد و یا پورت سریال دریافت میکند.و این اطلاعات را در اختیار پردازنده قرار میدهد. سپس پردازنده پس از آنالیز اطلاعات آن را در حافظه تابلو ذخیره نموده. علاوه بر آن حافظه موجود در تابلو میتواند کدهای برنامه را در خود نگهداری نماید. از طرفی پردازنده با توجه به اطلاعات ذخیره شده، سیگنالهای لازم را جهت نمایش تولید کرده و در اختیار درایورها قرار میدهد. با توجه به اینکه نحوه چیدمان LED ها در نمایشگر به صورت ماتریسی می باشد، لذا دو دسته درایور برای راه اندازی ماتریس نیاز است که شامل داریورهای سطر و داریورهای ستون مییاشند. این درایورها با توجه به فرامین دریافتی از سوی پردازنده، با روشن و خاموش نگه داشتن LED های موجود در ماتریس ،  باعث به نمایش در آمدن مطالب ( متن و یا تصویر ) بر روی ماتریس خواهند شد.

Tbrv1


نمایشگرهای دات ماتریس ( Dot Matrix )

نمایشگرهای دات ماتریکس آرایه ای از LED ها هستند که در کنار هم قرار گرفته و دارای ابعاد مشخصی می باشند. در شکل زیر یک آرایه دات ماتریکس 7*5 را به همراه مدار داخلی مشاهده می کنید.

Dot Matrix Display

در شکل بالا 7 ردیف و 5 ستون داریم که همانطور که می بینیم در هر ردیف آند همه ال ای دی ها به هم وصل هستن و در هر ستون ها هم کاتد ها بهم وصل هستن این روش سیم کشی قطعات که در ال ای دی ها و کی پدها استفاده می شود را اتصال ماتریسی گویند.

اگر در این دات ماتریکس به R1 ولتاژ 3 ولت(متناسب با ولتاژ کار ال ای دی ها) اعمال کنیم و C1 را به زمین وصل کنیم LED بالا سمت چپ روشن خواهد شد. اگرC1,C2,C3,C4,C5  را به زمین وصل کنیم کل ال ای دی های ردیف بالا روشن خواهد شد. برعکس این موضوع برای ستون ها هم صادق است یعنی اگر به ستون اول را به زمین وصل کنیم و به R1تاR7 ولتاژ 3ولت اعمال کنیم کل ستون یک روشن خواهد شد.

این مطلب را از دست ندهید :  بخش سیزدهم آموزش AVR : برنامه نویسی پیشرفته C

اگر بخواهیم روی ماتریس حرف C انگلیسی را بنویسیم چه کاری باید انجام دهیم. برای درک این موضوع ابتدا به شکل زیر با دقت نگاه کنید:

Display On Dot Matrix


نحوه نوشتن روی دات ماتریس

خب اول باید بدانیم که برای اینکه مثلا حرف C روی ماتریس نمایش داده شود کدام یک از خانه های ماتریس باید روشن بشوند.بعد از این ما ال ای دی های هر ستون را جدا می کنیم . یعنی در ستون اول کدام یک از ال ای دی ها روشن هستند و کدام یک از ال ای دی ها خاموش هستند ! فکر کنم تا الان بیشتر تکنیک نوشتن حرف روی ماتریس را متوجه شده اید . خب اگر ما با سرعت زیاد به نحوی که چشم انسان نتواند تشخیص دهد روشن و خاموش کنیم توانسته ایم حرف C را روی ماتریس نمایش دهیم .

با اجرای سریع الگوریتم بالا حرف C روی ماتریس نشان داده می شود.

 


راه اندازی تابلو روان

برای راه اندازی تابلوهای روان نیاز به تعدادی نمایشگر دات ماتریس داریم که در کنار هم قرار گیرند. برای مثال در شکل زیر یک تابلو روان 8 در 64 را مشاهده می کنید. برای راه اندازی آن توسط میکروکنترلر ابتدا همه سطرها نظیر به نظیر به هم متصل شده و سپس به میکرو متصل می شود. همه ستون ها نیز باید به میکرو متصل شود.

Tbrv2

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

بنابراین برای دات ماتریسی که 64 ستون دارد نیاز به یک دیکدر 8 به 64 می باشیم. به جای استفاده از یک دیکدر 8 به 64 میتوان از 9 دیکدر 3 به 8 به صورت شکل زیر استفاده نمود.

این مطلب را از دست ندهید :  بخش هفتم آموزش AVR : نحوه کار با نرم افزارهای Proteus و CodeVision

Tbrv3

حال میخواهیم شکلی را روی تابلو روان شکل فوق نمایش دهیم. باید شکل مورد نظر را رسم و دیتای سطر ها و ستون هایی را که برای نمایش آن مورد نیاز است یک به یک محاسبه و سپس به صورت پشت سر هم نمایش دهیم. برای راحتی کار ابزارهایی موسوم به LCD tools وجود دارند که کدهای دیتای مورد نظر را برای ما آماده می کنند.

 


نحوه ساخت تصاویر متحرک

برای ساخت تصاویر روان از یک ابزار به نام Glcd Tool استفاده می کنیم. این نرم افزار قادر است تا عکس های با فرمت bitmap را دریافت کرده و مطابق با آن خروجی hex برای نمایش روی تابلو روان را می دهد. بنابراین برای نمایش نوشته دلخواه ابتدا توسط یک برنامه نقاشی همانند ابزار paint موجود در ویندوز ، یک تصویر به ابعاد تابلو روان مورد نظر ایجاد می کنیم.

GlcdTool

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

GlcdTool2

بعد از ذخیره تصویر به نرم افزار Glcd tool رفته و تصویررا وارد می کنیم. سپس در قسمت output format تنظیمات زیر را وارد کرده و بعد از آن Convert Vert را می زنیم. کد نهایی تبدیل شده در کنار فایل تصویر bitmap تولید می شود.

GlcdTool3

حال کافی است تا آرایه بدست آمده فوق را در برنامه به جای سطرها قرار داده و ستون ها را یکی یکی روشن و خاموش کنیم. با روشن و خاموش شدن سریع LED ها تصویر مورد نظر عینا به نمایش در می آید. برای حرکت تصویر کافی است بعد از گذشت زمانی مشخص ( مثلا 300 میلی ثانیه ) تصویر را شیفت دهیم.

ابزار GlcdTool و نیز سورس کدویژن و پروتئوس برنامه تابلو روان 8 در 64 را میتوانید از لینک روبرو دریافت کنید. لینک دانلود


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

این مطلب را از دست ندهید :  بخش دوازدهم آموزش AVR : راه اندازی واحد تایمر/کانتر ( 2 )

برای رفع مشکل باید نمایش را روی هر ماتریس به صورت همزمان انجام دهیم یعنی در آن واحد ستون اول تمامی ماتریس ها را روشن و دیتای آنها را نمایش دهیم و سپس ستون دوم همه ماتریس ها و … تا ستون آخر. برای رسیدن به این هدف از یک آی سی شیفت رجیستر به صورت Serial in Parallel Out می توان استفاده نمود. آی سی 74ls595 یک آی سی Shift Register با این ویژگی است که به صورت زیر متصل می شود.

74LS595

شیفت رجیستر 74595 دارای 16 پایه است و از دو بخش تشکیل شده است، بخش ورودی شامل یک شیفت رجیستر معمولی است که اطلاعات را بصورت سریال از پایه 14 دریافت کرده و بصورت 8 خط موازی به قسمت بعدی منتقل میکند. بخش اول دارای دو ورودی و یک خروجی دیگر نیز میباشد. پایه شماره 11 پایه ورودی کلاک است و پایه 10 پایه ریست است. همچنین پایه 9 خروجی سریال شیفت رجیستر است که برای اتصال به شیفترجیستر بعدی مورد نیاز خواهد بود. بخش دوم این آی سی ، در واقع یک لچ 8 بیتی است. که خطوط ورودی آن از طبقه قبل(شیفت رجیستر) می آیند، این طبقه به خروجی شیفت رجیستر نیز متصل است که 8 خط خروجی 74595 از طریق لچ آن تهیه میشود. قاعدتا یک لچ باید پایه ای جهت عمل لچ کردن داشته باشد که این پایه ورودی شماره 12 است و تا زمانی که بر روی این پایه لبه پایین رونده ای اعمال نشود لچ اطلاعات را در خود ذخیره (لچ) نمیکند. از طرفی به جهت اینکه بتوان خروجی را نیز کنترل نمود و در صورت لزوم خروجی قطع و یا وصل نمود پایه شماره 13 که به لچ متصل است در نظر گرفته شده است.

74LS595-

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

برای دانلود سورس کامل این پروژه به همراه گزارش آن در قالب PDF به صفحه زیر مراجعه نمایید.


دانلود بهترین و کاملترین بسته آموزشی میکروکنترلرهای AVR

AmazingAVR


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

33+

کاربرانی که این مطلب را پسندیده اند:

  • avatar
  • avatar
  • avatar
  • avatar
این مطلب را با دوستانتان به اشتراگ بگذارید

دیدگاه (3)

  • barg_xazan8984 پاسخ

    سلام ممنونم از مطالب بسیار ارزنده تون.
    من این پروژه رو تو پروتیئوس رسم کردم ولی هر تغییری تو برنامه میدم کار نمیکنه. میشه بیشتر راهنمایی بفرمایید

    ۰۹/۰۸/۱۳۹۵ در ۱۵:۴۰
    • ادمین الکترو ولت پاسخ

      سلام دوست عزیز برنامه قرار داده شده را دانلود کنید و فایل hex را به پروتئوس اضافه نمایید

      ۱۰/۰۸/۱۳۹۵ در ۰۹:۲۱
  • pouya karimi پاسخ

    خوب

    ۰۲/۰۱/۱۳۹۶ در ۱۴:۱۷

پاسخ دهید

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

2 × سه =