int bitVal;
String stringBit;
String stringBinary;
long binaryNumber;
int decimalNumber;
void setup() {
pinMode(13, OUTPUT);
Serial.begin(9600);
//Sets pin 3 to pin 10 as input
for (int x = 2; x < 12; x++) {
pinMode(x, INPUT);
}
}
void loop() {
//Reads the Binary number from the DIP Switch
for (int x = 2; x < 12; x++) {
bitVal = digitalRead(x);
stringBit = String(bitVal);
stringBinary = stringBinary + stringBit;
binaryNumber = stringBinary.toInt();
}
//Function to convert Binary to Decimal
decimalNumber = convertBinaryToDecimal(binaryNumber);
Serial.print("Binary: ");
Serial.print(stringBinary);
Serial.print(" ");
//Prints the Decimal number on the Serial Monitor
Serial.print("Decimal: ");
Serial.println(decimalNumber);
if(decimalNumber==308) {
digitalWrite(13, HIGH);
}
else
digitalWrite(13, LOW);
//Resets all the variables
binaryNumber = 0;
bitVal = 0;
stringBit = "";
stringBinary = "";
}
//Function to convert Binary to Decimal
long convertBinaryToDecimal(long binary) {
long number = binary;
long decimalVal = 0;
long baseVal = 1;
long tempVal = number;
long previousDigit;
while (tempVal) {
//Converts Binary to Decimal
previousDigit = tempVal % 10;
tempVal = tempVal / 10;
decimalVal += previousDigit * baseVal;
baseVal = baseVal * 2;
}
//Returns the Decimal number
return decimalVal;
}