مقدمه
تابلوهای روان ( LED Display Panel ) که کاربرد ویژه در کارهای نمایشی و تبلیغاتی دارند ، در انواع مختلف تک رنگ و چند رنگ و با ابعاد مختلف در مغازه ها ، پاساژها ، فروشگاه ها ، بانک ها ، چهار راه ها و … دیده می شود. در این آموزش میخواهیم نحوه ساخت و برنامه نویسی مدل های کوچک و تک رنگ آن ها را آموزش دهیم.
تابلو روان چیست ؟
در واقع یک تابلوي نمایشگر دیجیتالی، متن مورد نظر خود را از طریق تجهیزات ورودي همچون کیبورد و یا پورت سریال دریافت میکند.و این اطلاعات را در اختیار پردازنده قرار میدهد. سپس پردازنده پس از آنالیز اطلاعات آن را در حافظه تابلو ذخیره نموده. علاوه بر آن حافظه موجود در تابلو میتواند کدهاي برنامه را در خود نگهداري نماید. از طرفی پردازنده با توجه به اطلاعات ذخیره شده، سیگنالهاي لازم را جهت نمایش تولید کرده و در اختیار درایورها قرار میدهد. با توجه به اینکه نحوه چیدمان LED ها در نمایشگر به صورت ماتریسی می باشد، لذا دو دسته درایور براي راه اندازي ماتریس نیاز است که شامل داریورهاي سطر و داریورهاي ستون مییاشند. این درایورها با توجه به فرامین دریافتی از سوي پردازنده، با روشن و خاموش نگه داشتن LED های موجود در ماتریس ، باعث به نمایش در آمدن مطالب ( متن و یا تصویر ) بر روي ماتریس خواهند شد.
نمایشگرهای دات ماتریس ( Dot Matrix )
نمایشگرهای دات ماتریکس آرایه ای از LED ها هستند که در کنار هم قرار گرفته و دارای ابعاد مشخصی می باشند. در شکل زیر یک آرایه دات ماتریکس 7*5 را به همراه مدار داخلی مشاهده می کنید.
در شکل بالا 7 ردیف و 5 ستون داریم که همانطور که می بینیم در هر ردیف آند همه ال ای دی ها به هم وصل هستن و در هر ستون ها هم کاتد ها بهم وصل هستن این روش سیم کشی قطعات که در ال ای دی ها و کی پدها استفاده می شود را اتصال ماتریسی گویند.
اگر در این دات ماتریکس به R1 ولتاژ 3 ولت(متناسب با ولتاژ کار ال ای دی ها) اعمال کنیم و C1 را به زمین وصل کنیم LED بالا سمت چپ روشن خواهد شد. اگرC1,C2,C3,C4,C5 را به زمین وصل کنیم کل ال ای دی های ردیف بالا روشن خواهد شد. برعکس این موضوع برای ستون ها هم صادق است یعنی اگر به ستون اول را به زمین وصل کنیم و به R1تاR7 ولتاژ 3ولت اعمال کنیم کل ستون یک روشن خواهد شد.
اگر بخواهیم روی ماتریس حرف C انگلیسی را بنویسیم چه کاری باید انجام دهیم. برای درک این موضوع ابتدا به شکل زیر با دقت نگاه کنید:
نحوه نوشتن روی دات ماتریس
خب اول باید بدانیم که برای اینکه مثلا حرف C روی ماتریس نمایش داده شود کدام یک از خانه های ماتریس باید روشن بشوند.بعد از این ما ال ای دی های هر ستون را جدا می کنیم . یعنی در ستون اول کدام یک از ال ای دی ها روشن هستند و کدام یک از ال ای دی ها خاموش هستند ! فکر کنم تا الان بیشتر تکنیک نوشتن حرف روی ماتریس را متوجه شده اید . خب اگر ما با سرعت زیاد به نحوی که چشم انسان نتواند تشخیص دهد روشن و خاموش کنیم توانسته ایم حرف C را روی ماتریس نمایش دهیم .
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
Step 1: In Raw = 0111110 In Column= 01111 Step 2: In Raw = 1000001 In Column= 10111 Step 3: In Raw = 1000001 In Column= 11011 Step 4: In Raw = 1000001 In Column= 11101 Step 5: In Raw = 0100010 In Column= 11110 |
با اجرای سریع الگوریتم بالا حرف C روی ماتریس نشان داده می شود.
راه اندازی تابلو روان
برای راه اندازی تابلوهای روان نیاز به تعدادی نمایشگر دات ماتریس داریم که در کنار هم قرار گیرند. برای مثال در شکل زیر یک تابلو روان 8 در 64 را مشاهده می کنید. برای راه اندازی آن توسط میکروکنترلر ابتدا همه سطرها نظیر به نظیر به هم متصل شده و سپس به میکرو متصل می شود. همه ستون ها نیز باید به میکرو متصل شود.
همانطور که در شکل فوق نیز مشاهده می کنید تعداد سطرها ثابت اما تعداد ستون ها افزایش قابل توجهی می یابد. با توجه به پورت های میکروکنترلر حداکثر تعداد ستون هایی که میتوان به میکرو متصل کرد 24 می باشد. اما برای تابلو های روانی که بیشتر از 24 ستون دارند نیاز به دیکدر برای آنها داریم. وجود دیکدر باعث می شود که پایه های کمتری از میکروکنترلر درگیر شود.
بنابراین برای دات ماتریسی که 64 ستون دارد نیاز به یک دیکدر 8 به 64 می باشیم. به جای استفاده از یک دیکدر 8 به 64 میتوان از 9 دیکدر 3 به 8 به صورت شکل زیر استفاده نمود.
حال میخواهیم شکلی را روی تابلو روان شکل فوق نمایش دهیم. باید شکل مورد نظر را رسم و دیتای سطر ها و ستون هایی را که برای نمایش آن مورد نیاز است یک به یک محاسبه و سپس به صورت پشت سر هم نمایش دهیم. برای راحتی کار ابزارهایی موسوم به LCD tools وجود دارند که کدهای دیتای مورد نظر را برای ما آماده می کنند.
نحوه ساخت تصاویر متحرک
برای ساخت تصاویر روان از یک ابزار به نام Glcd Tool استفاده می کنیم. این نرم افزار قادر است تا عکس های با فرمت bitmap را دریافت کرده و مطابق با آن خروجی hex برای نمایش روی تابلو روان را می دهد. بنابراین برای نمایش نوشته دلخواه ابتدا توسط یک برنامه نقاشی همانند ابزار paint موجود در ویندوز ، یک تصویر به ابعاد تابلو روان مورد نظر ایجاد می کنیم.
سپس هر تصویر دلخواهی که می خواهیم روی تابلو نمایش داده شود را با استفاده از ابزار های موجود روی محدوده ی مورد نظر رسم می کنیم و بعد از آن به صورت زیر تصویر را ذخیره می کنیم.
بعد از ذخیره تصویر به نرم افزار Glcd tool رفته و تصویررا وارد می کنیم. سپس در قسمت output format تنظیمات زیر را وارد کرده و بعد از آن Convert Vert را می زنیم. کد نهایی تبدیل شده در کنار فایل تصویر bitmap تولید می شود.
حال کافی است تا آرایه بدست آمده فوق را در برنامه به جای سطرها قرار داده و ستون ها را یکی یکی روشن و خاموش کنیم. با روشن و خاموش شدن سریع LED ها تصویر مورد نظر عینا به نمایش در می آید. برای حرکت تصویر کافی است بعد از گذشت زمانی مشخص ( مثلا 300 میلی ثانیه ) تصویر را شیفت دهیم.
ابزار GlcdTool و نیز سورس کدویژن و پروتئوس برنامه تابلو روان 8 در 64 را میتوانید از لینک روبرو دریافت کنید. >> لینک دانلود <<
همانطور که در هنگام شبیه سازی تابلو روان فوق در نرم افزار پروتئوس مشاهده می شود ، در نمایش تصویر پرش وجود دارد. این پرش به علت زیاد بودن ستون ها و طولانی شدن زمان یک بودن ستون ها است.
برای رفع مشکل باید نمایش را روی هر ماتریس به صورت همزمان انجام دهیم یعنی در آن واحد ستون اول تمامی ماتریس ها را روشن و دیتای آنها را نمایش دهیم و سپس ستون دوم همه ماتریس ها و … تا ستون آخر. برای رسیدن به این هدف از یک آی سی شیفت رجیستر به صورت Serial in Parallel Out می توان استفاده نمود. آی سی 74ls595 یک آی سی Shift Register با این ویژگی است که به صورت زیر متصل می شود.
شیفت رجیستر 74595 دارای 16 پایه است و از دو بخش تشکیل شده است، بخش ورودی شامل یک شیفت رجیستر معمولی است که اطلاعات را بصورت سریال از پایه 14 دریافت کرده و بصورت 8 خط موازی به قسمت بعدی منتقل میکند. بخش اول دارای دو ورودی و یک خروجی دیگر نیز میباشد. پایه شماره 11 پایه ورودی کلاک است و پایه 10 پایه ریست است. همچنین پایه 9 خروجی سریال شیفت رجیستر است که برای اتصال به شیفترجیستر بعدی مورد نیاز خواهد بود. بخش دوم این آی سی ، در واقع یک لچ 8 بیتی است. که خطوط ورودی آن از طبقه قبل(شیفت رجیستر) می آیند، این طبقه به خروجی شیفت رجیستر نیز متصل است که 8 خط خروجی 74595 از طریق لچ آن تهیه میشود. قاعدتا یک لچ باید پایه ای جهت عمل لچ کردن داشته باشد که این پایه ورودی شماره 12 است و تا زمانی که بر روی این پایه لبه پایین رونده ای اعمال نشود لچ اطلاعات را در خود ذخیره (لچ) نمیکند. از طرفی به جهت اینکه بتوان خروجی را نیز کنترل نمود و در صورت لزوم خروجی قطع و یا وصل نمود پایه شماره 13 که به لچ متصل است در نظر گرفته شده است.
یکی از بزرگترین مزیتهای این شیفت رجیستر داشتن همین بخش لچ آن است که در بحث تابلوروان امکانات خوبی را برای شما فراهم میکند.
برای دانلود سورس کامل این پروژه به همراه گزارش آن در قالب PDF به صفحه زیر مراجعه نمایید.
دانلود بهترین و کاملترین بسته آموزشی میکروکنترلرهای AVR
در صورتی که این مطلب مورد پسندتان واقع شد لایک و اشتراک گذاری فراموش نشود.
دیدگاه (10)
سلام ممنونم از مطالب بسیار ارزنده تون.
من این پروژه رو تو پروتیئوس رسم کردم ولی هر تغییری تو برنامه میدم کار نمیکنه. میشه بیشتر راهنمایی بفرمایید
سلام دوست عزیز برنامه قرار داده شده را دانلود کنید و فایل hex را به پروتئوس اضافه نمایید
خوب
مثل همیشه عالی ممنون
سلام بین هر استپ چقدر فاصله باشه خوبه؟
سلام بین 20 تا 50 میلی ثانیه
سلام . ممنون از سایت خوب شما . ممکنه که نحوه اتصال atmega 32 به پین هدر 16 تایی بلوک led 16*32 رو توضیح بدید . ممنون
برای ابعاد 16در 32چه تغییراتی رو باید اعمال کنیم؟
با سلام و خسته نباشید ببخشید آقای مهندس آموزش کامل تابلو روان با شیفت ریجستر را میخواستم گفتین پایین صفحه دانلود کنید چیزی در این مورد پیدا نکردم اگه امکان داره راهنمای بفرمایید ، ممنون
سلام دوست عزیز توضیحات همین هایی است که داده شده صرفا جهت دانلود سورس پروژه بایستی بسته جامع آموزش AVR را از فروشگاه الکترو ولت تهیه نمایید