LED per MILLIS blinken lassen. AN und AUS Zeit soll unterschiedlich sein

Hi

michael_x:
Es geht auch einfacher, und braucht auch keine Extra-Dateien

Musste die LED-Pins noch 'einarbeiten', dann lässt sich das Programm zu 960 Byte kompilieren.
Leider weigert sich gerade meine USB-Schnittstelle, dem UNO was Anderes beizubringen ...

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 setup(){
  #define led1Pin 2
  #define led2Pin 13
}

void loop() {
   digitalWrite(led1Pin, blitz.currentState() );
   digitalWrite(led2Pin, schnell.currentState() );
}

MfG und Danke für dieses Snippet :slight_smile: