در این پست از سایت اِمیک, یک پروژه جالب به نام رقص نور 3 حالته با استفاده از برد اردوینو UNO قرار داده شده است. در این پروژه از 8 عدد LED برای نمایش حالات مختلف رقص نور استفاده شده است. همانطور که گفته شد این رقص نور 3 حالته می باشد بنابراین دارای سه کلید فشاری برای انتخاب حالت رقص نور می باشد. در ادامه شماتیک این پروژه را مشاهده می کنید :
(برای دیدن تصویر در اندازه بزرگتر ان را ذخیره کنید)
پروژه رقص نور سه حالته با آردوینو UNO :
همانطور که در شماتیک بالا مشاهده می کنید, قطعات اصلی پروژه شامل برد اردوینو یونو (UNO), هشت عدد LED و سه کلید فشاری به همراه تعدادی مقاومت می باشد که در ادمه درباره انها بیشتر توضیح داده می شود.
عملکرد پروژه به این صورت می باشد که با فشار دادن هر یک از 3 کلید KEY1 تا KEY3 یک حالت رقص نور روی LEDها اجرا می شود. مقاومت های R1 تا R8 برای کاهش ولتاژ خروجی اردوینو به منظور اتصال به ال ای دی ها استفاده شده اند و دارای مقدار 330 اهم می باشند.
مقاومت های R9 تا R11 مقاومت های پول اپ می باشند و به این دلیل استفاده شده اند تا در زمانی که کلیدی فشار داده نشده است, پین های A0 تا A2 برد اردوینو که ورودی هستند را یک منطقی کنند. در ادامه برنامه این پروژه را به همراه توضیحات کامل مشاهده می کنید.
برنامه :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 |
////////// WWW.EMIC.IR ////////// #define key1 digitalRead(A0) //key1 اردوینو با A0 برابر قرار دادن پین// #define key2 digitalRead(A1) //key2 اردوینو با A1 برابر قرار دادن پین// #define key3 digitalRead(A2) //key3 اردوینو با A2 برابر قرار دادن پین// void setup() { pinMode(A0, INPUT); //از خط 8 تا 10 پینهایی از برد اردوینو که به کلیدها متصل می شود را ورودی کرده ایم// pinMode(A1, INPUT); pinMode(A2, INPUT); pinMode(0, OUTPUT); //ها متصل شوند را خروجی کرده ایم led از خط 11 تا 18 پین هایی از برد اردوینو که باید به// pinMode(1, OUTPUT); pinMode(2, OUTPUT); pinMode(3, OUTPUT); pinMode(4, OUTPUT); pinMode(5, OUTPUT); pinMode(6, OUTPUT); pinMode(7, OUTPUT); } void loop() { int i, a; //int از نوع a و i تعریف دو متغیر// //در زیر ما سه ارایه دوبعدی تعریف کرده ایم که شامل حالات مختلف رقص نور می باشند. با تغییر مقادیر زیر می توانید حالات جدیدی از رقص نور ایجاد کنید// int dancinglight1[ 8 ][ 8 ] = { { 0, 0, 0, 0, 0, 0, 0, 1 }, { 0, 0, 0, 0, 0, 0, 1, 0 }, { 0, 0, 0, 0, 0, 1, 0, 0 }, { 0, 0, 0, 0, 1, 0, 0, 0 }, { 0, 0, 0, 1, 0, 0, 0, 0 }, { 0, 0, 1, 0, 0, 0, 0, 0 }, { 0, 1, 0, 0, 0, 0, 0, 0 }, { 1, 0, 0, 0, 0, 0, 0, 0 } }; int dancinglight2[ 4 ][ 8 ] = { { 0, 0, 0, 1, 1, 0, 0, 0 }, { 0, 0, 1, 0, 0, 1, 0, 0 }, { 0, 1, 0, 0, 0, 0, 1, 0 }, { 1, 0, 0, 0, 0, 0, 0, 1 } }; int dancinglight3[ 2 ][ 8 ] = { { 1, 0, 1, 0, 1, 0, 1, 0 }, { 0, 1, 0, 1, 0, 1, 0, 1 } }; for (i = 0; i <= 7; i++) { //ها را خاموش می کندled دستور روبرو در حالتی که هیچ کدام از کلیدها زده نشده تمام// digitalWrite(i, 0); } //اجرا می شود dancinglight1 استفاده شده حالت های رقص نور موجود در ارایه for زیر می شویم و با توجه به حلقه های if در صورتی که کلید 1 زده شد وارد شرط// if (key1 == 0) { // for (a = 0; (a <= 7) & (key2 == 1) & (key3 == 1); a++) { for (i = 0; i <= 7 ; i++) { digitalWrite(i, dancinglight1[a][i]); } delay(200); } } //اجرا می شود dancinglight2 استفاده شده حالت های رقص نور موجود در ارایه for زیر می شویم و با توجه به حلقه های if در صورتی که کلید 2 زده شد وارد شرط// if (key2 == 0) { for (a = 0; (a <= 3) & (key1 == 1) & (key3 == 1); a++) { for (i = 0; i <= 7 ; i++) { digitalWrite(i, dancinglight2[a][i]); } delay(300); } } //اجرا می شود dancinglight3 استفاده شده حالت های رقص نور موجود در ارایه for زیر می شویم و با توجه به حلقه های if در صورتی که کلید 3 زده شد وارد شرط// if (key3 == 0) { for (a = 0; (a <= 1) & (key1 == 1) & (key2 == 1); a++) { for (i = 0; i <= 7; i++) { digitalWrite(i, dancinglight3[a][i]); } delay(300); } } } |
توضیحات کامل برنامه نوشته شده, همانطور که مشاهده می کنید ما حالات مختلف رقص نور را درون سه ارایه 2 بعدی قرار داده ایم که شما به راحتی می توانید با تغییر این مقادیر حالات جدیدی از رقص نور ایجاد کنید, اگر سوالی داشتید می تونید در قسمت نظرات مطرح کنید. اگر با برنامه نویسی اردوینو اشنا نیستید مطالب زیر را مطالعه کنید :
- برای اشنایی با دستورات مهم برنامه نویسی اردوینو اینجا کلیک کنید
- برای اشنایی با نحوه پروگرام کردن برد اردوینو (ریختن برنامه روی برد) اینجا کلیک کنید
کلیپ تست عملی پروژه :
پسورد فایل زیپ : www.emic.ir
نظر یادتون نره…
با سلام و تشکر از جنابعالی من کدها تو برنامه کپی کردم اما با یک خطا مواجه شدم می توانید راهنمایی و کمکم کنید.ممنون و سپاسگزارم
پیغام خطا:
‘key1’ was not declared in this scope
سلام چه طوری میشه این سه حالت یه صورت خودکار اجرا بشن؟
ممنون میشم اگر جواب بدید
دقیقا منم بدون کلید میخوام که خودش انجام بشه
سلام عالی بود ساختم فقط led نارنجی گذاشتم زیبا تر شد و بسیار زیبا بود و قشنگ خوشم اومد
سلام این فایل شبیه ساز هم داره؟
سلام, بله از انتهای مطلب می توانید دانلود کنید
ببخشید این پروژه فایل شبیه ساز هم داره؟
سلام
زبان این خط کد چی هستش و با چه برنامه ای میشه رانش کرد؟
سلام, زبان C و نرم افزار آردوینو
سلام خسته نباشید.برنامه رقص نور خطا میدهد.مشکل چیست؟error compilling for board arduinouno
سلام
اگر برد آردوینو را قبلا پروگرام کرده باشیم یعنی قبلا روش برنامه ای آپلود کرده باشیم و حالا بخواهیم دوباره روش برنامه ای آپلود کنیم آیا باید دکمه ریست رابفشاریم و سپس آپلود کنیم یا نه همینطور میشود روش برنامه دیگری آپلود کرد
سلام, نه نیازی نیست دکمه ریست را فشار دهید