138 lines
2.8 KiB
C++
138 lines
2.8 KiB
C++
// Generally, you should use "unsigned long" for variables that hold time
|
|
// The value will quickly become too large for an int to store
|
|
unsigned long previousMillis = 0; // will store last time LED was updated
|
|
|
|
// constants won't change:
|
|
const long interval = 500; // interval at which to blink (milliseconds)
|
|
|
|
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 {
|
|
// 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 jj = 0; jj < 4; jj++)
|
|
{
|
|
if (jj == ii)
|
|
{
|
|
pinMode(buttons[jj], OUTPUT);
|
|
digitalWrite(buttons[jj], LOW);
|
|
}
|
|
else
|
|
{
|
|
pinMode(buttons[jj], INPUT_PULLUP);
|
|
}
|
|
}
|
|
for (int jj = ii; jj < 4; jj++)
|
|
{
|
|
if (!(ii == jj) && !digitalRead(buttons[jj]))
|
|
{
|
|
for (int kk = 3; kk >= 0; kk--)
|
|
{
|
|
if (kk == ii || kk == jj)
|
|
{
|
|
Serial.print(1);
|
|
}
|
|
else
|
|
{
|
|
Serial.print(0);
|
|
}
|
|
}
|
|
Serial.print("\n");
|
|
received_input = true;
|
|
break;
|
|
}
|
|
}
|
|
|
|
|
|
// if (received_input)
|
|
// {
|
|
// break;
|
|
// }
|
|
}
|
|
*/
|