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.