Görseldeki uygulamada tuş takımından doğru şifre girildiğinde step motor 90 °C’lik dönüş yapar. Geçerli ve geçersiz şifreler için farklı ses sinyalleri verir.


#include <Keypad.h> //Tuş takımı kütüphanesi.
byte hane = 0;
char sifre[] = "123ABC"; // Kullanılacak şifre.
char giris[sizeof(sifre)]; //Şifre uzunluğu kadar dizi oluştur.
const byte buzzer = 1; // Buzzer pini.
//---Tuş takımı ayarları.---
const byte satir = 4; //Dört satır.
const byte sutun = 4; //Dört sütün.
char tusDizilimi[satir][sutun] = {//Tuş takımındaki sebollerin dizilimini tanımlama.
{'1', '2', '3', 'A'},
{'4', '5', '6', 'B'},
{'7', '8', '9', 'C'},
{'*', '0', '#', 'D'}
};
byte satirPinleri[satir] = {9, 8, 7, 6};
//{R1, R2, R3, R4} Satır pinlerinin Arduino pinlerine bağlantısı.
byte sutunPinleri[sutun] = {5, 4, 3, 2};
//{C1, C2, C3, C4} Sütün pinlerinin Arduino pinlerine bağlantısı.
//tusTakimi adında nesne oluşturma.
Keypad tusTakimi = Keypad( makeKeymap(tusDizilimi), satirPinleri, sutunPinleri, satir, sutun);
void setup() {
pinMode(buzzer, OUTPUT); // Buzzer.
pinMode(10, OUTPUT); // Step motor pinleri.
pinMode(11, OUTPUT);
pinMode(12, OUTPUT);
pinMode(13, OUTPUT);
Serial.begin(9600);
Serial.println("Lütfen şifrenizi giriniz: ");
}
void loop() {
char tus = tusTakimi.waitForKey(); //Tuşa basılana kadar bekle.
Serial.print(tus); //Basılan tuşu ekrana yazdır.
giris[hane] = tus; //Sırayla her tuşu giris dizisine yükle.
hane++;
if (hane == sizeof(sifre) - 1) { //Şifre uzunluğu kadar tuşa basıldığında...
if (!strcmp(giris, sifre)) { //İki diziyi karşılaştır. Şifre doğruysa yapılacaklar...
Serial.println("\nŞifre doğru. Kapı açıldı");
digitalWrite(buzzer, 1); // Buzzer bir saniye çalar.
delay(1000);
digitalWrite(buzzer, 0);
stepMotor(); // Step motor çalıştıran fonksiyonu çağır.
Serial.println("Lütfen şifrenizi giriniz: ");
}
else { //Şifre yanlışsa yapılacaklar...
Serial.println("\nŞifre yanlış. Lütfen tekrar deneyiniz.");
digitalWrite(buzzer, 1); // Geçersiz kart için buzzer sesi.
delay(200);
digitalWrite(buzzer, 0);
delay(200);
digitalWrite(buzzer, 1);
delay(200);
digitalWrite(buzzer, 0);
}
hane = 0;
}
}
void stepMotor() { // Step motor Yaklaşık 90° döner.
int x, adimSayisi = 500, sure = 2;
for (x = 0; x < adimSayisi / 4; x++) {
for (byte i = 10; i <= 13; i++) { //Sağa dön.
digitalWrite(i, 1);
delay(sure);
digitalWrite(i, 0);
}
}
delay(1000); // Kapı açık kalma süresi.
for (x = 0; x < adimSayisi / 4; x++) {
for (byte i = 13; i >= 10; i--) { //Sola dön.
digitalWrite(i, 1);
delay(sure);
digitalWrite(i, 0);
}
}
}
#include <Keypad.h> // Tuş takımı kütüphanesi. V3.1.1
#include <Servo.h> // Dahili Servo kütüphanesi v1.1.8
Servo servo; // servo isimli nesne oluşturuldu.
const byte buzzer = 1, yesilLED = 10, kirmiziLED = 11;
byte hane = 0;
char sifre[] = "123ABC"; // Kullanılacak şifre.
char giris[sizeof(sifre)]; //Şifre uzunluğu kadar dizi oluştur.
//---Tuş takımı ayarları.---
const byte satir = 4; //Dört satır.
const byte sutun = 4; //Dört sütün.
char tusDizilimi[satir][sutun] = {//Tuş takımındaki sebollerin dizilimini tanımlama.
{'1', '2', '3', 'A'},
{'4', '5', '6', 'B'},
{'7', '8', '9', 'C'},
{'*', '0', '#', 'D'}
};
byte satirPinleri[satir] = {9, 8, 7, 6};
//{R1, R2, R3, R4} Satır pinlerinin Arduino pinlerine bağlantısı.
byte sutunPinleri[sutun] = {5, 4, 3, 2};
//{C1, C2, C3, C4} Sütün pinlerinin Arduino pinlerine bağlantısı.
//tusTakimi adında nesne oluşturma.
Keypad tusTakimi = Keypad( makeKeymap(tusDizilimi), satirPinleri, sutunPinleri, satir, sutun);
void setup() {
pinMode(buzzer, OUTPUT);
pinMode(yesilLED, OUTPUT);
pinMode(kirmiziLED, OUTPUT);
servo.attach(12); // Servo motor 12d numaralı PWM çıkışına bağlı.
Serial.begin(9600);
Serial.println("Lütfen şifrenizi giriniz: ");
}
void loop() {
char tus = tusTakimi.waitForKey(); //Tuşa basılana kadar bekle.
Serial.print(tus); //Basılan tuşu ekrana yazdır.
giris[hane] = tus; //Sırayla her tuşu giris dizisine yükle.
hane++;
if (hane == sizeof(sifre) - 1) { //Şifre uzunluğu kadar tuşa basıldığında...
if (!strcmp(giris, sifre)) { //İki diziyi karşılaştır. Şifre doğruysa yapılacaklar...
Serial.println("\nŞifre doğru. Kapı açıldı");
digitalWrite(yesilLED, 1); // Yeşil LED'i yak.
digitalWrite(buzzer, 1); // Buzzer bir saniye çalar.
delay(1000);
digitalWrite(buzzer, 0);
digitalWrite(yesilLED, 0); // Yeşil LED'i söndür.
kapiAc(); // kapiAc fonksiyonunu çağır.
Serial.println("Lütfen şifrenizi giriniz: ");
}
else { //Şifre yanlışsa yapılacaklar...
Serial.println("\nŞifre yanlış. Lütfen tekrar deneyiniz.");
digitalWrite(kirmiziLED, 1); // Kırmızı LED'i yak.
digitalWrite(buzzer, 1); // Geçersiz şifre için buzzer sesi.
delay(200);
digitalWrite(buzzer, 0);
delay(200);
digitalWrite(buzzer, 1);
delay(200);
digitalWrite(buzzer, 0);
digitalWrite(kirmiziLED, 0); // Kırmızı LED'i söndür.
}
hane = 0;
}
}
void kapiAc() {
servo.write(90); //Servo motoru 180 dereceye getirir.
delay(3000);
servo.write(0); //Servo motoru 0 dereceye getirir.
delay(1000);
}
No responses yet