42 lines
1.3 KiB
C++
42 lines
1.3 KiB
C++
// Pin Definitions
|
|
const int potPin = A0; // Analog input for the potentiometer
|
|
const int relayPin = 6; // Pin to control the relay
|
|
const int startPin = 2; // Pin to start the loop
|
|
|
|
// Variables
|
|
int potValue; // Current potentiometer value
|
|
int waitTime; // Waiting time in seconds
|
|
bool loopActive = false; // Flag variable to control the loop
|
|
|
|
void setup() {
|
|
pinMode(relayPin, OUTPUT);
|
|
pinMode(startPin, INPUT_PULLUP);
|
|
digitalWrite(relayPin, LOW); // Set relay default state to off
|
|
}
|
|
|
|
void loop() {
|
|
// Check if the start pin is HIGH to enter the loop
|
|
if (digitalRead(startPin) == HIGH && !loopActive) {
|
|
loopActive = true; // Activate the loop
|
|
|
|
while (loopActive) {
|
|
// Read the potentiometer value and calculate the waiting time
|
|
potValue = analogRead(potPin);
|
|
waitTime = map(potValue, 0, 1023, 5000, 40000); // Map the potentiometer value to the desired time range (5-40 seconds)
|
|
|
|
// Turn on the relay for one second
|
|
digitalWrite(relayPin, HIGH);
|
|
delay(1000);
|
|
digitalWrite(relayPin, LOW);
|
|
|
|
// Wait for the desired time
|
|
delay(waitTime);
|
|
|
|
// Check if the start pin is still HIGH to continue the loop
|
|
if (digitalRead(startPin) == LOW) {
|
|
loopActive = false; // Deactivate the loop
|
|
}
|
|
}
|
|
}
|
|
}
|