Hello again!
I've finally got round to buying some LEDs and running the code. It
works nicely, but it is a bit boring. As a result, I had the LED select
chosen by a random number. This did not seem to be random though,
so I went onto random.org to create some true random number
strings. I then used these as the LED select numbers. This makes it
completely un-random, or pre selected, but it seems quite the opposite.
The new code is here:
int number;
int position = 0;
char sequence[] = {5,4,2,6,3,1,6,5,3,2,4,1,6,5,4,1,3,2,4,5,3,6,2,1,4,2,6,3,5,1,1,4,3,2,5,6,4,1,5,6,2,3,0};
void setup(){}
void loop(){
number = sequence[position];
if(number == false){
position = 0;
number = sequence[position];
}
pinMode(4, OUTPUT);
pinMode(3, OUTPUT);
pinMode(2, OUTPUT);
digitalWrite(2, LOW); //turn all the pins low
digitalWrite(3, LOW);
digitalWrite(4, LOW);
switch(number){ //turn on the correct pins for the LED selected:
case 1:
pinMode(2, INPUT);
pinMode(3, OUTPUT);
pinMode(4, OUTPUT);
digitalWrite(3, LOW);
digitalWrite(4, HIGH);
break;
case 2:
pinMode(2, INPUT);
pinMode(3, OUTPUT);
pinMode(4, OUTPUT);
digitalWrite(3, HIGH);
digitalWrite(4, LOW);
break;
case 3:
pinMode(3, INPUT);
pinMode(2, OUTPUT);
pinMode(4, OUTPUT);
digitalWrite(2, HIGH);
digitalWrite(4, LOW);
break;
case 4:
pinMode(3, INPUT);
pinMode(2, OUTPUT);
pinMode(4, OUTPUT);
digitalWrite(4, HIGH);
digitalWrite(2, LOW);
break;
case 5:
pinMode(4, INPUT);
pinMode(3, OUTPUT);
pinMode(2, OUTPUT);
digitalWrite(2, HIGH);
digitalWrite(3, LOW);
break;
case 6:
pinMode(4, INPUT);
pinMode(3, OUTPUT);
pinMode(2, OUTPUT);
digitalWrite(3, HIGH);
digitalWrite(2, LOW);
break;
default:
break;
}
delay(100);
position++;
}
And some pictures...
Plus a video (if it works):
Although it looks bad in the video, it is due to the poor video quality of my camera.
Onions.