const int LED_red = 7;
const int LED_green = 8;
const int buttonPin = 2;
unsigned long previousMillis = 0;
const long ledOnTime = 10000; // время, в течение которого светодиод будет включен
const long interval = 5000; // промежуток времени между переключениями светодиодов
bool buttonState = false; // состояние кнопки (true - включена, false - выключена)
bool ledState = false; // состояние светодиода (false - красный, true - зеленый)
bool running = false; // флаг, указывающий, запущена ли программа
void setup() {
pinMode(LED_red, OUTPUT);
pinMode(LED_green, OUTPUT);
pinMode(buttonPin, INPUT_PULLUP); // внутренний подтягивающий резистор для кнопки
}
void loop() {
if (!running && digitalRead(buttonPin) == LOW) {
running = true; // запускаем программу
previousMillis = millis(); // обновляем время
}
if (running) {
unsigned long currentMillis = millis();
if (currentMillis - previousMillis < ledOnTime) {
digitalWrite(LED_red, !ledState);
digitalWrite(LED_green, ledState); // включаем светодиод
} else if (currentMillis - previousMillis < ledOnTime + interval) {
digitalWrite(LED_red, HIGH);
digitalWrite(LED_green, HIGH); // выключаем оба светодиода
} else {
previousMillis = currentMillis; // сбрасываем время для следующего цикла
ledState = !ledState; // переключаем светодиод
}
} else {
digitalWrite(LED_red, HIGH);
digitalWrite(LED_green, HIGH); // выключаем оба светодиода
}
if (running && digitalRead(buttonPin) == LOW) {
running = false; // останавливаем программу при нажатии кнопки
}
}