class Blinker {
private:
int ledPin;
unsigned long onTime;
unsigned long offTime;
unsigned long lastChange;
bool isOn;
public:
Blinker(int pin, unsigned long on, unsigned long off)
: ledPin(pin), onTime(on), offTime(off), lastChange(0), isOn(false) {
pinMode(ledPin, OUTPUT);
}
void update() {
unsigned long currentMillis = millis();
unsigned long interval = isOn ? onTime : offTime;
if (currentMillis - lastChange >= interval) {
isOn = !isOn;
digitalWrite(ledPin, isOn ? HIGH : LOW);
lastChange = currentMillis;
}
}
};
Blinker led1(3, 100, 200);
Blinker led2(4, 400, 400);
Blinker led3(5, 200, 600);
void setup() {
}
void loop() {
led1.update();
led2.update();
led3.update();
}