Bu projede 4×3 tuş takımı ve LCD ekran kullanılarak bir şifreli kapı kilit sistemi gerçekleştireceğiz.Ayrıca buzzer kullanarak kapı açılıp kapandığında ve tuşlara basıldığında bir dıt sesi ekleyip yeşil ev kırmızı led de kapının durumuna göre yanıp sönme işlemini gerçekleştiriceğiz.Bu projemizi kapıya monte ettiğimizde artık sizinde bir şifreli kapı kilidiniz olacaktır.
Projenin çalışmasından kısa bahsetmek istiyorum. Projemiz 4×3 tuş takımı, lcd ekran, buzzer ve ledlerimizden oluşmakta.Şifrenin arduino EEPROM'unda kaydedilerek, girilen her tuşun buzzer tarafından bir ses veremesi ve bu işlemin görsel kısmını da LCD ekranımızda yasıtılmasıyla şifremiz girilecektir. Ayrıca şifrenin doğru girildiğinde yeşil ledin yanması, yanlış girildiğinde ise kırmızı ledin yanmasıyla birlikte buzzer dan ses verilecektir. Projemize ek olarak eklenecek servo motor kapının açılması için eklenebilir ve hoparlör yada alarm sistemi ile şifreyi yanlış girmeniz halinde alarmı çalıştırmayı sağlayabilirsiniz.
Sahip olmamız gereken yetenekler ;
· Lehim yapabilme
· Devre şeması okuyabilme
· Arduino programlama
Malzemeler ;
· Arduino ( Uno,Mega )
· 4x3 Membran Tuş takımı ( Keypad )
· Yaklaşık 50 Adet Erkek-Erkek ve Erkek-Dişi Jumper Kablo
· Arduino 16x2 LCD Display Ekran
· 1 Adet Buzzer
· 1 Adet kırmızı 1 Adet yeşil Led
· Havya
· Lehim
· 1 adet 2.2K direnç (1/4 watt)
· 1 adet 10k ohm direnç (1/4 watt)
· 1 adet 1M ohm direnç (1/4 watt)
· 1 adet 1M ohm direnç (1/4 watt)
Kod Blogu;
#include "Keypad.h" // Tuş takımı için gerekli kütüphane indirmeniz gerekmektedir.
#include <Wire.h> // Haaberleşme için gerekli kütüphane
#include <LiquidCrystal_I2C.h> //LCD ekran için gerekli kütüphane
#define buzzer 15 //Buzzerin bulunduğu pin değişkeni
int led=13; //Yeşil Led 13. pine giricek
int led2=12; //Kırmızı Led 12. pine giricek
LiquidCrystal_I2C lcd(0x27, 16, 2); //LCD ekranın pinleri
char okunan=0; //Kullanılan değişkenler
const byte satir = 4; //4 satir
const byte sutun = 3; //3 sutun
char password[4];
char pass[4],pass1[4];
int i=0;
char rakamlar[satir][sutun] = { // Keypadin tuşlarını tanımlama
{'1','2','3'},
{'4','5','6'},
{'7','8','9'},
{'*','0','#'}
};
byte satirpin[satir] = {8, 7, 6, 5}; // Tanımlanan tuşlar için satır pinleri
byte sutunpin[sutun] = {4, 3, 2}; // Tanımlanan tuşlar için sutun pinleri
Keypad butonlar = Keypad(makeKeymap(rakamlar), satirpin, sutunpin, satir, sutun); // Çağırma
void setup() // Arduino ilk çalıştığında yapılması gereken işlemler ve bulundukları pinler
lcd.begin();
lcd.backlight();
pinMode(led, OUTPUT); // Yeşil ledin arduinonun 13 pindeki çıkısı
pinMode(buzzer, OUTPUT); //Buzzerin yukarıdaki degiskende belirtiği 15 pin yeri
lcd.print(" Elektronik "); //2 bölümden oluşan ledin üst kısmında yazan yazı
lcd.setCursor(0,1); //LCD nin alt kısmına geçiş
lcd.print(" Sifreli Kilit "); //2 bölümden oluşan ledin alt kısmında yazan yazı
delay(2000); //2 bekleme süresi
lcd.clear(); //LCD ekranın temizlenmesi
lcd.print("Sifreyi Girin: ");
/*
bu kod ilk şifre belirleniken aktif edilecektir.
for(int j=0;j<4;j++)
EEPROM.write(j, j+49);
for(int j=0;j<4;j++)
pass[j]=EEPROM.read(j);
*/
}
void loop() // Ana Fonksiyon
{
okunan = butonlar.getKey(); // Girilen tuşların okunması
if(okunan=='#')
sifredegisim(); // # basıldığında şifre değiştirmesi için aşağıda bulunan fonksiyonu çağırması
if (okunan)
{
password[i++]=okunan;
lcd.print(okunan);
tussesi();
}
if(i==4)
{
for(int j=0;j<4;j++)
pass[j]=EEPROM.read(j); // şifrenin eeproma kaydedilmesi
if(!(strncmp(password, pass,4))) // karsılastırma 2 string ifadeyi
{
digitalWrite(led, HIGH); // Yeşil ledin yanması
tussesi(); // tışa basılırken buzzer sesi
lcd.clear(); // lcd ekranını sıfırlayıp
lcd.print("Sifre onaylandi!"); // Ekrana yazını yazılması
delay(2000);
lcd.setCursor(0,1); // lcd ekranın alt kızmı
lcd.clear();
lcd.print("Sifreyi Girin:");
lcd.setCursor(0,1);
i=0;
digitalWrite(led, LOW); // ledin sönmesi
}
else
{
digitalWrite(buzzer, HIGH); // buzzer sesi
lcd.clear();
lcd.print("Tekrar deneyin...");
digitalWrite(led2, HIGH); // Kırmızı ledin yanması
lcd.setCursor(0,1);
delay(1000);
digitalWrite(led2, LOW); // Kırmızı ledin sönmesi
lcd.clear();
lcd.print("Sifreyi girin:");
lcd.setCursor(0,1);
i=0;
digitalWrite(buzzer, LOW); // buzzerin susması
}
}
}
void sifredegisim() // Şifre değişim Fonksiyonu
{
int j=0;
lcd.clear();
lcd.print("Gecerli Parola Girin "); //Mevcut şifreyi girmemizi istiyor
lcd.setCursor(0,1);
while(j<4)
{
char key=butonlar.getKey();
if(key)
{
pass1[j++]=key;
lcd.print(key);
tussesi();
}
key=0;
}
delay(500);
if((strncmp(pass1, pass, 4))) // karşılaştırma aynıysa mesaj veriyor
{
lcd.clear();
lcd.print("Hatali...");
digitalWrite(led2, HIGH);
lcd.setCursor(0,1);
lcd.print("Tekrar deneyin");
delay(1000);
digitalWrite(led2, LOW);
}
else
{
j=0;
lcd.clear();
lcd.print("Yeni Parola Girin:"); //Yeni parola giriyoruz
lcd.setCursor(0,1);
while(j<4)
{
char key=butonlar.getKey();
if(key)
{
pass[j]=key;
lcd.print(key);
EEPROM.write(j,key);
tussesi();
}
}
lcd.print(" Basarili......");
delay(1000);
}
lcd.clear();
lcd.print("Sifreyi Girin:");
lcd.setCursor(0,1);
okunan=0;
}
void tussesi() // tusa basıldığında buzzerin ses çıkarma fonksiyonu
{
digitalWrite(buzzer, HIGH);
delay(30);
digitalWrite(buzzer, LOW);
}
Ben bu devreyi arduino uno ile yapcam yazılım da ne gibi değişiklikler yapmalıyım
YanıtlaSilBen bu devreyi arduino uno ile yapcam yazılım da ne gibi değişiklikler yapmalıyım
YanıtlaSilSir..not showing onaylandi..?
YanıtlaSilHocam değişken aradım şifre yi girdik 1 ettim sifreden sonra cihaz çalıştırmak için içiçe if yada while da iki yada üç lu şifre yada iki tuş çıkış versin istiyorum yapamadım yardımcı olur musunuz
YanıtlaSilHocam keypad tuş epromda ayrı ayrı nasıl tutulur eproma nasıl kaydedilir
YanıtlaSilhocam Şifre Eski Haline Dönüyor Sifre Kısmını Aktif Etmeden Yüklersemde Sifre Belirsiz Oluyor Sorun Ne olabilir.
YanıtlaSilŞifreyi En Bata 4628 Yapabilir miyim