Hey Guys.
I am having a problem with a Pull-Down LOW input into my Arduino UNO which is weird cause I never had this problem before.
When I set it to react on HIGH it works fine.
Here is the Code.
//DigitalPins as INPUT-BUTTONS.
const int Button1 = 2;
const int Button2 = 3;
const int Button3 = 4;
const int Button4 = 5;
const int Button5 = 6;
const int Button6 = 7;
//AnalogPins as light ON/OFF.
const int Light1 = A0;
const int Light2 = A1;
const int Light3 = A2;
const int Light4 = A3;
const int Light5 = A4;
const int Light6 = A5;
int GlobalSelect = 0;
//Struct
struct Timer
{
unsigned long InitialTimer;
char Track;
};
Timer ButtonDelay = {0,0};
int Light1State = 0, Light2State = 0, Light3State = 0, Light4State = 0, Light5State = 0, Light6State = 0;
//Setup
void setup()
{
//DigitalPins - Buttons
pinMode(Button1, INPUT);
pinMode(Button2, INPUT);
pinMode(Button3, INPUT);
pinMode(Button4, INPUT);
pinMode(Button5, INPUT);
pinMode(Button6, INPUT);
//AnalogPins - Lights
pinMode(Light1, OUTPUT);
pinMode(Light2, OUTPUT);
pinMode(Light3, OUTPUT);
pinMode(Light4, OUTPUT);
pinMode(Light5, OUTPUT);
pinMode(Light6, OUTPUT);
}
void loop()
{
ButtonReadProto();
SwitchF();
}
void ButtonReadProto()
{
int Button1R = digitalRead(Button1);
int Button2R = digitalRead(Button2);
int Button3R = digitalRead(Button3);
int Button4R = digitalRead(Button4);
int Button5R = digitalRead(Button5);
int Button6R = digitalRead(Button6);
if (ButtonDelay.Track==0)
{
ButtonDelay.InitialTimer = millis();
ButtonDelay.Track=1;
}
unsigned long curUni = millis();
if(curUni - ButtonDelay.InitialTimer > 250)
{
if (Button1R == LOW)
{
GlobalSelect = 1;
}
if (Button2R == LOW)
{
GlobalSelect = 2;
}
if (Button3R == LOW)
{
GlobalSelect = 3;
}
if (Button4R == LOW)
{
}
if (Button5R == LOW)
{
}
if (Button6R == LOW)
{
GlobalSelect = 6;
}
ButtonDelay.Track=0;
}
else
{
}
}
void Light1F()
{
//Light1State = StateChange(Light1State);
// if (Light1State == 1)
//{
digitalWrite(Light1, HIGH);
digitalWrite(Light2, HIGH);
digitalWrite(Light3, HIGH);
digitalWrite(Light4, HIGH);
digitalWrite(Light5, HIGH);
digitalWrite(Light6, HIGH);
//}
GlobalSelect = 0;
}
void Light2F()
{
digitalWrite(Light1, LOW);
digitalWrite(Light2, HIGH);
digitalWrite(Light3, LOW);
digitalWrite(Light4, LOW);
digitalWrite(Light5, LOW);
digitalWrite(Light6, LOW);
GlobalSelect = 0;
}
void Light3F()
{
digitalWrite(Light1, HIGH);
digitalWrite(Light2, LOW);
digitalWrite(Light3, LOW);
digitalWrite(Light4, LOW);
digitalWrite(Light5, LOW);
digitalWrite(Light6, LOW);
GlobalSelect = 0;
}
void Light6F()
{
digitalWrite(Light1, LOW);
digitalWrite(Light2, LOW);
digitalWrite(Light3, LOW);
digitalWrite(Light4, LOW);
digitalWrite(Light5, LOW);
digitalWrite(Light6, LOW);
Light1State = 0;
GlobalSelect = 0;
}
/*
int StateChange(int c)
{
if (c == 1)
{
c = 0;
}
else if (c == 0)
{
c = 1;
}
return c;
}
*/
void SwitchF()
{
switch(GlobalSelect){
case 1:
{
Light1F();
break;
}
case 2:
{
Light2F();
break;
}
case 3:
{
Light3F();
break;
}
case 4:
{
GlobalSelect = 0;
break;
}
case 5:
{
GlobalSelect = 0;
break;
}
case 6:
{
Light6F();
break;
}
}//SwitchState Exit
}