//PinMode
int _PinMode_LED[] = {2,3,4,5,6};
int _PinMode_Buttons[] = {7,8};
//Integer used in Loops
int i;
//Length of PinMode Arrays
int Length_PinMode_LED;
int Length_PinMode_Buttons;
// to switch and repeat patterns
int ButtonState1 = 0;
int ButtonState2 = 0;
bool Pattern1 = false;
bool Pattern2 = false;
void setup() {
Serial.begin(9600);
Length_PinMode_LED = sizeof(_PinMode_LED)/sizeof(_PinMode_LED[0]);
Serial.println(Length_PinMode_LED);
Length_PinMode_Buttons = sizeof(_PinMode_Buttons)/sizeof(_PinMode_Buttons[0]);
Serial.println(Length_PinMode_Buttons);
for(int i = 0;i<Length_PinMode_LED;i++)
{
pinMode(_PinMode_LED[i], OUTPUT);
}
for (int i;i<Length_PinMode_Buttons;i++ )
{
pinMode(_PinMode_Buttons[i], INPUT);
}
/*pinMode(2, OUTPUT);
pinMode(3, OUTPUT);
pinMode(4, OUTPUT);
pinMode(5, OUTPUT);
pinMode(6, OUTPUT);*/
}
void loop() {
ButtonState1 = digitalRead(_PinMode_Buttons[0]);
ButtonState2 = digitalRead(_PinMode_Buttons[1]);
Serial.println(ButtonState2);
/*if(Pattern1 == true)
{
Pattern2 = false;
}
if(Pattern2 == true)
{
Pattern1 = false;
}*/
if(ButtonState1 == 0 && ButtonState2 == 0)
{
CloseLights();
}
if(ButtonState1 == 1 && Pattern1 == false)
{
CloseLights();
ButtonState2 = 0;
Pattern1 = true;
Pattern2 = false;
while(ButtonState1 == 1 && ButtonState2 == 0)
{
ButtonState1 = digitalRead(_PinMode_Buttons[0]); // Continuously read button states
ButtonState2 = digitalRead(_PinMode_Buttons[1]);
delay(500);
Example1();
if(ButtonState2 == 1)
{
Pattern1 = false;
ButtonState1 = 0;
break;
}
}
}
if( ButtonState2 == 1 && Pattern2 == false)
{
CloseLights();
ButtonState1 = 0;
Pattern2 = true;
Pattern1 = false;
while(ButtonState2 == 1 && ButtonState1 == 0 )
{
ButtonState1 = digitalRead(_PinMode_Buttons[0]); // Continuously read button states
ButtonState2 = digitalRead(_PinMode_Buttons[1]);
delay(500);
Example2();
if (ButtonState1 == 1) { // Switch to Pattern1 if Button1 is pressed
Pattern2 = false;
ButtonState2 = 0;
break;
}
}
}
}
void Example1()
{
for(int i=0;i<Length_PinMode_LED;i++)
{
digitalWrite(_PinMode_LED[i], HIGH);
delay((500));
if(i==Length_PinMode_LED-1)
{
for(int x =0;x<=Length_PinMode_LED;x++)
{
digitalWrite(_PinMode_LED[abs(x-Length_PinMode_LED)], LOW);
delay((500));
}
}
}
}
void Example2()
{
for(int i = 0;i<Length_PinMode_LED;i++)
{
Serial.print(i);
digitalWrite(_PinMode_LED[i], HIGH);
}
delay(500);
for(int i = 0;i<Length_PinMode_LED;i++)
{
digitalWrite((_PinMode_LED[i]), LOW);
}
}
void CloseLights()
{
for(int i;i<Length_PinMode_LED;i++)
{
digitalWrite(_PinMode_LED[i], LOW);
}
}
/*if(i == Length_PinMode_LED)
{
delay(500);
for(int i;i<=Length_PinMode_LED;i++)
{
digitalWrite(_PinMode_LED[i], LOW);
}
}
*/