Devre Şeması
Kodlar
#include <Keypad.h>
const 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] = { 13, 12, 11, 10 };
byte colPins[COLS] = { 9, 8, 7, 6 };
Keypad tuslar = Keypad(makeKeymap(keys), rowPins, colPins, ROWS, COLS);
// C++ code
//
#include <Adafruit_LiquidCrystal.h>
Adafruit_LiquidCrystal lcd_1(0);
long gizliSayi = 0;
long girilenSayi = 0;
void setup()
{
lcd_1.begin(16, 2);
lcd_1.setBacklight(1);
lcd_1.setCursor(3, 0);
lcd_1.print("SAYI BULMA");
lcd_1.setCursor(5, 1);
lcd_1.print("OYUNU");
delay(1000);
lcd_1.clear();
randomSeed(analogRead(A0));
gizliSayi = random(1000, 10000);
lcd_1.setCursor(0, 0);
lcd_1.print("Sayiyi Girin:");
}
void loop()
{
char tus = tuslar.getKey();
switch (tus) {
case '0':
girilenSayi = (girilenSayi * 10) + 0;
break;
case '1':
girilenSayi = (girilenSayi * 10) + 1;
break;
case '2':
girilenSayi = (girilenSayi * 10) + 2;
break;
case '3':
girilenSayi = (girilenSayi * 10) + 3;
break;
case '4':
girilenSayi = (girilenSayi * 10) + 4;
break;
case '5':
girilenSayi = (girilenSayi * 10) + 5;
break;
case '6':
girilenSayi = (girilenSayi * 10) + 6;
break;
case '7':
girilenSayi = (girilenSayi * 10) + 7;
break;
case '8':
girilenSayi = (girilenSayi * 10) + 8;
break;
case '9':
girilenSayi = (girilenSayi * 10) + 9;
break;
case 'A':
//A'a basıldıysa Yeni bir sayı ile başla
randomSeed(analogRead(A0));
gizliSayi = random(1000, 10000);
lcd_1.clear();
lcd_1.setCursor(0, 0);
lcd_1.print("Yeni bir sayi");
lcd_1.setCursor(0, 1);
lcd_1.print("tuttum. Hadi bul");
delay(2000);
lcd_1.clear();
lcd_1.setCursor(0, 0);
lcd_1.print("Sayiyi Girin:");
girilenSayi = 0;
break;
case 'B':
//B'a basıldıysa
break;
case 'C':
//C'a basıldıysa
break;
case 'D':
//D'a basıldıysa
break;
case '*':
//*'a basıldıysa
girilenSayi = 0;
lcd_1.setCursor(0, 1);
lcd_1.print(" ");
break;
case '#':
//#'a basıldıysa
if (girilenSayi < gizliSayi) {
lcd_1.setCursor(0, 0);
lcd_1.print("Sayi Kucuk ");
delay(2000);
lcd_1.clear();
lcd_1.setCursor(0, 0);
lcd_1.print("Sayiyi Girin:");
girilenSayi = 0;
} else if (girilenSayi > gizliSayi) {
lcd_1.setCursor(0, 0);
lcd_1.print("Sayi Buyuk ");
delay(2000);
lcd_1.clear();
lcd_1.setCursor(0, 0);
lcd_1.print("Sayiyi Girin:");
girilenSayi = 0;
} else if (girilenSayi == gizliSayi) {
lcd_1.clear();
lcd_1.setCursor(0, 0);
lcd_1.print(" Tebrikler ");
lcd_1.setCursor(0, 1);
lcd_1.print(" SAYIYI BULDUN ");
delay(5000);
lcd_1.setCursor(0, 0);
lcd_1.print("Gizli Sayi: ");
lcd_1.setCursor(0, 1);
lcd_1.print(" ");
}
break;
}
if (girilenSayi > 10000) {
girilenSayi = 0;
lcd_1.setCursor(0, 1);
lcd_1.print(" ");
}
lcd_1.setCursor(0, 1);
lcd_1.print(girilenSayi);
}