// Arduino pins used for the LEDs
#define LED1 13
#define LED2 12
#define LED3 11
#define LED4 10
#define LED5 9
#define LED6 8
#define LED7 7
#define LED8 6
// Arduino pins used for the switches
#define S1 16
#define S2 15
#define S3 14
#define S4 0
#define S5 2
#define S6 3
#define S7 4
#define S8 5
// State of each switch (0 or 1)
int s1state;
int s2state;
int s3state;
int s4state;
int s5state;
int s6state;
int s7state;
int s8state;
int dipValues[8];
int convertToDecimal(int dipSwitch[8]);
void setup() {
// pins for LEDs are outputs
pinMode(LED1, OUTPUT);
pinMode(LED2, OUTPUT);
pinMode(LED3, OUTPUT);
pinMode(LED4, OUTPUT);
pinMode(LED5, OUTPUT);
pinMode(LED6, OUTPUT);
pinMode(LED7, OUTPUT);
pinMode(LED8, OUTPUT);
// pins for switches are inputs
pinMode(S1, INPUT);
pinMode(S2, INPUT);
pinMode(S3, INPUT);
pinMode(S4, INPUT);
pinMode(S5, INPUT);
pinMode(S6, INPUT);
pinMode(S7, INPUT);
pinMode(S8, INPUT);
// setup serial port
Serial.begin(9600);
Serial.println("Serial port open");
}
void loop() {
dipValues[0] = digitalRead(S1);
Serial.println(dipValues[0]);
dipValues[1] = digitalRead(S2);
dipValues[2] = digitalRead(S3);
dipValues[3] = digitalRead(S4);
dipValues[4] = digitalRead(S5);
dipValues[5] = digitalRead(S6);
dipValues[6] = digitalRead(S7);
dipValues[7] = digitalRead(S8);
int dipDecValue = convertToDecimal(dipValues);
if (dipDecValue == 187)
{
Serial.println("true");
}
/*
digitalWrite(LED1, s1state);
digitalWrite(LED2, s2state);
digitalWrite(LED3, s3state);
digitalWrite(LED4, s4state);
digitalWrite(LED5, s5state);
digitalWrite(LED6, s6state);
digitalWrite(LED7, s7state);
digitalWrite(LED8, s8state);
*/
/*
Serial.println("s1 state = " + s1state);
Serial.println("s2 state = " + s2state);
Serial.println("s3 state = " + s3state);
Serial.println("s4 state = " + s4state);
Serial.println("s5 state = " + s5state);
Serial.println("s6 state = " + s6state);
Serial.println("s7 state = " + s7state);
Serial.println("s8 state = " + s8state);
*/
Serial.println();
}
int convertToDecimal(int dipSwitch[8])
{
long int binaryNumber = 0, hexadecimal = 0, multiplier = 1, j = 1, remain;
int p, i;
for (i = 0; i < 8; i++) {
p = 10;
binaryNumber *= p;
binaryNumber += dipSwitch[8];
}
while (binaryNumber != 0)
{
remain = binaryNumber % 10;
hexadecimal = hexadecimal + remain * j;
j = j * 2;
binaryNumber = binaryNumber / 10;
}
return hexadecimal;
}