如何使用arduinoRFID读取卡号

这篇文章给大家分享的是有关如何使用arduino RFID读取卡号的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。

成都创新互联专注于察雅网站建设服务及定制,我们拥有丰富的企业做网站经验。 热诚为您提供察雅营销型网站建设,察雅网站制作、察雅网页设计、察雅网站官网定制、小程序定制开发服务,打造察雅网络公司原创品牌,更为您提供察雅网站排名全网营销落地服务。

  • 使用最新arduino IDE加载RC522库

如何使用arduino RFID读取卡号

  • 接线

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

           10            <------>                SDA

           13            <------>                SCK

           11           <------>                MOSI

           12            <------>                MISO

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

           GND       <------>                GND

           9              <------>                RST

           3.3V        <------>                3.3V如何使用arduino RFID读取卡号

这里务必注意RFID模块的接线务必接好,使得板子的红灯常亮,否则会出现链接失败,读取没有动静

  • 以下是实操代码

#include 
#include 
#include 
#include 
#include 

#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读取卡号

感谢各位的阅读!关于“如何使用arduino RFID读取卡号”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!


分享名称:如何使用arduinoRFID读取卡号
网址分享:http://myzitong.com/article/jjjsge.html