1 頁 (共 1 頁)

電梯卡之複製(寫卡篇)

發表於 : 2025年 12月 11日, 19:57
admin
繼上一篇讀卡之後,接下來我們就要利用上次所紀錄的UID,

將其寫入空白的CUID卡中,

記得更改程式中的UID。

程式如下:

代碼: 選擇全部

#include <SPI.h>
#include <MFRC522.h>
#define RST_PIN   14     
#define SS_PIN    21    

MFRC522 mfrc522(SS_PIN, RST_PIN);   

/*  你的UID寫這裡  */
#define NEW_UID {0x01, 0x02, 0x03, 0x04}

void setup() 
{
  Serial.begin(9600);  
  SPI.begin();         	
  mfrc522.PCD_Init();  
}
void loop() 
{
  if ( ! mfrc522.PICC_IsNewCardPresent() || ! mfrc522.PICC_ReadCardSerial() ) 
  {
    delay(50);
    return;
  }
  // 印出 UID
  Serial.print(F("Card片 UID:"));
  for (byte i = 0; i < mfrc522.uid.size; i++) {
    Serial.print(mfrc522.uid.uidByte[i] < 0x10 ? " 0" : " ");
    Serial.print(mfrc522.uid.uidByte[i], HEX);
  } 
  Serial.println();

  // 設定新UID
  byte newUid[] = NEW_UID;
  if ( mfrc522.MIFARE_SetUid(newUid, (byte)4, true) ) 
    Serial.println(F("Wrote new UID to card."));
 
  mfrc522.PICC_HaltA();
  if ( ! mfrc522.PICC_IsNewCardPresent() || ! mfrc522.PICC_ReadCardSerial() ) 
    return;
  
  // 印出寫完後的卡片新UID
  Serial.println(F("New UID and contents:"));
  mfrc522.PICC_DumpToSerial(&(mfrc522.uid));
  
  delay(2000);
}