1. Giriş
Arduino ile çeşitli giriş cihazları kullanarak projeler geliştirilebilir. Bu cihazlardan biri de 3×4 Keypad yani 12 tuşlu (0-9, *, #) tuş takımıdır. Kullanıcıdan sayısal veri almak, şifre girişleri yapmak ya da menü kontrolü sağlamak için kullanılır.
Bu makalede 3×4 Keypad’in Arduino ile nasıl kullanılacağı, gerekli devre bağlantıları, örnek kod ve kullanım senaryoları ele alınacaktır.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 |
#include <Keypad.h> int a=6; int b=7; int c=8; int d=9; int e=10; int f=11; int g=12; const byte ROWS = 4; const byte COLS = 3; char keys[ROWS][COLS] = { {'1','2','3'}, {'4','5','6'}, {'7','8','9'}, {'*','0','#'} }; byte rowPins[ROWS] = {2, 3, 4,5}; //connect to the row pinouts of the keypad byte colPins[COLS] = {A0,A1,A2}; //connect to the column pinouts of the keypad Keypad keypad = Keypad( makeKeymap(keys), rowPins, colPins, ROWS, COLS ); void setup(){ Serial.begin(9600); pinMode(a,OUTPUT); pinMode(b,OUTPUT); pinMode(c,OUTPUT); pinMode(d,OUTPUT); pinMode(e,OUTPUT); pinMode(f,OUTPUT); pinMode(g,OUTPUT); } void loop(){ char key = keypad.getKey(); if (key){ Serial.println(key); if(key=='0') { sifir(); } if(key=='8') { sekiz(); } } } void sifir() { Serial.println("Buraya geldi."); digitalWrite(a,1); digitalWrite(b,1); digitalWrite(c,1); digitalWrite(d,1); digitalWrite(e,1); digitalWrite(f,1); digitalWrite(g,0); } void sekiz() { Serial.println("Buraya geldi."); digitalWrite(a,1); digitalWrite(b,1); digitalWrite(c,1); digitalWrite(d,1); digitalWrite(e,1); digitalWrite(f,1); digitalWrite(g,1); } |
Keypad ile şifreli giriş uygulamasının arduino ile kodlanmış versiyonunu aşağıda bulabilirsiniz.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 |
#include <Keypad.h> // 7-segment display pinleri int a = 6; int b = 7; int c = 8; int d = 9; int e = 10; int f = 11; int g = 12; // LED pinleri const int greenLed = A3; const int redLed = A4; // Keypad ayarları const byte ROWS = 4; const byte COLS = 3; char keys[ROWS][COLS] = { {'1','2','3'}, {'4','5','6'}, {'7','8','9'}, {'*','0','#'} }; byte rowPins[ROWS] = {2, 3, 4, 5}; // SiyahPinler - Keypad satır pinleri byte colPins[COLS] = {A0, A1, A2}; // Keypad sütun pinleri Keypad keypad = Keypad(makeKeymap(keys), rowPins, colPins, ROWS, COLS); // Şifre ayarları const String password = "1234"; // Doğru şifre String inputPassword; // Kullanıcının girdiği şifre void setup(){ Serial.begin(9600); // 7-segment display pinleri pinMode(a, OUTPUT); pinMode(b, OUTPUT); pinMode(c, OUTPUT); pinMode(d, OUTPUT); pinMode(e, OUTPUT); pinMode(f, OUTPUT); pinMode(g, OUTPUT); // LED pinleri pinMode(greenLed, OUTPUT); pinMode(redLed, OUTPUT); // Başlangıçta LED'leri söndür digitalWrite(greenLed, LOW); digitalWrite(redLed, LOW); // 7-segment display'i temizle clearDisplay(); } void loop(){ char key = keypad.getKey(); if (key){ Serial.println(key); // '*' şifre girişini başlatır if (key == '*') { inputPassword = ""; // Şifreyi sıfırla clearDisplay(); } // '#' şifre girişini bitirir ve kontrol eder else if (key == '#') { if (inputPassword == password) { // Doğru şifre - yeşil LED yanar digitalWrite(greenLed, HIGH); digitalWrite(redLed, LOW); Serial.println("Correct Password!"); } else { // Yanlış şifre - kırmızı LED yanar digitalWrite(greenLed, LOW); digitalWrite(redLed, HIGH); Serial.println("Wrong Password!"); } inputPassword = ""; // Şifreyi sıfırla } // Sayısal tuşlar şifreye eklenir else { inputPassword += key; // Tuş değerini şifreye ekle // Girilen sayıyı 7-segment'te göster displayNumber(key); } } } // 7-segment display'i temizle void clearDisplay() { digitalWrite(a, 0); digitalWrite(b, 0); digitalWrite(c, 0); digitalWrite(d, 0); digitalWrite(e, 0); digitalWrite(f, 0); digitalWrite(g, 0); } // 7-segment display'de sayı göster void displayNumber(char number) { clearDisplay(); // Önce ekranı temizle switch(number) { case '0': sifir(); break; case '1': bir(); break; case '2': iki(); break; case '3': uc(); break; case '4': dort(); break; case '5': bes(); break; case '6': alti(); break; case '7': yedi(); break; case '8': sekiz(); break; case '9': dokuz(); break; default: clearDisplay(); break; } } // Rakam fonksiyonları void sifir() { digitalWrite(a, 1); digitalWrite(b, 1); digitalWrite(c, 1); digitalWrite(d, 1); digitalWrite(e, 1); digitalWrite(f, 1); digitalWrite(g, 0); } void bir() { digitalWrite(a, 0); digitalWrite(b, 1); digitalWrite(c, 1); digitalWrite(d, 0); digitalWrite(e, 0); digitalWrite(f, 0); digitalWrite(g, 0); } void iki() { digitalWrite(a, 1); digitalWrite(b, 1); digitalWrite(c, 0); digitalWrite(d, 1); digitalWrite(e, 1); digitalWrite(f, 0); digitalWrite(g, 1); } void uc() { digitalWrite(a, 1); digitalWrite(b, 1); digitalWrite(c, 1); digitalWrite(d, 1); digitalWrite(e, 0); digitalWrite(f, 0); digitalWrite(g, 1); } void dort() { digitalWrite(a, 0); digitalWrite(b, 1); digitalWrite(c, 1); digitalWrite(d, 0); digitalWrite(e, 0); digitalWrite(f, 1); digitalWrite(g, 1); } void bes() { digitalWrite(a, 1); digitalWrite(b, 0); digitalWrite(c, 1); digitalWrite(d, 1); digitalWrite(e, 0); digitalWrite(f, 1); digitalWrite(g, 1); } void alti() { digitalWrite(a, 1); digitalWrite(b, 0); digitalWrite(c, 1); digitalWrite(d, 1); digitalWrite(e, 1); digitalWrite(f, 1); digitalWrite(g, 1); } void yedi() { digitalWrite(a, 1); digitalWrite(b, 1); digitalWrite(c, 1); digitalWrite(d, 0); digitalWrite(e, 0); digitalWrite(f, 0); digitalWrite(g, 0); } void sekiz() { digitalWrite(a, 1); digitalWrite(b, 1); digitalWrite(c, 1); digitalWrite(d, 1); digitalWrite(e, 1); digitalWrite(f, 1); digitalWrite(g, 1); } void dokuz() { digitalWrite(a, 1); digitalWrite(b, 1); digitalWrite(c, 1); digitalWrite(d, 1); digitalWrite(e, 0); digitalWrite(f, 1); digitalWrite(g, 1); } |
İlk Yorumu Siz Yapın