در این سری از پروزه های آموزشی آردوینو، نحوه راه اندازی و ساخت چراغ خطر راهنمایی و رانندگی به کمک برد آردوینو را توضیح داده ایم. چراغ راهنمایی و رانندگی یکی از مهمترین و پرکاربردترین وسیله جهت کنترل ترافیک وسایل نقلیه و عابرین پیاده در شهرها و جاده ها است. اگر به دنبال پروژه ساخت چراغ راهنمایی و رانندگی هستید، می توانید مطالب زیر که در وب سایت الکترونیک98 منتشر شده است را مطالعه بفرمائید.
لیست قطعات مورد نیاز
برد آردوینو Arduino UNO R3 مدل DIP | 1 عدد |
مقاومت 10 کیلو اهم با توان 0.25 وات و تلرانس 1 درصد | 1 عدد |
مقاومت 220 اهم با توان 0.25 وات و تلرانس 1 درصد | 6 عدد |
تک سوئیچ 2 پایه DIP سایز 6x6x5 میلیمتر | 1 عدد |
لامپ LED قرمز سایز 5mm میلی متر مدل مات | 2 عدد |
لامپ LED سبز سایز 5mm میلی متر مدل مات | 2 عدد |
لامپ LED زرد سایز 5mm میلی متر مدل مات | 2 عدد |
برد بورد (پروجکت برد) مدل GL | 1 عدد |
سیم جامپر برد بوردی مدل دو سر نری (سری 40تایی) | 1 عدد |
حالت اول: طرح ساده چراغ ترافیک راهنمایی و رانندگی
نحوه اتصال قطعات به یکدیگر و برد آردوینو در این حالت بسیار راحت و ساده است، به طوری که با توجه به شماتیک زیر به راحتی می توانید این اتصالات را انجام دهید.
برنامه نویسی پروژه در حالت اول
بعد از اتصال قطعات به یکدیگر، کدهای زیر را در نرم افزار آردوینو کپی نموده سپس به برد آردوینو آپلود کنید.
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 |
int red = 10; int yellow = 9; int green = 8; void setup(){ pinMode(red, OUTPUT); pinMode(yellow, OUTPUT); pinMode(green, OUTPUT); } void loop(){ changeLights(); delay(15000); } void changeLights(){ // green off, yellow on for 3 seconds digitalWrite(green, LOW); digitalWrite(yellow, HIGH); delay(3000); // turn off yellow, then turn red on for 5 seconds digitalWrite(yellow, LOW); digitalWrite(red, HIGH); delay(5000); // red and yellow on for 2 seconds (red is already on though) digitalWrite(yellow, HIGH); delay(2000); // turn off red and yellow, then turn on green digitalWrite(yellow, LOW); digitalWrite(red, LOW); digitalWrite(green, HIGH); delay(3000); } |
حالت دوم: روشن کردن (استارت زدن) چراغ ترافیک راهنمایی و رانندگی توسط میکروسوئیچ
نحوه اتصال قطعات به یکدیگر و برد آردوینو در این حالت بسیار راحت و ساده است، به طوری که با توجه به شماتیک زیر به راحتی می توانید این اتصالات را انجام دهید.
برنامه نویسی پروژه در حالت دوم
بعد از اتصال قطعات به یکدیگر، کدهای زیر را در نرم افزار آردوینو کپی نموده سپس به برد آردوینو آپلود کنید.
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 |
int red = 10; int yellow = 9; int green = 8; int button = 12; // switch is on pin 12 void setup() { pinMode(red, OUTPUT); pinMode(yellow, OUTPUT); pinMode(green, OUTPUT); pinMode(button, INPUT); digitalWrite(green, HIGH); } void loop() { if (digitalRead(button) == HIGH) { delay(15); // software debounce if (digitalRead(button) == HIGH) { // if the switch is HIGH, ie. pushed down - change the lights! changeLights(); delay(15000); // wait for 15 seconds } } } void changeLights() { // green off, yellow on for 3 seconds digitalWrite(green, LOW); digitalWrite(yellow, HIGH); delay(3000); // turn off yellow, then turn red on for 5 seconds digitalWrite(yellow, LOW); digitalWrite(red, HIGH); delay(5000); // red and yellow on for 2 seconds (red is already on though) digitalWrite(yellow, HIGH); delay(2000); // turn off red and yellow, then turn on green digitalWrite(yellow, LOW); digitalWrite(red, LOW); digitalWrite(green, HIGH); delay(3000); } |
حالت سوم: طرح کاربردی پروژه چراغ ترافیک راهنمایی و رانندگی
نحوه اتصال همانند شماتیک زیر انجام شود.
برنامه نویسی پروژه در حالت سوم
بعد از اتصال قطعات به یکدیگر، کدهای زیر را در نرم افزار آردوینو کپی نموده سپس به برد آردوینو آپلود کنید.
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 |
// light one int red1 = 10; int yellow1 = 9; int green1 = 8; // light two int red2 = 13; int yellow2 = 12; int green2 = 11; void setup(){ // light one pinMode(red1, OUTPUT); pinMode(yellow1, OUTPUT); pinMode(green1, OUTPUT); // light two pinMode(red2, OUTPUT); pinMode(yellow2, OUTPUT); pinMode(green2, OUTPUT); } void loop(){ changeLights(); delay(15000); } void changeLights(){ // turn both yellows on digitalWrite(green1, LOW); digitalWrite(yellow1, HIGH); digitalWrite(yellow2, HIGH); delay(5000); // turn both yellows off, and opposite green and red digitalWrite(yellow1, LOW); digitalWrite(red1, HIGH); digitalWrite(yellow2, LOW); digitalWrite(red2, LOW); digitalWrite(green2, HIGH); delay(5000); // both yellows on again digitalWrite(yellow1, HIGH); digitalWrite(yellow2, HIGH); digitalWrite(green2, LOW); delay(3000); // turn both yellows off, and opposite green and red digitalWrite(green1, HIGH); digitalWrite(yellow1, LOW); digitalWrite(red1, LOW); digitalWrite(yellow2, LOW); digitalWrite(red2, HIGH); delay(5000); } |
سلام آگه میشه واسه چراغ راهنمایی از lcdکاراکتری استفاده کنید که تایم رو بنویسم. ..