溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

如何使用arduino RFID讀取卡號(hào)

發(fā)布時(shí)間:2021-12-29 17:28:29 來源:億速云 閱讀:423 作者:小新 欄目:互聯(lián)網(wǎng)科技

這篇文章給大家分享的是有關(guān)如何使用arduino RFID讀取卡號(hào)的內(nèi)容。小編覺得挺實(shí)用的,因此分享給大家做個(gè)參考,一起跟隨小編過來看看吧。

  • 使用最新arduino IDE加載RC522庫(kù)

如何使用arduino RFID讀取卡號(hào)

  • 接線

Arduino Uno     <------>   RFID-RC522

           10            <------>                SDA

           13            <------>                SCK

           11           <------>                MOSI

           12            <------>                MISO

           --null--     <------>                IRQ

           GND       <------>                GND

           9              <------>                RST

           3.3V        <------>                3.3V如何使用arduino RFID讀取卡號(hào)

這里務(wù)必注意RFID模塊的接線務(wù)必接好,使得板子的紅燈常亮,否則會(huì)出現(xiàn)鏈接失敗,讀取沒有動(dòng)靜

  • 以下是實(shí)操代碼

#include <deprecated.h>
#include <MFRC522.h>
#include <MFRC522Extended.h>
#include <require_cpp11.h>
#include <SPI.h>

#define SS_PIN 10
#define RST_PIN 9

MFRC522 rfid(SS_PIN, RST_PIN);

byte nuidPICC[4]; //存儲(chǔ)讀取的UID

void setup() {
  Serial.begin(9600);
  SPI.begin();
  rfid.PCD_Init();
  Serial.println("RC522初始化完成...");
}

void loop() {
  //搜索新卡
  if (!rfid.PICC_IsNewCardPresent())
    return;

  // 驗(yàn)證NUID是否可讀
  if (!rfid.PICC_ReadCardSerial())
    return;

  MFRC522::PICC_Type piccType = rfid.PICC_GetType(rfid.uid.sak);

  // 檢查是否MIFARE卡類型
  if (piccType != MFRC522::PICC_TYPE_MIFARE_MINI &&
      piccType != MFRC522::PICC_TYPE_MIFARE_1K &&
      piccType != MFRC522::PICC_TYPE_MIFARE_4K) {
    Serial.println("不支持讀取此卡類型");
    return;
  }

  // 保存讀取到的UID
  for (byte i = 0; i < 4; i++) {
    nuidPICC[i] = rfid.uid.uidByte[i];
  }
    
  Serial.print("十六進(jìn)制UID:");
  printHex(rfid.uid.uidByte, rfid.uid.size);
  Serial.println();

  Serial.print("十進(jìn)制UID:");
  printDec(rfid.uid.uidByte, rfid.uid.size);
  Serial.println();

  // 使放置在讀卡區(qū)的IC卡進(jìn)入休眠狀態(tài),不再重復(fù)讀卡
  rfid.PICC_HaltA();

  // 停止讀卡模塊編碼
  rfid.PCD_StopCrypto1();
}

// 十六進(jìn)制輸出
void printHex(byte *buffer, byte bufferSize) {
  for (byte i = 0; i < bufferSize; i++) {
    Serial.print(buffer[i] < 0x10 ? " 0" : " ");
    Serial.print(buffer[i], HEX);
  }
}

//十進(jìn)制輸出
void printDec(byte *buffer, byte bufferSize) {
  for (byte i = 0; i < bufferSize; i++) {
    Serial.print(buffer[i] < 0x10 ? " 0" : "");
    Serial.print(buffer[i], DEC);
  }
}
  • 打開串口監(jiān)聽器,控制臺(tái)會(huì)打印讀卡器的結(jié)果

如何使用arduino RFID讀取卡號(hào)

感謝各位的閱讀!關(guān)于“如何使用arduino RFID讀取卡號(hào)”這篇文章就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,讓大家可以學(xué)到更多知識(shí),如果覺得文章不錯(cuò),可以把它分享出去讓更多的人看到吧!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI