2016-11-05 10 views
0

Ich habe ein RFID-RC522 (MF-RC522) Modul und ich benutze Arduino Sketch-Programm. Ich habe den Beispielcode heruntergeladenRFID-RC522 liest keine Karte

/* 
* -------------------------------------------------------------------------------------------------------------------- 
* Example sketch/program showing how to read data from a PICC to serial. 
* -------------------------------------------------------------------------------------------------------------------- 
* This is a MFRC522 library example; for further details and other examples see: https://github.com/miguelbalboa/rfid 
* 
* Example sketch/program showing how to read data from a PICC (that is: a RFID Tag or Card) using a MFRC522 based RFID 
* Reader on the Arduino SPI interface. 
* 
* When the Arduino and the MFRC522 module are connected (see the pin layout below), load this sketch into Arduino IDE 
* then verify/compile and upload it. To see the output: use Tools, Serial Monitor of the IDE (hit Ctrl+Shft+M). When 
* you present a PICC (that is: a RFID Tag or Card) at reading distance of the MFRC522 Reader/PCD, the serial output 
* will show the ID/UID, type and any data blocks it can read. Note: you may see "Timeout in communication" messages 
* when removing the PICC from reading distance too early. 
* 
* If your reader supports it, this sketch/program will read all the PICCs presented (that is: multiple tag reading). 
* So if you stack two or more PICCs on top of each other and present them to the reader, it will first output all 
* details of the first and then the next PICC. Note that this may take some time as all data blocks are dumped, so 
* keep the PICCs at reading distance until complete. 
* 
* @license Released into the public domain. 
* 
* Typical pin layout used: 
* ----------------------------------------------------------------------------------------- 
*    MFRC522  Arduino  Arduino Arduino Arduino   Arduino 
*    Reader/PCD Uno/101  Mega  Nano v3 Leonardo/Micro Pro Micro 
* Signal  Pin   Pin   Pin  Pin  Pin    Pin 
* ----------------------------------------------------------------------------------------- 
* RST/Reset RST   9    5   D9   RESET/ICSP-5  RST 
* SPI SS  SDA(SS)  10   53  D10  10    10 
* SPI MOSI MOSI   11/ICSP-4 51  D11  ICSP-4   16 
* SPI MISO MISO   12/ICSP-1 50  D12  ICSP-1   14 
* SPI SCK  SCK   13/ICSP-3 52  D13  ICSP-3   15 
*/ 

#include <SPI.h> 
#include <MFRC522.h> 

#define RST_PIN   9   // Configurable, see typical pin layout above 
#define SS_PIN   10   // Configurable, see typical pin layout above 

MFRC522 mfrc522(SS_PIN, RST_PIN); // Create MFRC522 instance 

void setup() { 
    Serial.begin(9600);  // Initialize serial communications with the PC 
    while (!Serial);  // Do nothing if no serial port is opened (added for Arduinos based on ATMEGA32U4) 
    SPI.begin();   // Init SPI bus 
    mfrc522.PCD_Init();  // Init MFRC522 
    mfrc522.PCD_DumpVersionToSerial(); // Show details of PCD - MFRC522 Card Reader details 
    Serial.println(F("Scan PICC to see UID, SAK, type, and data blocks...")); 
} 

void loop() { 
    // Look for new cards 
    if (! mfrc522.PICC_IsNewCardPresent()) { 
     return; 
    } 

    // Select one of the cards 
    if (! mfrc522.PICC_ReadCardSerial()) { 
     return; 
    } 

    // Dump debug info about the card; PICC_HaltA() is automatically called 
    mfrc522.PICC_DumpToSerial(&(mfrc522.uid)); 
} 

Als ich es ausführen, bekomme ich die Meldung:

Firmware Version: 0x0 = (unbekannt)

WARNUNG: Kommunikationsfehler ist die MFRC522 richtig angeschlossen ?

Scan PICC zu sehen UID, SAK, Typ und Datenblöcke ...

Ich habe die Verbindungen tausend Mal wieder überprüft, aber es funktioniert nicht, sind die Stifte verbunden sind, wie das Beispiel sagt, und die LED D1 leuchtet (rot). Kann mir jemand helfen?

+0

Welche Arduino verwenden? – TheValyreanGroup

+0

Ich habe Uno und Mega. Beide funktionieren nicht –

+0

Sie sind sicher, dass der SS-Pin in SDA ist? – TheValyreanGroup

Antwort

-1

* Versuchen Sie diesen Code *

#include <RFID.h> 

/* 
* Pin layout should be as follows (on Arduino Uno): 
* MOSI: Pin 11/ICSP-4 
* MISO: Pin 12/ICSP-1 
* SCK: Pin 13/ISCP-3 
* SS/SDA: Pin 10 
* RST: Pin 9 
*/ 

#include <SPI.h> 
#include <RFID.h> 

#define SS_PIN 10 
#define RST_PIN 9 

RFID rfid(SS_PIN,RST_PIN); 


int self = 7; 
int bat = 8; 
int s = 6; 

int serNum[5]; 
int cards[][5] = { 
    {42,249,70,213,64} 

}; 

bool access = false; 

void setup(){ 

    Serial.begin(9600); 
    SPI.begin(); 
    rfid.init(); 

    pinMode(self, OUTPUT); 
    pinMode(bat ,OUTPUT); 
    pinMode(s,OUTPUT); 


    digitalWrite(self, LOW); 
    digitalWrite(bat , LOW); 

} 

void loop(){ 

    if(rfid.isCard()){ 

     if(rfid.readCardSerial()){ 
      Serial.print(rfid.serNum[0]); 
      Serial.print(" "); 
      Serial.print(rfid.serNum[1]); 
      Serial.print(" "); 
      Serial.print(rfid.serNum[2]); 
      Serial.print(" "); 
      Serial.print(rfid.serNum[3]); 
      Serial.print(" "); 
      Serial.print(rfid.serNum[4]); 
      Serial.println(""); 

      for(int x = 0; x < sizeof(cards); x++){ 
       for(int i = 0; i < sizeof(rfid.serNum); i++){ 
        if(rfid.serNum[i] != cards[x][i]) { 
         access = false; 
         break; 
        } else { 
         access = true; 
        } 
       } 
       if(access) break; 
      } 

     } 

     if(access){ 
      Serial.println("Welcome!"); 
      digitalWrite(bat,HIGH); 
      digitalWrite(self,HIGH); 
      delay(1000); 
      digitalWrite(self,LOW); 

     } else { 
      Serial.println("Not allowed!"); 
      digitalWrite(s,HIGH); 
      delay(2000); 
      digitalWrite(s,LOW); 
      digitalWrite(bat,LOW); 

     }   
    } 



    rfid.halt();`enter code here` 

} 
+4

Während dieses Code-Snippet die Frage lösen kann, einschließlich einer Erklärung [wirklich hilft] (// meta.stackexchange.com/q/114762), um die Qualität Ihres Beitrags zu verbessern. Denken Sie daran, dass Sie die Frage für Leser in der Zukunft beantworten, nicht nur die Person, die jetzt fragt! Bitte [bearbeiten] Sie Ihre Antwort, um eine Erläuterung hinzuzufügen und geben Sie an, welche Einschränkungen und Annahmen gelten. –

+0

Funktioniert immer noch nicht –

0

Wenn jemand nach einer Lösung suchen ...

Schritt-1: Ändern Sie den RST Pin 5, wenn Sie Arduino Uno verwenden oder verwenden RST Pin 9 in Arduino Mega. die anderen Pins bleiben gleich.
Schritt-2: Download AddicoreRFID Bibliothek.
Schritt-3: Öffnen Sie die Arduino IDE und navigieren Sie zu Skizze> Bibliothek einbeziehen mit der Option "ZIP-Bibliothek hinzufügen ...".
Schritt-4: Starten Sie die Arduino IDE neu (schließen und wieder öffnen)
Schritt-5: Innerhalb der Arduino IDE Navigieren Sie zu Datei> Beispiele> AddicoreRFID. Wählen Sie den „Addicore_RFID_Example“ Skizze und laden Sie die Skizze
Step-6: Öffnen Sie das Serielle und wählen „Sowohl NL & CR“ und wählen Sie „9600“ für die Baudrate Option

ausführliche Erklärung finden Sie unter link