You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
54 lines
783 B
Plaintext
54 lines
783 B
Plaintext
byte foo;
|
|
int bar;
|
|
byte mul;
|
|
byte cnt;
|
|
float wow;
|
|
boolean b;
|
|
int inv;
|
|
|
|
#define WOW_FACTOR 512
|
|
#define WOW_LIMIT 4
|
|
|
|
void setup() {
|
|
pinMode(8, OUTPUT);
|
|
cnt = 0;
|
|
mul = 1;
|
|
wow = WOW_FACTOR;
|
|
inv = 1;
|
|
}
|
|
|
|
|
|
|
|
void loop() {
|
|
|
|
if( cnt == 0 ) {
|
|
mul = random(6)+1;
|
|
cnt = 25;
|
|
}
|
|
|
|
cnt--;
|
|
|
|
foo = random(5*mul)+2;
|
|
|
|
for(bar = 0; bar < (255-(foo*20)); bar++) {
|
|
|
|
|
|
if( inv == 1 )
|
|
wow /= 2;
|
|
else
|
|
wow *= 2;
|
|
|
|
if( wow < WOW_LIMIT || wow > WOW_FACTOR ) {
|
|
inv = inv == 1 ? -1 : 1;
|
|
}
|
|
|
|
digitalWrite(8, b = !b);
|
|
delayMicroseconds((WOW_FACTOR+(wow*inv))*foo+(bar*2*b));
|
|
|
|
// NOISE
|
|
if( random(10) == 0 ) {
|
|
digitalWrite(8, b = !b); delayMicroseconds(4500); digitalWrite(8, b = !b);
|
|
}
|
|
}
|
|
}
|