در این پست از سایت اِمیک, یک پروژه نسبتاً ساده ولی بسیار جالب به نام تشخیص نفر اول در فشار دادن دکمه یا کلید قرار داده شده است. این پروژه با استفاده از برد آردوینو انجام شده است. پس از ساخت این پروژه می توانید از ان در بازی و مسابقه برای فهمیدن اینکه چه کسی ابتدا دکمه را فشار داده است, استفاده کنید. به عبارتی دیگر این پروژه دارای 4 عدد دکمه یا کلید فشاری است (که قابل افزایش نیز می باشند) و هر کدام از شرکت کننده ها که زودتر دکمه خود را فشار داد, چراغ ان شرکت کننده روشن شده و در واقع مشخص می شود که او زودتر دکمه خود را فشار داده است. در ادامه در مورد این پروژه بیشتر توضیح خواهم داد. در زیر شماتیک این پروژه را مشاهده می کنید.
قبلا نیز همین پروژه را با استفاده از میکروکنترلر AVR در سایت قرار داده بودم که برای مشاهده ان پست می توانید اینجا کلیک کنید.
همانطور که مشاهده می کنید, ما در این پروژه از برد اردوینو UNO استفاده کرده ایم. عملکرد این پروژه به این صورت است که ما دارای چهار عدد کلید فشاری به نام های BUTTON1 تا BUTTON4 هستیم که به پین های A0 تا A3 برد اردوینو متصل شده اند. همچنین دارای چهار عدد چراغ (در این پروژه از LED استفاده شده است) به نام های LED1 تا LED4 می باشیم. این پروژه دارای یک بازر نیز می باشد.
با فشار دادن هر کدام از کلیدها, چراغ یا LED مربوط به ان کلید روشن می شود و دیگر کلیدها غیرفعال می شوند و در صورت فشار دادن دیگر کلیدها هیچ اتفاقی نمی افتد. همچنین با فشار دادن کلید, بازر نیز یک صدای زنگ تولید می کند که بیانگر فشار داده شدن یکی از کلیدها می باشد.
از این پروژه می توان در مسابقات و بازی ها استفاده کرد به این صورت که هر کدام از شرکت کننده ها که زودتر کلید را فشار داد چراغ ان شرکت کننده روشن می شود و کلیدهای دیگر شرکت کننده ها غیرفعال می شود.
این پروژه دارای یک کلید فشاری به نام RESET نیز می باشد که با فشار دادن ان پروژه دوباره به حالت اولیه بر می گردد و شرکت کننده ها می توانند دوباره اقدام به فشار دادن دکمه های خود کنند. کلید RESET به پین A4 برد اردوینو متصل شده است.
ما در این پروژه از LED به عنوان چراغ استفاده کرده ایم. همانطور که مشاهده می کنید LED ها از طریق چهار عدد مقاومت 270 اهم به پین های 10 تا 13 برد اردوینو UNO متصل شده اند. این مقاومت ها برای محدود کردن جریان و جلوگیری از سوختن LED ها می باشند. بازر نیز از طریق یک مدار راه انداز شامل ترانزیستور Q1 و مقاومت R5 به پین 9 برد اردوینو متصل شده است. همانطور که می دانید جریان خروجی پین های برد اردوینو محدود است به همین دلیل از مدار راه انداز برای اتصال بازر به برد اردوینو استفاده شده است.
برنامه اردوینو :
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 |
//////// WWW.EMIC.IR //////// int i; //تعریف متغیر برای استفاده در برزنامه// void setup() { pinMode(A0, INPUT_PULLUP); //از برد اردوینو ورودی شده اند A4 تا A0 پین های// pinMode(A1, INPUT_PULLUP); pinMode(A2, INPUT_PULLUP); pinMode(A3, INPUT_PULLUP); pinMode(A4, INPUT_PULLUP); pinMode(9, OUTPUT); //پین های 9 تا 13 از برد اردوینو خروجی شده اند// pinMode(10, OUTPUT); pinMode(11, OUTPUT); pinMode(12, OUTPUT); pinMode(13, OUTPUT); } void loop() { digitalWrite(9, 0); //در ابتداي برنامه پین های 9 تا 13 برد اردوینو را صفر می کنیم// digitalWrite(10, 0); digitalWrite(11, 0); digitalWrite(12, 0); digitalWrite(13, 0); if (digitalRead(A0) == 0) { //روبرو می شویم if برد اردوینو فشار داده شد وارد شرط A0 در صورتي که کليد يا شستي متصل به پين// digitalWrite(13, 1); //به ان متصل است یک می شود LED1 پین 13 برد اردوینو که// for(i=1;i<=10;i++){digitalWrite(9, 1); delay(100); digitalWrite(9, 0); delay(50);} //دستور روبرو بازر را براي مدت 1.5 ثانيه به صورت صداي زنگ فعال مي کند// while(digitalRead(A4)); //روبرو اجراي برنامه را متوقف مي کند تا زماني که شستي ريست فشار داده شود while حلقه// } //بالا می باشد if زير براي سه شستي ديگر مي باشند و توضيحات انها مانند شرط if سه شرط// if (digitalRead(A1) == 0) { digitalWrite(12, 1); for(i=1;i<=10;i++){digitalWrite(9, 1); delay(100); digitalWrite(9, 0); delay(50);} while(digitalRead(A4)); } if (digitalRead(A2) == 0) { digitalWrite(11, 1); for(i=1;i<=10;i++){digitalWrite(9, 1); delay(100); digitalWrite(9, 0); delay(50);} while(digitalRead(A4)); } if (digitalRead(A3) == 0) { digitalWrite(10, 1); for(i=1;i<=10;i++){digitalWrite(9, 1); delay(100); digitalWrite(9, 0); delay(50);} while(digitalRead(A4)); } } |
توضیحات قسمت های مهم برنامه نوشته شده, اگر سوالی داشتید می توانید در قسمت نظرات مطرح کنید. از انتهای مطلب نیز می توانید فایل های اردوینو و شبیه سازی پروتئوس برای این پروژه را دانلود کنید.
پسورد فایل زیپ : www.emic.ir
نظر یادتون نره…