Stap 3: Een functie die bruikbaar zijn voor om het even welk geleid
En hier is de definitieve code met een tweede geleid.
de enige var te verklaren buiten de functie is de array, waarin de millis waarde voor elk van de led die u wilt gebruiken is opgeslagen.
Dus wanneer u de functie oproepen u moet typen: welke led, op tijd, tijd, matrixpositie (dat is uniek voor elk geleid!)
#define redLed 5#define bluLed 6long previousMillis[2]; //[x] = number of ledsvoid setup() { pinMode(redLed, OUTPUT); pinMode(bluLed, OUTPUT); } void loop() { //OnOffBlink(which led?, tOn, tOff, One of the previousMillis); OnOffBlink(redLed, 300, 500, 0); //array must be different OnOffBlink(bluLed, 300, 300, 1); //for each led }void OnOffBlink(int led, int tOn, int tOff, int array){ static int timer=tOn; if ((millis() - previousMillis[array]) >= timer) { if (digitalRead(led) == HIGH) { timer = tOff; } else { timer = tOn; } digitalWrite(led, !digitalRead(led)); previousMillis[array] = millis(); } }
Hope u like it.
Als u nog tips, gelieve hint, critici en alles reactie hieronder!