ساخت رقص نور
در این بخش تیم الکترونیک و برنامه نویسی الکترونیک ۹۸, اقدام به طراحی و انتشار پروژه ای جالب و جذاب با عنوان, ساخت رقص نور با افکت های گوناگون توسط میکروکنترلر AVR, برای شما علاقه مندان به پروژه های میکروکنترلر AVR کرده است. اگر کمی با میکروکنترلرهای AVR آشنا باشید می دانید که ساخت یک رقص نور با میکروکنترلرهای AVR کار چندان مشکلی نیست و شما می توانید به راحتی با چند خط برنامه نویسی یک رقص نور زیبا بسازید.
نقشه شماتیک پروژه
شرح عملکرد پروژه
بی شک تا به حال انواع رقص نورها با افکت ها و شکل های متفاوت را در سطح شهر و یا مکان های گوناگون دیده اید. بعضی از رقص نورها آنقدر دارای افکت های گوناگون و طولانی هستند که گاه شما را تا چند دقیقه محو تماشای خود می کنند! پس می توانیم نتیجه بگیریم شرط اول ساخت یک رقص نور زیبا و جذاب طراحی افکت های گوناگون و خلاقانه است.
می دانیم که اگر بخواهیم در ساخت یک رقص نور ساده با چند افکت ابتدائی از روش برنامه نویسی اولیه (مبتدی) استفاده کنیم در نهایت به یک برنامه طولانی میرسیم، که این امر باعث افزایش حجم برنامه و پر شدن حافظه میکروکنترلر AVR می شود. در نتیجه ما نمی توانیم افکت های بیشتری در برنامه میکروکنترلر AVR تعریف کنیم. برای حل این مشکل با ما همراه باشید تا با استفاده از یک دستور کاربردی و چند خط برنامه، یک روش ساده اما کاربردی برای ساخت رقص نورهایی با افکت های بسیار زیاد و گوناگون بسازیم.
ساخت رقص نور با استفاده از دستور Lookup
یکی از روش های برنامه نویسی که از آن برای ساخت رقص نورهای زیبا و تابلو روان ها استفاده می شود، استفاده از دستور Lookup می باشد. این دستور کاربردهای بسیار زیادی در برنامه نویسی میکروکنترلرهای AVR دارد. توسط دستور Lookup می توان یک جدول دیتا در برنامه تعریف کرد که به کمک متغیر این دستور دیتای مرتبط با مقدار متغیر را از جدول یافت و آن را بر روی یکی از پورت های میکروکنترلر AVR و یا یک متغیر دیگر ریخت. برای درک راحت عملکرد این دستور به مثال زیر توجه کنید:
1 2 3 4 5 6 |
Dim Blink1 As Byte blink1=2 Portb = Lookup(blink1 , Table) Table: Data &B11111111 , &B11100111 , &B11000111 |
در برنامه بالا ابتدا یک متغیر به نام Blink1 از نوع بایت تعریف کرده ایم و سپس مقدار آنرا برابر 2 قرار داده ایم، بعد از آن توسط دستور Lookup به میکروکنترلر AVR دستور می دهیم تا مقدار متغیر Blink1 که در اینجا عدد 2 می باشد را از جدول دیتا به نام Table استخراج کند و دیتای استخراج شده را که مقدار باینری &B11100111 می باشد بر روی پورت B میکروکنترلر AVR بریزد، به این ترتیب زمانی که ما عدد 2 را از جدول دیتا استخراج می کنیم وضعیت پایه های پورت B به شکل زیر خواهد شد.
1 2 |
Portb.0 = 1 : Portb.1 = 1 : Portb.2 = 1 : Portb.3 = 0 : Portb.4 = 0 : Portb.5 = 1 : Portb.6 = 1 : Portb.7 = 1 |
با توجه به توضیحات داده شده به این ترتیب با استفاده از جدول Lookup در برنامه ساخت رقص نور با میکروکنترلر ATmega8 تنها لازم است در هر سیکل کاری وضعیت روشن و خاموش بودن هر LED متصل به پورت میکروکنترلر AVR را به صورت باینری مشخص کنیم.
برای درک بهتر این پروژه برنامه ای برای یک رقص نور با هشت افکت ساده به زبان بیسک با نرم افزار Bascom AVR نوشته ایم، که شما دوستان عزیز می توانید با استفاده از این برنامه و گسترش آن رقص نورهای فوق العاده زیبا با افکت های زیاد و جذاب توسط میکروکنترلرهای AVR طراحی کنید. همچنین فایل شبیه ساز این پروژه نیز که با نرم افزار Proteus 8 Professional طراحی شده است پیوست فایل پروژه جهت دانلود قرار داده شده است، که می تواند شما را در یادگیری هر چه بهتر مدار و نحوه عملکرد آن یاری نماید.
برنامه میکروکنترلر به زبان بیسیک BASIC در نرم افزار BASCOM-AVR
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
$regfile = "M8def.dat" $crystal = 1000000 '-------------------------- Config Portb = Output Config Portd = Input '-------------------------- Dim Blink1 As Byte '-------------------------- Bitwait Pind.0 , Set '-------- Main: For Blink1 = 0 To 7 Portb = Lookup(blink1 , Table) Waitms 300 Next Goto Main '--------------- Table: Data &B11111111 , &B11100111 , &B11000111 , &B10000011 , &B11000001 , &B10000001 , &B11111111 , &B00000000 |