در این پست از سایت اِمیک, یک پروژه بسیار جالب و آموزشی به نام پروژه آردوینو تاس الکترونیکی قرار داده شده است. همانطور که از نام پروژه مشخص است این پروژه یک تاس یا منچ الکترونیکی می باشد که با استفاده از برد آردوینو UNO انجام شده است. این پروژه جنبه آموزشی دارد, همچنین شما می توانید برای بازی و سرگرمی و غیره از این پروژه استفاده کنید. در ادامه در مورد این پروژه بیشتر توضیح خواهم داد. در زیر شماتیک پروژه را مشاهده می کنید:
قبلا نیز همین پروژه را با استفاده از میکروکنترلر AVR در سایت قرار داده بودم که برای مشاهده آن پست می توانید اینجا کلیک کنید.
همانطور که مشاهده می کنید, ما در این پروژه از برد آردوینو UNO استفاده کرده ایم. از یک سون سگمنت تکی کاتد مشترک نیز استفاده کرده ایم که این سون سگمنت به پایه های 0 تا 6 برد آردوینو متصل شده است. نحوه اتصال سون سگمنت به پایه های برد آردوینو در شماتیک بالا کاملاً مشخص شده است. پایه های سون سگمنت از طریق 7 عدد مقاومت 220 اهم به برد آردوینو متصل شده اند. این مقاومت ها برای محدود کردن جریان و جلوگیری از سوختن سون سگمنت می باشند. یک کلید فشاری نیز به پایه 13 برد آردوینو متصل شده است.
عملکرد پروژه به این صورت است که با هر بار فشار دادن کلید S1 عددی بین 1 تا 6 به صورت تصادفی و شانسی روی سون سگمنت نمایش داده می شود. که در واقع عدد تاس انداختن ما را مشخص می کند. کلید S1 باید از نوع فشاری باشد که با هر بار فشار دادن و رها کردن کلید, یک عدد بین 1 تا 6 روی سون سگمنت نمایش داده شود.
تغذیه پروژه بالا را می توانید از خود برد آردوینو بگیرید, به این صورت که برد آردوینو را با استفاده از آداپتور راه اندازی کنید و از پایه های 5V و GND آردوینو برای تغذیه استفاده کنید.
برنامه آردوینو :
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 |
////////// WWW.EMIC.IR ////////// byte seg[6][7] = { //در زیر ما یک ارایه تعریف کرده ایم که شامل معادل باینری اعداد 1 تا 6 برای سون سگمنت کاتد مشترک است// { 0, 1, 1, 0, 0, 0, 0 }, // = 1 { 1, 1, 0, 1, 1, 0, 1 }, // = 2 { 1, 1, 1, 1, 0, 0, 1 }, // = 3 { 0, 1, 1, 0, 0, 1, 1 }, // = 4 { 1, 0, 1, 1, 0, 1, 1 }, // = 5 { 1, 0, 1, 1, 1, 1, 1 }, // = 6 }; int i = 0; //با مقدار اولیه صفر int معرفي يک متغير از نوع// void setup() { //در زیر پین هایی از برد اردوینو که قرار است به سون سگمنت متصل شوند را خروجی کرده ایم// pinMode(0, OUTPUT); pinMode(1, OUTPUT); pinMode(2, OUTPUT); pinMode(3, OUTPUT); pinMode(4, OUTPUT); pinMode(5, OUTPUT); pinMode(6, OUTPUT); pinMode(13, INPUT_PULLUP); //ورودی کردن پین 13 برد اردوینو برای اتصال به کلید// } //در زیر یک تابع برای نمایش اعداد روی سون سگمنت تعریف شده است. با فراخوانی این تابع در برنامه اصلی می توانیم عدد مورد نظر را روی سون سگمنت نمایش دهیم// void sevenseg(int n ) { for (int a = 0; a < 7; a++) { digitalWrite(a, seg[n][a]); } } void loop() { if (digitalRead(13) == 0) //می شویم if در صورتی که پین 13 برد اردوینو که کليد به ان متصل است برابر صفر شد يا در واقع کليد فشار داده شد وارد اين شرط// { if (i == 6) i = 0; //برابر 6 شد دوباره ان را 0 می کند i دستور روبرو در صورتي که متغير// sevenseg(i); //عددی بین 1 تا 6 را روی سون سگمنت نمایش دهد i تابعی که در بالا تعریف کرده ایم را فراخوانی می کنیم تا با توجه به مقدار متغیر// delay(10); //ايجاد تاخير// i++; //یکی اضافه می شود loop با هر بار تکرار حلقه i مقدار متغیر// } } |
توضیحات قسمت های مهم برنامه نوشته شده, اگر سوالی داشتید می توانید در قسمت نظرات مطرح کنید. از انتهای مطلب نیز می توانید فایل های آردوینو و شبیه سازی پروتئوس برای این پروژه را دانلود کنید.
پسورد فایل زیپ : www.emic.ir
نظر یادتون نره…
لطفاً پروژه های رباتیک با آردوینو رو هم قرار بدید ممنون