#define PIN_A 16
#define PIN_B 17
#define PIN_C 18
#define PIN_D 19
#define PIN_DA 15
char keys[16] = {
'1','2','3','A',
'4','5','6','B',
'7','8','9','C',
'*','0','#','D'
};
void setup() {
Serial.begin(115200);
pinMode(PIN_A, INPUT);
pinMode(PIN_B, INPUT);
pinMode(PIN_C, INPUT);
pinMode(PIN_D, INPUT);
pinMode(PIN_DA, INPUT);
Serial.println("74C922 Keypad Okuyucu Basladi!");
}
void loop() {
// DA (Data Available) pini HIGH ise tuşa basılmıştır
if (digitalRead(PIN_DA) == HIGH) {
int a = digitalRead(PIN_A);
int b = digitalRead(PIN_B);
int c = digitalRead(PIN_C);
int d = digitalRead(PIN_D);
// 4 bitlik binary değeri birleştir
uint8_t key_val = (d << 3) | (c << 2) | (b << 1) | a;
Serial.printf("Basilan Tus Kodu: %c (Binary: %d%d%d%d)\n", keys[key_val], d, c, b, a);
// Tuş bırakılana kadar kısa bir gecikme (birden fazla okumayı önlemek için)
while (digitalRead(PIN_DA) == HIGH) {
delay(10);
}
}
}