Dear all
I am using arduino Uno board.i have 2 slide switch which decide my sequence of operation. sequence should be decided when power off to power on condition.
IN below code i am facing issue while power off and power on condition . some time slide switch read and display output properly. sometime it take 2 attempt to read.
I have checked my hardware in this condition when slide switch shorted it read 5V and open it read 0V through multi meter.
Can someone suggest me what i can do solve above issue.
/*SEQ_A SEQ_ B Output
0 0 8 Set
0 1 16 Set
1 0 24 Set
1 1 32 Set
*/
#define SEQ_A 8
#define SEQ_B 9
unsigned char Flag24 = 0;
unsigned char Flag16 = 0;
unsigned char Flag8 = 0;
unsigned char Flag32 = 0;
unsigned char Flash_Min;
unsigned char Flash_Max;
unsigned char Relay_MinC;
unsigned char Relay_MaxC;
unsigned char Reset_MinC;
unsigned char Reset_MaxC;
unsigned char Ack_MinC;
unsigned char Ack_MaxC;
unsigned char CHK_FAULT_MinC;
unsigned char CHK_FAULT_MaxC;
unsigned char Chk_Fault_Counter = 32;
unsigned char MUTECOUNT;
void SEQ_FUN_CHK() {
if ((digitalRead(8) == 1) && (digitalRead(9) == 1)) {
// 32 window
Flag32 = 1;
Flag24 = 0;
Flag16 = 0;
Flag8 = 0;
Flash_Min = 1;
Flash_Max = 32;
Relay_MinC = 1;
Relay_MaxC = 32;
Ack_MinC = 1;
Ack_MaxC = 32;
Reset_MinC = 1;
Reset_MaxC = 32;
CHK_FAULT_MinC = 1;
CHK_FAULT_MaxC = 32;
Chk_Fault_Counter = 32;
MUTECOUNT = 0;
} else if ((digitalRead(8) == 0) && (digitalRead(9) == 0)) {
// 8 window Both are shorted
Flag24 = 0;
Flag16 = 0;
Flag8 = 1;
Flag32 = 0;
Flash_Min = 25;
Flash_Max = 32;
Relay_MinC = 25;
Relay_MaxC = 31;
Ack_MinC = 25;
Ack_MaxC = 32;
Reset_MinC = 25;
Reset_MaxC = 32;
CHK_FAULT_MinC = 25;
CHK_FAULT_MaxC = 32;
Chk_Fault_Counter = 8;
MUTECOUNT = 24;
} else if ((digitalRead(8) == 1) && (digitalRead(9) == 0)) {
//16 window
Flag32 = 0;
Flag24 = 0;
Flag16 = 1;
Flag8 = 0;
Flash_Min = 17;
Flash_Max = 32;
Relay_MinC = 17;
Relay_MaxC = 32;
Ack_MinC = 17;
Ack_MaxC = 32;
Reset_MinC = 17;
Reset_MaxC = 32;
CHK_FAULT_MinC = 17;
CHK_FAULT_MaxC = 32;
Chk_Fault_Counter = 16;
MUTECOUNT = 16;
} else if ((digitalRead(8) == 0) && (digitalRead(9) == 1)) {
//24 window
Flag32 = 0;
Flag24 = 1;
Flag16 = 0;
Flag8 = 0;
Flash_Min = 9;
Flash_Max = 32;
Relay_MinC = 9;
Relay_MaxC = 32;
Ack_MinC = 9;
Ack_MaxC = 32;
Reset_MinC = 9;
Reset_MaxC = 32;
CHK_FAULT_MinC = 9;
CHK_FAULT_MaxC = 32;
Chk_Fault_Counter = 24;
MUTECOUNT = 8;
}
}
void setup() {
// put your setup code here, to run once:
pinMode(8, INPUT);
pinMode(9, INPUT);
Serial.begin(9600);
SEQ_FUN_CHK();
}
void loop() {
Serial.print("Flash_Max:");
Serial.println(Flash_Max);
Serial.print("Reset_MaxC:");
Serial.println(Reset_MaxC);
Serial.print(" CHK_FAULT_MaxC:");
Serial.println(CHK_FAULT_MaxC);
delay(1000);
}