در این پست از سایت اِمیک, پروژه آردوینو روشن شدن اتوماتیک چراغ های خیابان با تشخیص حرکت خودرو قرار داده شده است. این پروژه را ما با استفاده از برد اردوینو یونو (UNO) انجام داده ایم, البته شما می توانید از دیگر بردهای اردوینو نیز استفاده کنید.
عملکرد این پروژه به این صورت است که با عبور خودرو از جلوی سنسورهای مادون قرمز, حرکت خودرو تشخیص داده شده و چراغ های خیابان یکی پس از دیگری با عبور خودرو روشن می شوند تا مسیر را برای حرکت اتومبیل روشن کنند. با رد شدن خودرو از جلوی هر چراغ و رسیدن به چراغ بعدی, چراغ های قبلی در صورتی که خودرویی از جلوی انها عبور نکند خاموش می شوند. همچنین زمانی که هیچ خودرویی در خیابان حرکت نکند, چراغ های خیابان برای صرف جویی در مصرف انرژی الکتریکی خاموش خواهند شد.
همانطور که گفته شد در این پروژه برای تشخیص عبور خودرو ما از سنسورهای مادون قرمز یا IR استفاده کرده ایم. به همین منظور برای راه اندازی سنسورهای مادون قرمز باید از مدار زیر برای هر سنسور فرستنده و گیرنده IR استفاده کنیم:
قبلا همین پروژه را با استفاده از میکروکنترلر AVR در سایت قرار داده بودم که می توانید ان پست را در اینجا مشاهده کنید. در ان پست بطور کامل در مورد عملکرد مدار بالا توضیح داده شد که توصیه می کنم حتما مطالعه کنید.
برای این پروژه باید سنسور فرستنده IR را در یک سمت خیابان و گیرنده را نیز در سمت دیگر خیابان و دقیقا مقابل ان قرار دهیم تا با عبور خودرو از بین انها نور فرستنده قطع شده و به گیرنده نرسد تا از این طریق بتوانیم عبور خودرو را تشخیص دهیم.
پروژه آردوینو روشن شدن چراغ خیابان با تشخیص حرکت خودرو :
در این پروژه ما از دو سنسور فرستنده و گیرنده مادون قرمز (IR) برای کنترل دو جفت چراغ LED استفاده کرده ایم. شما می توانید به دلخواه هر تعداد چراغی که خواستید را کنترل کنید فقط لازم است که برای هر عدد سنسور فرستنده و گیرنده IR یا به عبارت دیگر برای کنترل هر عدد چراغ, یک عدد از مدار معرفی شده در بالا بسته شود و البته باید سنسورهای جدید را در برنامه پروژه اضافه کنید. شماتیک پروژه برای دو سنسور فرستنده و گیرنده IR و کنترل دو جفت LED بصورت زیر است :
برای دیدن تصویر بالا در اندازه بزرگتر ان را ذخیره کنید. همانطور که گفته شد در این پروژه از برد اردوینو UNO استفاده شده است. خروجی های سنسورهای اول و دوم به ترتیب به پین های 13 و 12 از برد اردوینو متصل شده اند. پین 11 اردوینو از طریق یک مقاومت به LED های مربوط به سنسور اول متصل شده است و پین 10 اردوینو نیز به LED های سنسور دوم متصل شده است. با حرکت خودرو از بین هر کدام از سنسورها خروجی ان فعال شده و برد اردوینو چراغ های مربوطه را روشن می کند. در انتهای مطلب می توانید کلیپ تست عملی پروژه را مشاهده کنید.
برای تست پروژه بهتر است برد اردوینو را با اداپتور راه اندازی کنید (جریان دهی برد اردوینو در حالتی که با کابل usb متصل به کامپیوتر راه اندازی می شود بسیار کم است و جوابگوی برخی پروژه ها نیست)
برنامه اردوینو :
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////////// #define S1 digitalRead(13) //با پین 13 از اردوینو S1 برابر قرار دادن حرف// #define S2 digitalRead(12) //با پین 12 از اردوینو S2 برابر قرار دادن حرف// int i=0 ; void setup() { pinMode(13, INPUT); pinMode(12, INPUT); pinMode(11, OUTPUT); pinMode(10, OUTPUT); } void loop() { //هاي متصل به پين 11 از اردوینو را روشن می کند LED زير زماني که سنسور اول فعال شود if شرط// if (S1 == 1 & S2 == 0) { digitalWrite(11, 1); digitalWrite(10, 0); i = 0; } //هاي متصل به پين 10 از اردوینو را روشن می کند LED زير زماني که سنسور دوم فعال شود if شرط// if (S1 == 0 & S2 == 1) { digitalWrite(11, 0); digitalWrite(10, 1); i = 0; } //ها را روشن می کند LED شرط زير زماني که هر دو سنسور فعال باشند همه ي// if (S1 == 1 & S2 == 1) { digitalWrite(11, 1); digitalWrite(10, 1); i = 0; } //ها را خاموش می کند LED شرط زير زماني که هر دو سنسور غيرفعال باشند بعد از 5 ثانيه همه ی// if (S1 == 0 & S2 == 0) { delay(10); i++; if (i >= 500) { digitalWrite(11, 0); digitalWrite(10, 0); } } } |
توضیحات قسمت های مهم برنامه نوشته شده, اگر سوالی داشتید می تونید در قسمت نظرات مطرح کنید.
کلیپ تست عملی پروژه :
پسورد فایل زیپ : www.emic.ir
پروژه های مشابه:
نظر یادتون نره…
سلام.فرستنده و گیرنده های IR تا چه فاصله ای جوابگو هستند؟برای استفاده از یک جفت فرستنده و گیرنده IR در فواصل بیشتر باید چطور عمل کنیم؟
سلام, در حدود چند سانتی متر برای برد بالا می توانید از فرستنده و گیرنده لیزر استفاده کنید
سلام، وقت بخیر
من این پروژه رو تو پروتئوس اجرا کردم ولی تمام چراغ ها از ابتدا روشن هستن، مگه نباید اولش خاموش باشه و بعد چیکار کنم که عکس العملشو ببینم
با این نرم افزار زیاد کار نکردم
اگه براتون امکان پذیره لطفا راهنماییم کنید.
سلام, توصیه می کنم در عمل تست کنید. حالا اگرم می خواهید در پروتئوس تست کنید می تونید بجای هر کدام از مدارات سنسور یک کلید بزارید و در پروتئوس تست کنید
سلام . من این مدار رو بستم ، اما عمل نکرد .
همینطور برای تست مدار ، بورد رو جدا کردم و خروجی اپ امپ رو به led و مقاومت زدم . فکر میکردم اینجور چراغ led باید روشن شه و اگر فرستنده و گیرنده مقابل هم نباشه و یا مانعی بین این دو قرار بگیره ، باید led خاموش بشه . اما led به صورت دائمی روشن شد و حتی با خارج کردن فرستنده و گیرنده از برد بورد ، باز هم روشن ماند . لطفا راهنمایی کنید علتش چی میتونه باشه ؟
سلام, وقتی که نور فرستنده به گیرنده نرسد خروجی اپ امپ یک منطقی می باشد و وقتی که نور فرستنده به گیرنده برسد خروجی صفر منطقی است. یعنی برعکس حالتی که شما فکر می کردید. اول شما مدار سنسورها را ازش جواب بگیرید و وقتی که مطمئن شدید مدار سنسورها جواب میده و مشکلی نداره می تونید به برد اردینو متصل کنید و پروژه را بصورت کامل تست کنید.
سلام چطور می تونم ledهارا افزایش بدم
یعنی تعداد سنسور هارو بیشتر و به عبارتی دیگر خیابانی بزرگ تر داشته باشم
سلام, این پروژه را با میکروکنترلر avr هم راه اندازی کرده بودم که در ان پست در مورد نحوه افزایش چراغ ها توضیح داده شده که می تونید مطالعه کنید (اینجا کلیک کنید)