Hello. So I am trying to create a home project light show, but I want the light sequence to be "random" I have created multiple arrays with difference sequences, along with an array of each array name. I have a random number generator that is used to reference a random array name and use it to randomize my program. the variable "sequence" is where the random array name ends up, as proven by the serial monitor....but using it in my function call, it refuses to work. can anybody explain what I have wrong? TIA
//FUNCTION PROTOTYPE
void LightOn (int, int);
void LightOff (int, int);
//Array names Array
String ArrayNames[] =
{
"Left2Right", "Right2Left", "LeftOut2In",
"RightOut2In", "In2Out1", "In2Out2"
};
//ARRAY DESIGN
int Left2Right[] = //Array #1
{
2, 3, 4, 5, 6, 7, 8, 9
};
int Right2Left[] = //Array #2
{
9, 8, 7, 6, 5, 4 , 3, 2
};
int LeftOut2In1[] = //Array #3
{
2, 9, 3, 8, 4, 7, 5, 6
};
int RightOut2In[] = //Array #4
{
9, 2, 8, 3, 7, 4, 6, 5
};
int In2Out1[] = //Array #5
{
5, 6, 4, 7, 3, 8, 2, 9
};
int In2Out2[] = //Array #6
{
6, 5, 7, 4, 8, 3, 9, 2
};
void setup()
{
int i;
int pinMin = 2;
int pinMax = 9;
for (i = pinMin ; i <= pinMax ; i++)
{
pinMode(i, OUTPUT);
}
}
void loop()
{
int i;
String sequence;
int randomSeq; //(start , total-1)
int randomTime; //20-500 mS
Serial.begin(9600);
randomSeq = random(6);
randomTime = random(501);
sequence = ArrayNames[randomSeq];
Serial.println(sequence);
for (i = 0 ; i <= 7 ; i++)
{
LightOn(sequence[i], randomTime);
}
randomTime = random(20, 501);
for (i = 0 ; i <= 7 ; i++)
{
LightOff(sequence[i], randomTime);
}
}
void LightOn (int i, int randomTime)
{
digitalWrite(i, LOW);
delay(randomTime);
}
void LightOff(int i, int randomTime)
{
digitalWrite(i, HIGH);
delay(randomTime);
}