#include <EEPROM.h>
const int ledPin1 = 9;
const int ledPin2 = 10;
const int buttonPinIncrease = 2;
const int buttonPinDecrease = 3;
int duration = 1000; // Initial duration in milliseconds
int eepromAddress = 0; // Address to store the duration in EEPROM
unsigned long lastChangeTime = 0;
bool led1State = false;
bool buttonIncreasePressed = false;
bool buttonDecreasePressed = false;
void setup() {
pinMode(ledPin1, OUTPUT);
pinMode(ledPin2, OUTPUT);
pinMode(buttonPinIncrease, INPUT_PULLUP);
pinMode(buttonPinDecrease, INPUT_PULLUP);
// Read the saved duration from EEPROM
duration = EEPROM.read(eepromAddress) * 100; // Scale back from 10ms units to ms
if (duration <= 0 || duration > 10000) {
duration = 1000; // Default duration if EEPROM is invalid
}
Serial.begin(9600);
Serial.print("Initial Duration: ");
Serial.println(duration);
}
void loop() {
// Read button states
bool increaseButtonState = digitalRead(buttonPinIncrease) == LOW;
bool decreaseButtonState = digitalRead(buttonPinDecrease) == LOW;
// Handle increase button
if (increaseButtonState && !buttonIncreasePressed) {
duration += 100; // Increase duration by 100ms
if (duration > 10000) {
duration = 10000; // Limit max duration to 10 seconds
}
EEPROM.write(eepromAddress, duration / 100); // Save duration in 10ms units
Serial.print("Increased Duration: ");
Serial.println(duration);
}
buttonIncreasePressed = increaseButtonState;
// Handle decrease button
if (decreaseButtonState && !buttonDecreasePressed) {
duration -= 100; // Decrease duration by 100ms
if (duration < 100) {
duration = 100; // Limit min duration to 100ms
}
EEPROM.write(eepromAddress, duration / 100); // Save duration in 10ms units
Serial.print("Decreased Duration: ");
Serial.println(duration);
}
buttonDecreasePressed = decreaseButtonState;
// Blink LEDs sequentially
unsigned long currentTime = millis();
if (currentTime - lastChangeTime >= duration) {
lastChangeTime = currentTime;
led1State = !led1State;
digitalWrite(ledPin1, led1State ? HIGH : LOW);
digitalWrite(ledPin2, led1State ? LOW : HIGH);
}
}