در این مقاله با نحوه ایجاد یکی دیگر از مهم ترین افکتهای موجود بر روی تابلو روان آشنا خواهیم شد. افکت حرکت به سمت راست در تابلو روان.
شما در مقاله قبل با حرکت به سمت چپ آشنا شدید و دیدید که چگونه با خواندن اطلاعات از یک سمت جدول گلایف و ادامه دادن این خواندن پلهای توانستیم بر روی تابلو حرکت ایجاد کنیم. حال برای ایجاد حرکت به سمت راست بجای خواندن اطلاعات از ابتدای جدول، این بار اطلاعات را از انتها به سمت ابتدای جدول خوانده و نمایش میدهیم. در نتیجه در تابلو اینگونه بنظر میرسد که متن و یا شکل ما به سمت راست حرکت میکند. زیرا در این حالت ابتدا ما بخش های انتهایی متن و یا تصویر موجود در جدول را میبینیم و سپس به آهستگی باقی قسمت ها تا اینکه به ابتدای متن و یا تصویر میرسیم.
برای توضیح بیشتر فرض کنید شما یک قاب کوچک در دست دارید و یک تصویر ثابت هم زیر این قاب قرار دارد. حال برای نمایش این تصویر به شکلی که تصویر از سمت چپ وارد شود و از سمت راست خارج شود، بدون اینکه تصویر را حرکت دهید و فقط با حرکت قاب به طرفین چه میکنید؟ مسلماً خواهید گفت که قاب را بر روی تصویر از سمت راست به چپ حرکت میدهیم. بله حق با شماست، در این برنامه هم ما دقیقا اینکار را انجام میدهیم ولی در اینجا بجای آن تصویر جدول گلایف را داریم، قاب ما همان ماتریس LED است و حرکت قاب بر روی تصویر همان نحوه خواندن اطلاعات و نمایش بر بروی ماتریس LED است.
من در این برنامه در جدول گلایف تصویر یک فلش به سمت راست را درست کردم که بعد از اجرای برنامه این فلش از سمت چپ وارد شده و از سمت راست خارج میشود. به فیلم زیر نگاه کنید.
البته همانطور که در فیلم هم مشاهده میکنید من جهت بهتر تهیه شدن فیلم یک تکه کاغذ کالک بر روی ماتریس LED قرار دادم.
با توجه به توضیحات فوق متوجه شدید که این برنامه بسیار شبیه برنامه قبلی است و فقط در قسمت های کمی با آن تفاوت دارد. ما در این برنامه از یک متغییر کمکی دیگری به نام R استفاده کردیم که این متغییر بر خلاف S که از 0 تا 9 شمارش میکرد باید از 9 به 0 شمارش کند( چون ما اینبار از انتهای جدول به ابتدای آن حرکت میکنیم ) که جهت ایجاد آن متغییر S را از 9 کم کردیم. و در محاسبه متغییر Index بجای متغییر S از R استفاده شده است. به برنامه زیر دقت کنید.
For S = 0 To 9
R = 9 - S
For Refresh = 1 To 10
Scan = &B00000001
For Col = 0 To 4
Index = R + Col
Portb = Lookup(Index , Gelayof)
Portd = Scan
Waitus 250
Rotate Scan , Left
Portd = &H00
Next Col
Next Refresh
Next S
بدین دلیل که اینبار در محاسبه Index از متغییر R استفاده کردیم لذا ابتدا بر روی ماتریس LED اطلاعات انتهای جدول به نمایش در میآید و در هر بار اجرای دستورات حلقه یک مرحله به ابتدای جدول نزدیک میشویم تا در آخرین با اجرای حلقه اطلاعات ابتدای جدول به نمایش در میآید.
متن کامل برنامه حرکت به سمت راست در تابلو روان با جاروب ستونی :
'*********************************************
'* This Program Writing By : Hossein Lachini *
'* Scroll to Right on the LED Signe Board *
'* For to get more details visit : *
'* www.HLachini.com *
'* Contact to me by : eLachini@Gmail.com *
'*********************************************
$regfile = "m8def.dat"
$crystal = 8000000
Config Portb = Output
Config Portd = Output
Dim Col As Byte
Dim Scan As Byte
Dim Refresh As Byte
Dim Index As Byte
Dim S As Byte
Dim R As Byte
Do
For S = 0 To 9
R = 9 - S
For Refresh = 1 To 10
Scan = &B00000001
For Col = 0 To 4
Index = R + Col
Portb = Lookup(Index , Gelayof)
Portd = Scan
Waitus 250
Rotate Scan , Left
Portd = &H00
Next Col
Next Refresh
Next S
Loop
End 'end program
Gelayof:
Data &B11111111
Data &B11111111
Data &B11111111
Data &B11111111
Data &B11111111
Data &B11110111
Data &B11110111
Data &B11010101
Data &B11100011
Data &B11110111
Data &B11111111
Data &B11111111
Data &B11111111
Data &B11111111
Data &B11111111