bidirectional

This commit is contained in:
Frank DeMarco 2018-08-01 20:08:25 -04:00
parent b043be4287
commit 917fb61e7d
2 changed files with 83 additions and 12 deletions

View File

@ -9,3 +9,4 @@
5999999 5999999
5999999 5999999
293967 293967
283074

View File

@ -1,17 +1,21 @@
// Generally, you should use "unsigned long" for variables that hold time // Generally, you should use "unsigned long" for variables that hold time
// The value will quickly become too large for an int to store // The value will quickly become too large for an int to store
unsigned long previousMillis = 0; // will store last time LED was updated unsigned long previousMillis = 0; // will store last time LED was updated
// constants won't change: // constants won't change:
const long interval = 500; // interval at which to blink (milliseconds) const long interval = 500; // interval at which to blink (milliseconds)
int pushButton1 = 2; int pushButton1 = 2;
int pushButton2 = 4; int pushButton2 = 4;
int pushButton3 = 6; int pushButton3 = 6;
int pushButton4 = 11; int pushButton4 = 11;
int buttons[4] = {pushButton1, pushButton2, pushButton3, pushButton4}; int buttons[4] = {
pushButton1,
pushButton2,
pushButton3,
pushButton4
};
void setup() { void setup() {
// set the digital pin as output: // set the digital pin as output:
@ -23,8 +27,72 @@ void setup() {
pinMode(pushButton4, INPUT_PULLUP); pinMode(pushButton4, INPUT_PULLUP);
} }
void loop() { bool testConnection2(int A, int B) {
bool received_input = false; for (int i = 0; i < 4; i++) {
if (i == A) {
pinMode(buttons[i], OUTPUT);
digitalWrite(buttons[i], LOW);
} else {
// digitalWrite(buttons[i], HIGH);
pinMode(buttons[i], INPUT_PULLUP);
}
}
// delay(10);
if (!digitalRead(buttons[B])) {
return true;
} else {
return false;
}
}
bool testConnection(int A, int B) {
return testConnection2(A, B) && testConnection2(B, A);
}
// int lastNumber = -1;
void loop() {
if (testConnection(0, 1)) {
// if (lastNumber != 01) {
// lastNumber = 01;
Serial.println("0011");
// }
} else if (testConnection(0, 2)) {
// if (lastNumber != 02) {
// lastNumber = 02;
Serial.println("0101");
// }
} else if (testConnection(0, 3)) {
// if (lastNumber != 03) {
// lastNumber = 03;
Serial.println("1001");
// }
} else if (testConnection(1, 2)) {
// if (lastNumber != 12) {
// lastNumber = 12;
Serial.println("0110");
// }
} else if (testConnection(1, 3)) {
// if (lastNumber != 13) {
// lastNumber = 13;
Serial.println("1010");
// }
} else if (testConnection(2, 3)) {
// if (lastNumber != 23) {
// lastNumber = 23;
Serial.println("1100");
// }
// } else {
// if (lastNumber != 0) {
// lastNumber = 0;
// Serial.println("0000");
// }
}
}
/*
for (int ii = 0; ii < 4; ii++) for (int ii = 0; ii < 4; ii++)
{ {
for (int jj = 0; jj < 4; jj++) for (int jj = 0; jj < 4; jj++)
@ -58,10 +126,12 @@ void loop() {
received_input = true; received_input = true;
break; break;
} }
} }
if (received_input)
{
break; // if (received_input)
} // {
// break;
// }
} }
} */