Bu proje, 4x4 Keypad modülünün çalışma prensibini anlamayı ve Arduino ile nasıl kullanılabileceğini öğretmeyi amaçlar. Tuşlara bastığında Arduino’nun hangi satır ve sütunun temas ettiğini algılayarak tuş değerini belirlemesi, klavye mantığını öğrenmek açısından oldukça faydalıdır.
| Malzeme | Açıklama |
|---|---|
| Arduino UNO | Proje kontrol kartı |
| 4x4 Keypad | Tuş girişi için |
| Jumper Kablolar | Bağlantı için |
| Breadboard | Devre kurulum yüzeyi |
| Keypad Pini | Arduino Pini |
|---|---|
| R1 | 2 |
| R2 | 3 |
| R3 | 4 |
| R4 | 5 |
| C1 | 6 |
| C2 | 7 |
| C3 | 8 |
| C4 | 9 |
Arduino IDE’ye “Keypad.h” kütüphanesi eklenmelidir.
Kütüphaneyi eklemek için şu adımları takip et:
#includeconst byte ROWS = 4; const byte COLS = 4; char keys[ROWS][COLS] = { {'1','2','3','A'}, {'4','5','6','B'}, {'7','8','9','C'}, {'*','0','#','D'} }; byte rowPins[ROWS] = {2, 3, 4, 5}; byte colPins[COLS] = {6, 7, 8, 9}; Keypad keypad = Keypad(makeKeymap(keys), rowPins, colPins, ROWS, COLS); void setup() { Serial.begin(9600); } void loop() { char key = keypad.getKey(); if (key) { Serial.print("Basilan tus: "); Serial.println(key); } }
Keypad, satır (Row) ve sütun (Column) şeklinde düzenlenmiş bir matristir. Arduino bir satıra HIGH sinyali gönderip sütunları dinleyerek hangi tuşun basıldığını tespit eder.
| C1 | C2 | C3 | C4 | |
|---|---|---|---|---|
| R1 | 1 | 2 | 3 | A |
| R2 | 4 | 5 | 6 | B |
| R3 | 7 | 8 | 9 | C |
| R4 | * | 0 | # | D |
Keypad’i breadboard üzerine yerleştir ve jumper kablolarla Arduino’ya bağla. Dilersen modülü çift taraflı bant yardımıyla sabitleyebilirsin.
Arduino IDE’de Serial Monitor’ü aç (Ctrl + Shift + M) ve 9600 baud hızını seç. Tuşlara bastığında aşağıdaki gibi çıktılar görürsün:
Basilan tus: 1 Basilan tus: 5 Basilan tus: A
| Sorun | Neden | Çözüm |
|---|---|---|
| ‘Keypad.h’ bulunamadı | Kütüphane yüklenmemiş | Sketch → Include Library → Manage Libraries... adımlarını izleyip "Keypad" kütüphanesini yükle. |
| Tuşlara basınca tepki yok | Bağlantı hatası | Satır ve sütun pinlerinin sırasını kontrol et. |
| Yanlış karakter okunuyor | Row ve Column pinleri karışmış | rowPins[] ve colPins[] dizilerini kontrol ederek doğru sırayla bağla. |
| Seri monitörde karışık karakterler | Yanlış baud değeri | Serial Monitor’de 9600 baud seçildiğinden emin ol. |
Sude Karaca