2016-11-05 1 views
0

J'ai un module RFID-RC522 (MF-RC522) et j'utilise le programme de croquis Arduino. J'ai téléchargé le code Exemple:RFID-RC522 ne lit pas la carte

/* 
* -------------------------------------------------------------------------------------------------------------------- 
* 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)); 
} 

Quand je l'exécute, je reçois le message:

Version Firmware: 0x0 = (inconnu)

AVERTISSEMENT: Panne de communication, est le MFRC522 correctement connecté ?

scan PICC pour voir UID, SAK, le type et les blocs de données ...

Je revérifié les connexions une fois mille, mais il ne fonctionne pas, les broches sont connectées comme l'exemple dit, et la LED D1 est allumée (rouge). Est-ce que quelqu'un peut m'aider?

+0

Quels Arduino utilisent? – TheValyreanGroup

+0

J'ai uno et Mega. Les deux ne fonctionnent pas –

+0

Vous êtes sûr que la broche SS est en SDA? – TheValyreanGroup

Répondre

-1

* Essayez ce 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

Alors que cet extrait de code peut résoudre la question, y compris une explication [aide vraiment] (// meta.stackexchange.com/q/114762) pour améliorer la qualité de votre message. Rappelez-vous que vous répondez à la question pour les lecteurs dans le futur, pas seulement pour la personne qui demande maintenant! S'il vous plaît [modifier] votre réponse pour ajouter une explication, et donner une indication des limites et des hypothèses qui s'appliquent. –

+0

Ne fonctionne toujours pas –

0

Si quelqu'un cherche une solution ...

étape 1: Changer la broche RST à 5 si vous utilisez Arduino Uno ou utiliser la broche RST 9 dans Arduino Mega. les autres broches restent les mêmes. Étape 2: Télécharger la bibliothèque AddicoreRFID.
Étape-3: Ouvrez l'IDE Arduino et naviguez jusqu'à Esquisse> Inclure la bibliothèque en utilisant l'option "Ajouter une bibliothèque .ZIP ...".
Étape 4: Redémarrez l'IDE Arduino (fermez et ouvrez à nouveau)
Étape 5: Dans l'IDE Arduino Accédez à Fichier> Exemples> AddicoreRFID. Sélectionnez l'esquisse « de Addicore_RFID_Example » et télécharger le croquis
Étape 6: Ouvrez la fenêtre série et sélectionnez « deux NL & CR » et sélectionnez « 9600 » pour l'option de vitesse de transmission

explication détaillée se trouve à link