plplt 发表于 2018-10-7 15:37:26

Arduino控制RC522时遇到的问题

各位大大帮忙看看这个问题。
我在用Arduino UNO控制RC522时想用刷卡,验证卡序列号是否正确来控制LED的亮和灭。有卡在感应范围内并且卡序列号正确熄灭LED灯,没有卡或者卡序列号不正确时保持LED常亮。
我用了MFRC522库的样例程序如下:

#include <SPI.h>
#include <MFRC522.h>
#define SS_PIN 10
#define RST_PIN 9
MFRC522 rfid(SS_PIN, RST_PIN); // Instance of the class
MFRC522::MIFARE_Key key;
// Init array that will store new NUID
byte nuidPICC;
const int l1 = 7;//LED
//uchar serNum;

void setup() {
   Serial.begin(9600);
   SPI.begin(); // Init SPI bus
   rfid.PCD_Init(); // Init MFRC522
   pinMode(l1, OUTPUT);
   digitalWrite(l1, HIGH);
}
void loop() {
   // Look for new cards
   if ( ! rfid.PICC_IsNewCardPresent())
   {
   digitalWrite(l1,HIGH);
   Serial.println("KaiDeng");
   }

   // Verify if the NUID has been readed
   if ( ! rfid.PICC_ReadCardSerial())
   return;
for (byte i = 0; i < 4; i++) {
       nuidPICC = rfid.uid.uidByte;
       Serial.print(nuidPICC);
   }
   Serial.println();
   if (nuidPICC == 0x5A && nuidPICC == 0x6D && nuidPICC == 0xC8 && nuidPICC == 0x73)
   {
       digitalWrite(l1, LOW);
       Serial.print("GuanDeng");
   }
   else
   {
       digitalWrite(l1, HIGH);
       Serial.print("KaiDeng");
   }
}


烧录以后,没有卡的时候都正常等可以常亮。但是有卡并且卡号正确的情况下LED一直在闪。感觉像是rfid.PICC_IsNewCardPresent()这个方法一次发现卡,一次没发现卡。我想实现的是如果有卡并且卡号正确,LED熄灭。劳烦各位帮忙看看谁是什么问题。

lailai518 发表于 2018-10-10 17:01:54

RC522d感应距离短
页: [1]
查看完整版本: Arduino控制RC522时遇到的问题