
به نام خدا
چراغ کنترل ترافیک(راهنمایی و راننده گی) سه راه با آردوینو
آردوینو یکی از محبوب ترین کنترل کننده منبع باز است ،برای انجام پروژه های DIY( Do it yourself) بسیار مفید است . این چراغ راهنمایی سه راه بر پایه ی آردوینو ،برای درک کار چراغ راهنمایی که ما در اطراف خود میبینیم مفید است.ما در اینجا یه نمونه ی ساده از چراغ راهنمایی برای سه راه یا سه طرف نشان داده ایم.
وسایل مورد نیاز:
- سه LED به رنگ های قرمز،سبز و زرد
- مقاومت ۲۲۰ اهم
- ورقه کاغذ
- اتصال دوسر شاخه (نرینگی)
- برد آردوینو با کابل IDE
مدار الکتریکی پروژه:
مدار کنترل کننده ی ترافیک آردوینو در تصویر زیر آمده است.
این مدار را به آسانی میتوان روی beredbord پیاده سازی کرد، که در زیر مراحل کار توضیح داده شده است:
- LED ها را به ترتیب قرمز،سبزو زرد در برد بورد قرار دهید.
- پایه منفی LED هارا با مقاومت ها به صورت سری متصل کنید و سر دیگر مقاومت ها را به زمین وصل کنید.
- طبق تصویر انتهای دیگر سیم ها را به پین های متوالی آردوینو (۲،۳،۴،…۱۰) متصل کنید.
- زمین برد بورد خود را بع زمین آردوینو متصل کنید.
برنامه نحوه ی کار پروژه:
کد این پروژه ساده و قابل درک است.در این پروژه ما چراغ های ترافیک را برای یک تقاطع سه طرفه نشان داده ایم.کد این پروژه به صورتی نوشته شده است که در یک زمان دو LED قرمز روشن برای دو طرف این تقاطع روشن می شود و در طرف دیگر LED سبز روشن خواهد بود.نور زرد نیز برای هر یک ثانیه بین تغییر رنگ از قرمز به سبز روشن می شود ،یعنی اولLED قرمز برای ۵ ثانیه روشن می شود سپس LED زرد برای ۱ ثانیه روشن و بعد از آن LED سبز روشن می شود.
در برنامه ابتدا پین های (۲،۳،…،۱۰)را به عنوان خروجی در تنظیمات voide() برای ۹lED (برای سه طرف یعنی روبه رو، چپ و راست )اعلام می کنیم.
void setup() { // configure the output pins pinMode(2,OUTPUT); pinMode(3,OUTPUT); pinMode(4,OUTPUT); pinMode(5,OUTPUT); pinMode(6,OUTPUT); pinMode(7,OUTPUT); pinMode(8,OUTPUT); pinMode(9,OUTPUT); pinMode(10,OUTPUT);
سپس در تابع void loop() کد ما را برای خاموش و روشن کردن چراغ های ترافیکی، همانطور که گفته شده می نویسید.
void loop() { digitalWrite(4,1); digitalWrite(5,1); digitalWrite(8,1); digitalWrite(2,0); digitalWrite(6,0); //enables the 1st set of signals digitalWrite(3,0); digitalWrite(7,0); digitalWrite(10,0); digitalWrite(9,0); delay(5000); .... ...... ..... ......
نحوه ی کار این مدار به این صورت است که ابتدا سمت رو به جلو (سبز)باز می شود ،در حالی که دو طرف دیگر (یعنی چپ و راست ) چراغ قرمز با تاخیر ۵ ثانیه ای روشن هستند، سپس نوز زرد در سمت راست برای ۱ ثانیه روشن و سپس چراغ سبز روشن میشود و دوطرف دیگر (چپ و روبه رو ) چراغ های قرمز با تاخیر ۵ ثانیه ای روشن می شود، بعد از آن در سمت چپ چراغ زرد با تاخیر ۱ ثانیه ای روشن و سپس چراغ سبز روشن میشود و دو طرف دیگر (روبه رو و راست) چراغ قرمز با تاخیر ۵ ثانیه ای روشن می شود.این روند در تابع void loop() برای این برنامه آمده است، شما میتوانید تاخیر های ذکر شده برای چراغ های قرمز، زرد و سبز برای خاموش و روشن شدن را به صورت دلخواه تغییر دهید.
کد کامل آردوینو برای پروژه چراغ راهنمایی آردوینو در زیر آماده شده است.
دانلود کد:
دانلود فایل
void setup() { // configure the output pins pinMode(2,OUTPUT); pinMode(3,OUTPUT); pinMode(4,OUTPUT); pinMode(5,OUTPUT); pinMode(6,OUTPUT); pinMode(7,OUTPUT); pinMode(8,OUTPUT); pinMode(9,OUTPUT); pinMode(10,OUTPUT); } void loop() { digitalWrite(4,1); digitalWrite(5,1); digitalWrite(8,1); digitalWrite(2,0); digitalWrite(6,0); //enables the 1st set of signals digitalWrite(3,0); digitalWrite(7,0); digitalWrite(10,0); digitalWrite(9,0); delay(5000); digitalWrite(6,1); //enables the yellow digitalWrite(5,0); delay(1000); digitalWrite(2,1); digitalWrite(8,1); digitalWrite(7,1); digitalWrite(3,0); //enables the 2nd set of signals digitalWrite(6,0); digitalWrite(9,0); digitalWrite(5,0); digitalWrite(10,0); digitalWrite(4,0); delay(5000); digitalWrite(9,1); //enables yellow digitalWrite(8,0); delay(1000); digitalWrite(5,1); digitalWrite(2,1); digitalWrite(10,1); digitalWrite(6,0); digitalWrite(8,0); //enables the 3rd set of signal digitalWrite(4,0); digitalWrite(7,0); digitalWrite(3,0); digitalWrite(4,0); digitalWrite(9,0); delay(5000); digitalWrite(3,1); //enables yellow digitalWrite(2,0); delay(1000); }
دیدگاهها (0)