nfc模块怎么感应卡离开感应范围arduino代码
时间: 2023-07-31 09:11:15 浏览: 42
在Arduino中,可以通过读取PN532 NFC模块的寄存器来判断卡片是否在感应范围内。以下是一个简单的示例代码,演示如何使用PN532库和Arduino板来检测卡片是否在感应范围内:
```
#include <PN532.h>
#include <Wire.h>
PN532 nfc(Wire);
void setup() {
Serial.begin(115200);
nfc.begin();
uint32_t versiondata = nfc.getFirmwareVersion();
if (!versiondata) {
Serial.print("PN53x not found");
while (1); // halt
}
Serial.print("Found chip PN5");
Serial.println((versiondata>>24) & 0xFF, HEX);
Serial.print("Firmware ver. ");
Serial.print((versiondata>>16) & 0xFF, DEC);
Serial.print('.');
Serial.println((versiondata>>8) & 0xFF, DEC);
nfc.SAMConfig();
Serial.println("Waiting for an ISO14443A card");
}
void loop() {
uint8_t success;
uint8_t uid[] = { 0, 0, 0, 0, 0, 0, 0 };
uint8_t uidLength;
success = nfc.readPassiveTargetID(PN532_MIFARE_ISO14443A, uid, &uidLength, 100);
if (success) {
Serial.println("Card detected, card removed");
delay(500);
}
}
```
这段代码使用了PN532库,通过调用`readPassiveTargetID`函数来检测卡片是否在感应范围内。当卡片被检测到时,串口会输出"Card detected, card removed"表示卡片已经被移除。当卡片离开感应范围时,该函数将返回0,表示卡片已经不在感应范围内。