20-11-2017, 20:49
Cześć!
Mam problem napisałem kod (kod niżej), który ma obsługiwać keypad 4x4 narazie napisałem kod do dwóch górnych wierszy. Po wgraniu kodu po nackiskaniu przycisków z pierwszego wiersza wszystko jest ok, a gdy klikne drugi wiersz np. pięć to wyświetla się 52 albo 25.
Mam problem napisałem kod (kod niżej), który ma obsługiwać keypad 4x4 narazie napisałem kod do dwóch górnych wierszy. Po wgraniu kodu po nackiskaniu przycisków z pierwszego wiersza wszystko jest ok, a gdy klikne drugi wiersz np. pięć to wyświetla się 52 albo 25.
Kod:
int a;
int b;
int c;
int d;
int e;
char ser1;
char ser2;
char ser3;
char ser4;
void setup() {
// put your setup code here, to run once:
pinMode(11, OUTPUT);
pinMode(10, OUTPUT);
pinMode(9, OUTPUT);
pinMode(8, OUTPUT);
pinMode(5, INPUT_PULLUP);
pinMode(4, INPUT_PULLUP);
pinMode(3, INPUT_PULLUP);
pinMode(2, INPUT_PULLUP);
digitalWrite(11, HIGH);
digitalWrite(10, HIGH);
digitalWrite(9, HIGH);
digitalWrite(8, HIGH);
Serial.begin(9600);
b = 1;
e = 1;
}
void loop() {
digitalWrite(11, LOW);
d = 0;
if (d == 0){
digitalWrite(11, LOW);
ser1 = digitalRead(5);
ser2 = digitalRead(4);
ser3 = digitalRead(3);
ser4 = digitalRead(2);
if (ser1 == 0 && d == 0 ) {
a = 1;
Serial.print("1");
delay(100);
}
else if (ser2 == 0 && d == 0 ) {
a = 2;
Serial.print("2");
delay(100);
}
else if (ser3 == 0 && d == 0 ) {
a = 3;
Serial.print("3");
delay(100);
}
else if (ser4 == 0 && d == 0 ) {
a = "a";
Serial.print("a");
delay(100);
}
d =1;
}
if(d == 1)
{
digitalWrite(11, HIGH);
digitalWrite(10, LOW);
ser1 = digitalRead(5);
ser2 = digitalRead(4);
ser3 = digitalRead(3);
ser4 = digitalRead(2);
if (ser1 == 0 ) {
a = 4;
Serial.print("4");
delay(100);
}
else if (ser2 == 0) {
a = 5;
Serial.print("5");
delay(100);
}
else if (ser3 == 0) {
a = 6;
Serial.print("6");
delay(100);
}
else if (ser4 == 0) {
a = "b";
Serial.print("b");
delay(100);
}
d = 0;
}
}