Bin gerade etwas am rumspielen
Das geht und macht auf allen 8 LED die Flackereffekte wie gewünscht:
#include <INTERVAL.h>
byte LED[] = {2, 3, 4, 5, 6, 7, 8, 9};
unsigned long dauer[8] = {300, 0, 0, 0, 0, 0, 0, 0};
unsigned long zufall[] = {300, 250, 100, 200, 1500, 300, 400, 1500};
void setup()
{
Serial.begin(115200);
for (byte x = 0; x < 8; x++)
pinMode(LED[x], OUTPUT);
Serial.println("started");
}
void loop()
{
byte x = 0;
INTERVAL(dauer[x])
{
dauer[x] = random(zufall[x]) % 43 * 9;
digitalWrite(LED[x], !digitalRead(LED[x]));
Serial.println(dauer[x]);
}
x++;
INTERVAL(dauer[x])
{
dauer[x] = random(zufall[x]) % 43 * 9;
digitalWrite(LED[x], !digitalRead(LED[x]));
Serial.println(dauer[x]);
}
x++;
INTERVAL(dauer[x])
{
dauer[x] = random(zufall[x]) % 43 * 9;
digitalWrite(LED[x], !digitalRead(LED[x]));
Serial.println(dauer[x]);
}
x++;
INTERVAL(dauer[x])
{
dauer[x] = random(zufall[x]) % 43 * 9;
digitalWrite(LED[x], !digitalRead(LED[x]));
Serial.println(dauer[x]);
}
x++;
INTERVAL(dauer[x])
{
dauer[x] = random(zufall[x]) % 43 * 9;
digitalWrite(LED[x], !digitalRead(LED[x]));
Serial.println(dauer[x]);
}
x++;
INTERVAL(dauer[x])
{
dauer[x] = random(zufall[x]) % 43 * 9;
digitalWrite(LED[x], !digitalRead(LED[x]));
Serial.println(dauer[x]);
}
x++;
INTERVAL(dauer[x])
{
dauer[x] = random(zufall[x]) % 43 * 9;
digitalWrite(LED[x], !digitalRead(LED[x]));
Serial.println(dauer[x]);
}
x++;
INTERVAL(dauer[x])
{
dauer[x] = random(zufall[x]) % 43 * 9;
digitalWrite(LED[x], !digitalRead(LED[x]));
Serial.println(dauer[x]);
}
}
Und das hier, wo ich dachte, das macht das gleiche, läuft viel langsamer, ist nix mit flackern.
#include <INTERVAL.h>
byte LED[] = {2, 3, 4, 5, 6, 7, 8, 9};
unsigned long dauer[8] = {300, 0, 0, 0, 0, 0, 0, 0};
unsigned long zufall[] = {300, 250, 100, 200, 1500, 300, 400, 1500};
void setup()
{
Serial.begin(115200);
for (byte x = 0; x < 8; x++)
pinMode(LED[x], OUTPUT);
Serial.println("started");
}
void loop()
{
for (byte x = 0; x < 8; x++)
{
INTERVAL(dauer[x])
{
dauer[x] = random(zufall[x]) % 43 * 9;
digitalWrite(LED[x], !digitalRead(LED[x]));
Serial.println(dauer[x]);
}
}
}
An was kann das liegen?