// تعريف الدبابيس للإشارة الأولى (A) والإشارة الثانية (B)
int redA = 10; // الدبوس الخاص بالضوء الأحمر للإشارة الأولى
int yellowA = 9; // الدبوس الخاص بالضوء الأصفر للإشارة الأولى
int greenA = 8; // الدبوس الخاص بالضوء الأخضر للإشارة الأولى
int redB = 4; // الدبوس الخاص بالضوء الأحمر للإشارة الثانية
int yellowB = 3; // الدبوس الخاص بالضوء الأصفر للإشارة الثانية
int greenB = 2; // الدبوس الخاص بالضوء الأخضر للإشارة الثانية
void setup() {
// إعداد الدبابيس كخرج
pinMode(redA, OUTPUT);
pinMode(yellowA, OUTPUT);
pinMode(greenA, OUTPUT);
pinMode(redB, OUTPUT);
pinMode(yellowB, OUTPUT);
pinMode(greenB, OUTPUT);
}
void loop() {
// **الإشارة الأولى خضراء، الإشارة الثانية حمراء**
digitalWrite(greenA, HIGH); // تشغيل الأخضر للإشارة الأولى
digitalWrite(redB, HIGH); // تشغيل الأحمر للإشارة الثانية
delay(5000); // مدة الأخضر 5 ثواني
// **تحويل الإشارة الأولى إلى وميض الأصفر**
digitalWrite(greenA, LOW); // إطفاء الأخضر
for (int i = 0; i < 5; i++) { // وميض الأصفر
digitalWrite(yellowA, HIGH);
delay(300);
digitalWrite(yellowA, LOW);
delay(300);
}
// **الإشارة الأولى حمراء، الإشارة الثانية خضراء**
digitalWrite(redA, HIGH); // تشغيل الأحمر للإشارة الأولى
digitalWrite(yellowA, LOW); // إطفاء الأصفر
digitalWrite(redB, LOW); // إطفاء الأحمر للإشارة الثانية
digitalWrite(greenB, HIGH); // تشغيل الأخضر للإشارة الثانية
delay(5000); // مدة الأخضر 5 ثواني
// **تحويل الإشارة الثانية إلى وميض الأصفر**
digitalWrite(greenB, LOW); // إطفاء الأخضر
for (int i = 0; i < 5; i++) {
digitalWrite(yellowB, HIGH);
delay(300);
digitalWrite(yellowB, LOW);
delay(300);
}
// **إعادة الإشارة الثانية إلى الأحمر، والإشارة الأولى إلى الأخضر**
digitalWrite(redA, LOW); // إطفاء الأحمر للإشارة الأولى
digitalWrite(redB, HIGH); // تشغيل الأحمر للإشارة الثانية
digitalWrite(greenA, HIGH); // تشغيل الأخضر للإشارة الأولى
}