// Піни, до яких підключено потенціометри і реле
const int potPin1 = A1; // Пін для першого потенціометра
const int potPin2 = A0; // Пін для другого потенціометра
const int relayPin = 9; // Пін для керування реле
unsigned long workStartTime = 0; // Змінна для зберігання часу початку роботи
unsigned long pauseStartTime = 0; // Змінна для зберігання часу початку паузи
int workTime = 0; // Змінна для тривалості роботи реле
int pauseTime = 0; // Змінна для тривалості паузи
void setup() {
Serial.begin(9600);
// Встановлення режиму піну реле як вихідний
pinMode(relayPin, OUTPUT);
}
void loop() {
// Зчитування значень потенціометрів
workTime = map(analogRead(potPin1), 0, 1023, 3000, 30000); // Від 3 до 30 секунд
pauseTime = map(analogRead(potPin2), 0, 1023, 0, 30000); // Від 0 до 5 хвилин (300000 мілісекунд)
Serial.println(String(workTime)+ " " + String(pauseTime));
// Зчитування поточного часу
unsigned long currentMillis = millis();
// Перевірка чи пройшов час для роботи реле
if (digitalRead(relayPin) == LOW && currentMillis - pauseStartTime >= pauseTime) {
// Вмикаємо реле на роботу
digitalWrite(relayPin, HIGH);
// Зберігаємо час початку роботи реле
workStartTime = currentMillis;
}
// Перевірка чи пройшов час для паузи
if (digitalRead(relayPin) == HIGH && currentMillis - workStartTime >= workTime) {
// Вимикаємо реле для паузи
digitalWrite(relayPin, LOW);
// Зберігаємо час початку паузи
pauseStartTime = currentMillis;
}
}