This is an old revision of the document!
Libraries:
Cod Functia void setup() este folosita pentru a se initializa circuitul
Serial.begin(9600); SPI.begin(); rfid.PCD_Init(); pinMode(LED_PIN, OUTPUT);
Functia void loop() este principala functie care verifica daca un nou card exista. Daca gaseste un card, determina tipul acestuia, ii citeste ID-ul, iar pe baza acestuia decide daca sa lucreze mai departe sau nu. Daca da, retine cardul si opreste algoritmul.
if (isNewCardPresent() && readCardSerial()) {
MFRC522::PICC_Type piccType = getCardType();
if (isMifareClassic(piccType)) {
String cardID = getCardID();
Serial.print("Card ID: ");
Serial.println(cardID);
if (cardID.equals("20:6B:18:83")) {
turnOnLED();
} else {
turnOffLED();
}
} else {
Serial.println("Your tag is not of type MIFARE Classic.");
}
haltCard();
stopCrypto1();
}
Functiile bool isNewCardPresent()
return rfid.PICC_IsNewCardPresent();
bool readCardSerial()
return rfid.PICC_ReadCardSerial();
verifica daca exista un card si ii citeste numarul de serie.
Functiile MFRC522::PICC_Type getCardType()
return rfid.PICC_GetType(rfid.uid.sak);
bool isMifareClassic(MFRC522::PICC_Type piccType) {
return piccType == MFRC522::PICC_TYPE_MIFARE_MINI ||
piccType == MFRC522::PICC_TYPE_MIFARE_1K ||
piccType == MFRC522::PICC_TYPE_MIFARE_4K;
String getCardID()
String cardID = "";
for (byte i = 0; i < 4; i++) {
cardID += (rfid.uid.uidByte[i] < 0x10 ? "0" : "");
cardID += String(rfid.uid.uidByte[i], HEX);
if (i != 3) {
cardID += ":";
}
}
cardID.toUpperCase();
return cardID;
citesc tipul cardului apeland functia PICC_GetType() din libraria MFRC522, verifica daca cardul e de tipul MIFARE Classic si citesc ID-ul cardului astfel incat sa concateneze IU (identificatorul unic) pentru ca la final ID-ul cardului sa fie de tip string.
Functiile void turnOnLED()
digitalWrite(LED_PIN, HIGH);
void turnOffLED()
digitalWrite(LED_PIN, LOW);
void haltCard()
rfid.PICC_HaltA();
void stopCrypto1()
rfid.PCD_StopCrypto1();
se ocupa de pornirea/oprirea LED-ului, cat si oprirea comunicarii dintre card si algoritm.