Arduino code:
int led = 13;
unsigned long rngstate = 4678678;
void setup() {
pinMode(led, OUTPUT);
}
void on(int ms) {
digitalWrite(led, HIGH);
delay(ms);
}
void off(int ms) {
digitalWrite(led, LOW);
delay(ms);
}
void mid(int ms) {
for(int counter = 0; counter != ms; ++counter) {
if(counter % 2 == 0) {
digitalWrite(led, HIGH);
}
else {
digitalWrite(led, LOW);
}
delay(1);
}
}
//void level(int percentIntensity, int ms) {
//
// for(int counter = 0; counter != ms; ++counter) {
// if(counter % 100 < percentIntensity) {
// digitalWrite(led, HIGH);
// }
// else {
// digitalWrite(led, LOW);
// }
// delay(1);
// }
//}
void loop() {
rngstate = rngstate * 1664525 + 1013904223;
on(500);
off(50);
on(500);
for(int i = 0; i != ((rngstate >> 10) % 13) + 4; ++i) {
on(150);
mid(150);
off(150);
}
delay(350);
}