/*Şifre ile LED Yakma: Arduino’ ya bağlanan 1 LED ve bir keypad bulunacaktır. Keypad’in
üzerindeki numaralar yanda verilen resimdeki gibi olduğu düşünülerek kullanılacaktır.
Keypad’dan 1456# girildiği zaman LED 2 saniye yanıp sönecek şekilde ayarlanmalıdır.*/
int led=13;
const int pinSatir[4]={11,10,9,8};
const int pinSutun[4]={6,5,4,3};
char keys[4][4]={
{'1','2','3','A'},
{'4','5','6','B'},
{'7','8','9','C'},
{'*','0','#','D'}
};
String sifre="1456#";
String girilenSifre="";
int sifreBoyutu=sifre.length();
void setup() {
Serial.begin(9600);
pinMode(led, OUTPUT);
digitalWrite(led, LOW);
for(int i=0;i<4;i++){
pinMode(pinSatir[i], INPUT_PULLUP);//arduino dahili direncini kullandım,satırlar input
}
}
void loop() {
for(int a=0;a<4;a++){
for(int i=0;i<4;i++){
pinMode(pinSutun[i],INPUT);
}
pinMode(pinSutun[a],OUTPUT);
digitalWrite(pinSutun[a],LOW);
for(int b=0;b<4;b++){
if(digitalRead(pinSatir[b])==LOW){
char bas=keys[b][a];
Serial.print(bas);
if(bas=='#'){
girilenSifre+=bas;
if(girilenSifre==sifre){
Serial.print(" Şifre doğru:");
digitalWrite(led, HIGH);
delay(2000);
digitalWrite(led, LOW);
}
else{
Serial.println(" Şifre yanlış");
girilenSifre="";
}
}
else{
girilenSifre+=bas;
if(girilenSifre.length()>=sifreBoyutu){
Serial.println( " Şifre yanlış");
girilenSifre="";
}
}
delay(200);
}
}
}
}