RFID(射頻識別的縮寫)標簽是一種身份識別系統(tǒng),它使用射頻中的電磁波來傳輸數(shù)據(jù)。一個簡單的 RFID 系統(tǒng)僅由兩個組件組成:標簽本身和讀/寫設備。讀/寫設備由射頻模塊和產(chǎn)生高頻電磁場的天線組成,而標簽通常是包含存儲和處理信息的微芯片的無源設備。
在本教程中,我們將連接RDM6300 RFID 閱讀器模塊與 Arduino Nano。RDM6300 RFID 閱讀器是一種頻率為 125 kHz 的 RFID 模塊。該 RFID 模塊可以從 125 kHz 兼容的只讀標簽讀取數(shù)據(jù)并讀/寫 125 kHz 卡。
將 RDM6300 與 Arduino 連接所需的組件
Arduino納米
RDM6300 RFID閱讀器模塊
125 kHz 標簽
跳線
面包板
RDM6300 RFID閱讀器模塊
RDM6300 125 kHz EM4100 RFID 卡 ID 讀取器模塊設計用于從 125 kHz 兼容標簽讀取和寫入數(shù)據(jù)。它可用于工作場所和住宅的監(jiān)控系統(tǒng)、個人身份驗證、訪問管理、防偽、數(shù)字玩具和輸出控制系統(tǒng)等。RDM6300系列非接觸式RFID板卡采用先進的射頻接收電路和內(nèi)置MCU架構(gòu),結(jié)合高效解碼算法,讀取EM4100及所有兼容卡。它使用 9600 波特率的串行 TTL 來傳輸 RFID 標簽數(shù)據(jù)。任何帶有 UART 串??行外設的微控制器都可用于此 RFID 閱讀器。
RDM6300 RFID 閱讀器模塊引腳分配
RDM6300 RFID 閱讀器模塊規(guī)格:
工作頻率:125KHZ
波特率:9600
工作電壓:DC 5V
工作電流:《50mA
接收距離:20~50mm
尺寸(毫米):38.5 x 20
重量:7g
RDM6300 RFID 模塊類似于 EM-18 RFID 閱讀器模塊。兩個模塊具有相同的工作頻率,即 125 KHz,并支持串行 RS232/TTL 輸出,而 RC522 的工作頻率為 13.56 kHz。
將 RDM6300 與 Arduino 連接的電路圖
RDM6300 RFID閱讀器模塊與Arduino的接口示意圖如下:
如圖所示,將 Arduino 連接到 RDM6300 RFID 閱讀器模塊。RDM6300 模塊的 5V 和 GND 引腳連接到 Arduino Nano 的 5V 和 GND 引腳,而模塊的 TX 引腳連接到 Nano 的 D6。RX 引腳不是必需的,因為在本教程中我們不向 RFID 模塊發(fā)送數(shù)據(jù)。最后,將天線以任意極性連接到 ANT1 和 ANT2 引腳。
為RDM6300 RFID 閱讀器編程 Arduino
使用 Arduino Nano 和 RDM6300 的 RFID 讀卡器代碼非常簡單。這里我們使用rdm6300 庫來讀取數(shù)據(jù)。完整的代碼在文檔末尾給出。代碼解釋如下:
通過包含 RDM6300 RFID 閱讀器庫來啟動代碼。
?
#include
?
然后定義讀取傳感器數(shù)據(jù)和控制 LED 所需的所有必要引腳。
?
#define RDM6300_RX_PIN 6
?
然后在setup()函數(shù)中,將串行監(jiān)視器初始化為 9600 以進行調(diào)試。此外,初始化 RFID 閱讀器模塊。
?
無效設置() { 序列號.開始(9600); rdm6300.begin(RDM6300_RX_PIN); Serial.println("\n在 rdm6300 附近放置 RFID 標簽..."); }
?
然后在loop()函數(shù)中,檢查標簽是否在附近,如果是,則讀取標簽號并將其打印到串行監(jiān)視器上。
?
無效循環(huán)() { 如果 (rdm6300.update()) Serial.println(rdm6300.get_tag_id(), HEX); 延遲(10); }
?
測試 RDM6300 RFID 閱讀器
準備好代碼和硬件后,將 Arduino 連接到筆記本電腦并上傳代碼。之后,以 9600 的波特率打開串口監(jiān)視器,掃描模塊天線上的 RFID 標簽。標簽號將打印在串行監(jiān)視器上。
#include
#define RDM6300_RX_PIN 2
#define READ_LED_PIN 13
Rdm6300 rdm6300;
無效設置()
{
序列.開始(9600);
pinMode(READ_LED_PIN,輸出);
數(shù)字寫入(READ_LED_PIN,低);
rdm6300.begin(RDM6300_RX_PIN);
Serial.println("\n在 rdm6300 附近放置 RFID 標簽...");
}
void loop()
{
/* 如果 tag_id 非零,update() 返回 true - 一個新標簽就在附近!*/
if (rdm6300.update())
Serial.println(rdm6300.get_tag_id(), HEX);
digitalWrite(READ_LED_PIN, rdm6300.is_tag_near());
延遲(10);
}
?
評論
查看更多