const int redLedPin = 13; // تحديد مدخل الصمام الأحمر
const int greenLedPin = 12; // تحديد مدخل الصمام الأخضر
unsigned long previousMillisRed = 0; // تخزين وقت تحديث الصمام الأحمر الأخير
unsigned long previousMillisGreen = 0; // تخزين وقت تحديث الصمام الأخضر الأخير
const long intervalRed = 500; // الفترة الزمنية لامعة للصمام الأحمر (مرة واحدة في الثانية)
const long intervalGreen = 200; // الفترة الزمنية لامعة للصمام الأخضر (5 مرات في 2 ثانية)
int redLedState = LOW; // حالة الصمام الأحمر الحالية
int greenLedState = LOW; // حالة الصمام الأخضر الحالية
int greenBlinkCount = 0; // عد اللمعات للصمام الأخضر
void setup() {
pinMode(redLedPin, OUTPUT); // قم بتعيين مدخل الصمام الأحمر كإخراج
pinMode(greenLedPin, OUTPUT); // قم بتعيين مدخل الصمام الأخضر كإخراج
}
void loop() {
unsigned long currentMillis = millis(); // الوقت الحالي
// لامعة الصمام الأحمر
if (currentMillis - previousMillisRed >= intervalRed) {
previousMillisRed = currentMillis;
if (redLedState == LOW) {
redLedState = HIGH;
} else {
redLedState = LOW;
}
digitalWrite(redLedPin, redLedState);
}
// لامعة الصمام الأخضر
if (currentMillis - previousMillisGreen >= intervalGreen) {
previousMillisGreen = currentMillis;
if (greenLedState == LOW) {
greenLedState = HIGH;
greenBlinkCount++;
} else {
greenLedState = LOW;
}
digitalWrite(greenLedPin, greenLedState);
// إعادة تعيين عد اللمعات للصمام الأخضر بعد 5 لمعات
if (greenBlinkCount == 5) {
greenBlinkCount = 0;
}
}
}