const int redPin = 9;
const int yellowPin = 10;
const int greenPin = 11;
unsigned long previousMillis = 0;
const long interval = 1000;
void setup() {
Serial.begin(9600);
pinMode(redPin, OUTPUT);
pinMode(yellowPin, OUTPUT);
pinMode(greenPin, OUTPUT);
}
void loop() {
int redDuration, yellowDuration, greenDuration;
redDuration = readDuration("Введіть тривалість світіння червоного світлодіода (в секундах): ");
yellowDuration = readDuration("Введіть тривалість світіння жовтого світлодіода (в секундах): ");
greenDuration = readDuration("Введіть тривалість світіння зеленого світлодіода (в секундах): ");
displayColors(redDuration, yellowDuration, greenDuration);
}
int readDuration(const char* prompt) {
Serial.println(prompt);
while (!Serial.available()) {}
String inputString = Serial.readStringUntil('\n');
return inputString.toInt();
}
void displayColors(int redDuration, int yellowDuration, int greenDuration) {
unsigned long currentMillis = millis();
// Виведення червоного світла
digitalWrite(redPin, HIGH);
while (millis() - currentMillis < redDuration * 1000) {
}
digitalWrite(redPin, LOW);
// Виведення жовтого світла
currentMillis = millis();
digitalWrite(yellowPin, HIGH);
while (millis() - currentMillis < yellowDuration * 1000) {
}
digitalWrite(yellowPin, LOW);
// Виведення зеленого світла
currentMillis = millis();
digitalWrite(greenPin, HIGH);
while (millis() - currentMillis < greenDuration * 1000) {
}
digitalWrite(greenPin, LOW);
}