#include #include #include // Piny #define SD_CS 10 // Chip Select pro SD kartu #define RFID_CS 9 // SDA pro RC522 #define RFID_RST 8 // Reset RC522 MFRC522 rfid(RFID_CS, RFID_RST); void setup() { Serial.begin(9600); SPI.begin(); // Inicializace pinů CS pinMode(SD_CS, OUTPUT); pinMode(RFID_CS, OUTPUT); digitalWrite(SD_CS, HIGH); digitalWrite(RFID_CS, HIGH); delay(100); // pauza kvůli stabilizaci SPI sběrnice // Inicializace SD karty Serial.print("Inicializuji SD kartu... "); if (!SD.begin(SD_CS)) { Serial.println("❌ SD karta nenalezena nebo chyba připojení."); } else { Serial.println("✅ SD karta připravena."); } // Inicializace RFID rfid.PCD_Init(); Serial.println("✅ RFID čtečka připravena. Přilož čip."); } void loop() { // Vždy deaktivuj SD kartu během RFID komunikace digitalWrite(SD_CS, HIGH); digitalWrite(RFID_CS, LOW); if (!rfid.PICC_IsNewCardPresent() || !rfid.PICC_ReadCardSerial()) { digitalWrite(RFID_CS, HIGH); return; } // Načti UID čipu String uidStr = ""; for (byte i = 0; i < rfid.uid.size; i++) { if (rfid.uid.uidByte[i] < 0x10) uidStr += "0"; uidStr += String(rfid.uid.uidByte[i], HEX); uidStr += " "; } Serial.print("📡 UID načteno: "); Serial.println(uidStr); // Ukonči RFID komunikaci rfid.PICC_HaltA(); rfid.PCD_StopCrypto1(); digitalWrite(RFID_CS, HIGH); // Zapiš na SD kartu digitalWrite(SD_CS, LOW); File file = SD.open("log.txt", FILE_WRITE); if (file) { file.print("UID: "); file.println(uidStr); file.close(); Serial.println("💾 UID uloženo do log.txt."); } else { Serial.println("❌ Nelze zapsat do log.txt."); } digitalWrite(SD_CS, HIGH); delay(1500); // malá pauza pro další čtení }