مقدمـــــــــة عن المشروع
تكمن أهمية إشارات المرور في أنها تساعد في التقليل من حوادث المرور، حيث تعتبر إشارات المرور جزء لا يُستغنى عنه في نظم الطرق الحديثة، وفي حال اتباعها بشكل صحيح يمكنها من توفير السفر الآمن والمريح على الطرق والحد من الحوادث وتقليل التأخر غير المرغوب . كما أنا تساعد في تحسين حركة المرور والتحكم بالتقاطعات المرورية .
في هذا المشروع نتناول كيفية بناء أشارة مرور واحدة , وبناءا عليها تستطيع أيه المبرمج أن تطبق الفكرة على أربعة اشارات مرورية . فدعنا نبدأ الان ……
منتجات المشروع
-
أسلاك وتوصيلات, جميع المنتجات
أسلاك توصيل ذكر لذكر 40 قطعة 20 سم Male to Male jumper wires
لمحة سريعة:
- 40P لون خط DuPont
- الطول: 200 ملم
- الوزن: 30 جم
- متوافق مع رؤوس تباعد 2.54 مم
- 40 قطعة من سلك الانتقال الملون من الذكور إلى الذكور
- جودة عالية وفي حالة عمل جيدة
- متين وقابل لإعادة الاستخدام
- سهل التركيب والاستخدام
SKU: AA045 -
-
بوردات ولوحات نحاسية, جميع المنتجات
لوحة تجارب صغيرة 170 نقطة SYB-170 أبيض Mini Breadboard
لمحة سريعة
- نقاط التعادل: 170 (10 × 17)
- الحجم: 48 × 35 × 10 ملم (طول × عرض × ارتفاع).
- الاستخدام: تجريبي ، اختبار ، روبوت
- وصلة عبور مطابقة ، قطرها 0.8 مللي متر
- مقاطع زنبركية مطلية بالنيكل من البرونز الفوسفور
- يقبل مجموعة متنوعة من أحجام الأسلاك (29-20 AWG)
SKU: AA055 -
طريقة العمل والتوصيل
للتوصيل أتبع نفس طريقة التوصيل الموضحة بالاسفل في الصورة .
فكرة العمل مطابقة للواقع تماما حيث تضيئ الاشارة الحمراء وبعد زمن يعقبها الضوء الاخضر , وقبل الانتقال للاحمر يضيئ الاصفر .
يمكنك التحكم في زمن أضاءة أي اشارة بالتلاعب في التأخير الزمني فقط .
الكـــــــــود البرمجي
/*MYBOTIC TRAFFIC LIGHT PEDESTRIAN CONTROL*/ #define RED_SET_TIME 5000 #define YELLOW_SET_TIME 2000 #define GREEN_SET_TIME 5000 #define LIGHT_1_RED 2 #define LIGHT_1_YELLOW 3 #define LIGHT_1_GREEN 4 #define GREEN_LIGHT 0 #define YELLOW_LIGHT 1 #define RED_LIGHT 2 unsigned long gulStart_Timer = 0; unsigned short gusSet_Time[3] = {GREEN_SET_TIME, YELLOW_SET_TIME, RED_SET_TIME}; short gsWhich_Light_Index = GREEN_LIGHT; void setup() { Serial.begin(9600); pinMode(LIGHT_1_RED, OUTPUT); pinMode(LIGHT_1_YELLOW, OUTPUT); pinMode(LIGHT_1_GREEN, OUTPUT); digitalWrite(LIGHT_1_GREEN, HIGH); digitalWrite(LIGHT_1_YELLOW, LOW); digitalWrite(LIGHT_1_RED, LOW); gulStart_Timer = millis(); } // the loop function runs over and over again forever void loop() { if((millis()-gulStart_Timer) >= gusSet_Time[gsWhich_Light_Index]) { gsWhich_Light_Index++; if(gsWhich_Light_Index > RED_LIGHT) { gsWhich_Light_Index = GREEN_LIGHT; } gulStart_Timer = millis(); if(gsWhich_Light_Index == GREEN_LIGHT) { digitalWrite(LIGHT_1_GREEN, HIGH); digitalWrite(LIGHT_1_YELLOW, LOW); digitalWrite(LIGHT_1_RED, LOW); } else if(gsWhich_Light_Index == YELLOW_LIGHT) { digitalWrite(LIGHT_1_GREEN, LOW); digitalWrite(LIGHT_1_YELLOW, HIGH); digitalWrite(LIGHT_1_RED, LOW); } else if(gsWhich_Light_Index == RED_LIGHT) { digitalWrite(LIGHT_1_GREEN, LOW); digitalWrite(LIGHT_1_YELLOW, LOW); digitalWrite(LIGHT_1_RED, HIGH); } } }
بارك الله فيك وجعله في ميزان حسناتك،،،
وبارك الله فيك شكرا لك