Ich habe hier ein Beispiel für eine sehr einfache Klasse
Es geht auch einfacher, und braucht auch keine Extra-Dateien
class Blink {
private:
unsigned long prevtime;
unsigned int zyklus;
unsigned int an;
public:
Blink(unsigned int _an, unsigned int _zyklus) { zyklus=_zyklus; an = _an;}
boolean currentState () {
// sollte häufig aufgerufen werden, damit der jeweils aktuelle Zustand zurückgeliefert wird
if (millis() - prevtime >= zyklus) {
prevtime = millis();
}
if (millis() - prevtime < an) return true;
else return false;
}
};
Blink blitz(20,2000); // ein Blitz alle 2 sec
Blink schnell(100,200); // 50:50 mit 5 Hz
void loop() {
digitalWrite(led1Pin, blitz.currentState() );
digitalWrite(led2Pin, schnell.currentState() );
}