ARDUINO DERS-32 (2X16 LCD İLE RFID KULLANIMI)
DEVRE SEMASI
MALZEMELER
- ARDUİNO UNO
- 2X16 LCD
- RFID MODÜLÜ
DEVRE KODU
#include <SPI.h> //SPI kütüphanemizi tanımlıyoruz.
#include <MFRC522.h> //MFRC522 kütüphanemizi tanımlıyoruz.
#include <LiquidCrystal.h>
LiquidCrystal lcd(7, 6, 5, 4, 3, 2);
int RST_PIN = 9; //RC522 modülü reset pinini tanımlıyoruz.
int SS_PIN = 10; //RC522 modülü chip select pinini tanımlıyoruz.
MFRC522 rfid(SS_PIN, RST_PIN); //RC522 modülü ayarlarını yapıyoruz.
byte ID[4] = {226,230,220,27}; //Yetkili kart ID'sini tanımlıyoruz.
byte IDb[4] = {190,36,173,202}; //Yetkili kart ID'sini tanımlıyoruz.
void setup() {
Serial.begin(9600); //Seri haberleşmeyi başlatıyoruz.
SPI.begin(); //SPI iletişimini başlatıyoruz.
lcd.begin(16, 2);
rfid.PCD_Init(); //RC522 modülünü başlatıyoruz.
}
void loop() {
lcd.home();
if ( ! rfid.PICC_IsNewCardPresent()) //Yeni kartın okunmasını bekliyoruz.
return;
if ( ! rfid.PICC_ReadCardSerial()) //Kart okunmadığı zaman bekliyoruz.
return;
if (
rfid.uid.uidByte[0] == IDb[0] && //Okunan kart ID'si ile ID değişkenini karşılaştırıyoruz.
rfid.uid.uidByte[1] == IDb[1] &&
rfid.uid.uidByte[2] == IDb[2] &&
rfid.uid.uidByte[3] == IDb[3] or
rfid.uid.uidByte[0] == ID[0] && //Okunan kart ID'si ile ID değişkenini karşılaştırıyoruz.
rfid.uid.uidByte[1] == ID[1] &&
rfid.uid.uidByte[2] == ID[2] &&
rfid.uid.uidByte[3] == ID[3]
) {
lcd.clear();
Serial.println("Kapi acildi");
lcd.print("Kapi acildi");
ekranaYazdir();
delay(3000);
//lcd.clear();
//delay(10000);
}
else{ //Yetkisiz girişte içerideki komutlar çalıştırılır.
lcd.clear();
// delay(10000);
Serial.println("Yetkisiz Kart");
lcd.print("Yetkisiz Kart");
ekranaYazdir();
}
rfid.PICC_HaltA();
}
void ekranaYazdir(){
lcd.setCursor(0,1);
Serial.print("ID Numarasi: ");
// lcd.print("ID Numarasi:");
for(int sayac = 0; sayac < 4; sayac++){
Serial.print(rfid.uid.uidByte[sayac]);
lcd.print(rfid.uid.uidByte[sayac]);
Serial.print(" ");
lcd.print(" ");
}
Serial.println("");
lcd.print(" ");
}
Yorumlar
Yorum Gönder