您好,登錄后才能下訂單哦!
這篇文章給大家分享的是有關如何使用arduino RFID讀取卡號的內容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。
使用最新arduino IDE加載RC522庫
接線
Arduino Uno <------> RFID-RC522
10 <------> SDA
13 <------> SCK
11 <------> MOSI
12 <------> MISO
--null-- <------> IRQ
GND <------> GND
9 <------> RST
3.3V <------> 3.3V
這里務必注意RFID模塊的接線務必接好,使得板子的紅燈常亮,否則會出現鏈接失敗,讀取沒有動靜
以下是實操代碼
#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]; //存儲讀取的UID void setup() { Serial.begin(9600); SPI.begin(); rfid.PCD_Init(); Serial.println("RC522初始化完成..."); } void loop() { //搜索新卡 if (!rfid.PICC_IsNewCardPresent()) return; // 驗證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("十六進制UID:"); printHex(rfid.uid.uidByte, rfid.uid.size); Serial.println(); Serial.print("十進制UID:"); printDec(rfid.uid.uidByte, rfid.uid.size); Serial.println(); // 使放置在讀卡區的IC卡進入休眠狀態,不再重復讀卡 rfid.PICC_HaltA(); // 停止讀卡模塊編碼 rfid.PCD_StopCrypto1(); } // 十六進制輸出 void printHex(byte *buffer, byte bufferSize) { for (byte i = 0; i < bufferSize; i++) { Serial.print(buffer[i] < 0x10 ? " 0" : " "); Serial.print(buffer[i], HEX); } } //十進制輸出 void printDec(byte *buffer, byte bufferSize) { for (byte i = 0; i < bufferSize; i++) { Serial.print(buffer[i] < 0x10 ? " 0" : ""); Serial.print(buffer[i], DEC); } }
打開串口監聽器,控制臺會打印讀卡器的結果
感謝各位的閱讀!關于“如何使用arduino RFID讀取卡號”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,讓大家可以學到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。