scrapeboard/serial/serial2/serial2.ino

65 lines
1.3 KiB
C++

// constants won't change:
const long interval = 25; // 25 ms * 6 tests * 2 = 200 ms means 5 loops per second
int pushButton1 = 2;
int pushButton2 = 4;
int pushButton3 = 6;
int pushButton4 = 11;
int buttons[4] = {
pushButton1,
pushButton2,
pushButton3,
pushButton4
};
void setup() {
// set the digital pin as output:
Serial.begin(9600);
pinMode(pushButton1, OUTPUT);
digitalWrite(pushButton1, LOW);
pinMode(pushButton2, INPUT_PULLUP);
pinMode(pushButton3, INPUT_PULLUP);
pinMode(pushButton4, INPUT_PULLUP);
}
bool testConnection2(int A, int B) {
for (int i = 0; i < 4; i++) {
if (i == A) {
pinMode(buttons[i], OUTPUT);
digitalWrite(buttons[i], LOW);
} else {
pinMode(buttons[i], INPUT_PULLUP);
}
}
delay(interval);
if (!digitalRead(buttons[B])) {
return true;
} else {
return false;
}
}
bool testConnection(int A, int B) {
return testConnection2(A, B) && testConnection2(B, A);
}
void loop() {
if (testConnection(0, 1)) {
Serial.println("0011");
} else if (testConnection(0, 2)) {
Serial.println("0101");
} else if (testConnection(0, 3)) {
Serial.println("1001");
} else if (testConnection(1, 2)) {
Serial.println("0110");
} else if (testConnection(1, 3)) {
Serial.println("1010");
} else if (testConnection(2, 3)) {
Serial.println("1100");
}
}