30 Ekim 2026 Cuma


Programlama Kodları

//AÇIKLAMA
//Bu uygulamada okutulan kartın belirlediğimiz kart UID'si ile aynı olup olmadığını test ettik.
//Aynıysa doğru, aynı değilse yanlış ifadesini seri port ekanına yazdırdık.

#include<SPI.h>
#include<MFRC522.h>

#define SS_PIN 10
#define RST_PIN 9

MFRC522 rfid(SS_PIN, RST_PIN);

String kart_ID = "6934CE06";
String okunan_ID = "";
int i;

void setup()
{
  Serial.begin(9600);
  SPI.begin();
  rfid.PCD_Init();
  Serial.println("MIFARE Classic Kart/Etiket Bekleniyor...");
}

void loop()
{
  //__________________________________Kart/Etiket kontrolü_______________________________
  //If'in içerisinde return kullanmamızın nedeni: If içi 1(true) olduğunda programın, loop
  //döngüsünün başına gitmesini sağlamak içindir.
  if (!rfid.PICC_IsNewCardPresent())  //Yeni bir kart/etiket algılanıp algılanmadığını kontrol eder.
  {
    return;
  }

  if (!rfid.PICC_ReadCardSerial())  //Kartın/etiketin UID (Benzersiz Kimlik)’sinin okunup okunamadığını belirler.
  {
    return;
  }
  Serial.println("Kart/Etiket Algılandı.");

  okunan_ID = ""; //Stringi boşalt.

  //__________________UID'yi bayt bayt okuma, birleştirme, büyük harfe çevirme____________________
  for (i = 0; i < 4; i++)
  {
    if (rfid.uid.uidByte[i] < 0x10)
    {
      okunan_ID += "0";   // Tek haneli sayıların başına 0 ekleme.
    }
    okunan_ID.concat(String(rfid.uid.uidByte[i], HEX)); //"rfid.uid.uidByte[i]" komutuyla sayı olarak okuduğumuz baytı, HEX'e çevir ve ardından String yap. ardından, "concat" komutu ile okunan_ID stringinin son haliyle birleştir. for döngüsü ile bu durumu 4 sefer tekrarla.
  }

  okunan_ID.toUpperCase();  //büyük harfe çevir. kart_ID değişkenindeki harfler büyüktür. Ancak üstteki komutla HEX e dönüştürüldüğünde UID içerisindeki harfler küçülür. bu nedenle büyük harfe çevirme işlemi yapıldı.
  Serial.print("Kart UID: ");   Serial.println(okunan_ID);


  //__________________Okunan UID ile tanımlanan ID'yi karşılaştır____________________
  if (kart_ID == okunan_ID)
  {
    Serial.println("Okunan UID DOĞRU.");
    delay(1000);
  }
  else
  {
    Serial.println("Okunan UID YANLIŞ!.");
    delay(1000);
  }

  rfid.PCD_StopCrypto1(); //okuyucu (PCD) ile kart/etiket(PICC) arasındaki şifreli iletişimi (Crypto1) güvenli bir şekilde kapat.

}



Devre Şeması




Seri Port Ekran Görüntüsü




0 comments:

Yorum Gönder

Arduino Eğitimi Konu - 7

Toplam Sayfa Görüntüleme Sayısı

Sensörler ve Aygıtların Arduino İle Kullanımı

Popular Posts

Yararlanılan Kaynaklar

İletişim

gokdag17@gmail.com

Blog Archive