4
   /*
 * --------------------------------------------------------------------------------------------------------------------
 * 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           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, type, and data blocks..."));
  Serial.print("...");
}

void loop() {
    // Look for new cards
    if ( ! MFRC522.PICC_IsNewCardPresent()) {
    Serial.print("IsNewCardPresent");
        return;
    }

    // Select one of the cards
    if ( ! MFRC522.PICC_ReadCardSerial()) {
    Serial.print("ReadCardSerial");
        return;
    }

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

I have recently purchased a RC522 RFID Module for my Arduino UNO. I connected everything, and started the IDE, downloaded the correct library, and ran the DumpInfo example program. The first time that I ran it, all went well, and when I swiped a card in fro, I recieved the correct data dump.

However, I started it up today, and reset everything, ran a new program to clear the Arduino, restarted my PC, and it still did not work. In the serial monitor it says that all is well, no error messages or anything. But, when I put a card in front of it, absolutely nothing happens.

Any help would be great!

user3704293
  • 471
  • 7
  • 19
  • Loose connection? – Majenko Jan 27 '16 at 22:47
  • Definitely not, I made sure that all of them were well connected, and that would have returned an error in the Monitor if one wasn't communicating. – Devon Freeland Jan 27 '16 at 22:54
  • Do you see the firmware number and so on when you run the sketch? – SoreDakeNoKoto Jan 27 '16 at 22:55
  • Yes. It says Firmware Version: 0x92 = v2.0 Scan PICC to see UID, type, and data blocks... – Devon Freeland Jan 27 '16 at 22:58
  • And you have made no changes at all to your code since the last time you got results? Are you using the same card as before? Also swiping/waving it within 5cm of the RC522? – SoreDakeNoKoto Jan 27 '16 at 23:06
  • No changes to the code whatsoever. I'm using the same cards and going withing 5cm of the reader. – Devon Freeland Jan 27 '16 at 23:20
  • Should I try and use the ICSP connections instead? – Devon Freeland Jan 27 '16 at 23:22
  • You can try, though this is a weird one. By all indications, bi-directional communications have been established since you can read the version. Also this code has worked for you before (more than once?). Maybe you should try powering it with some other source, Also try placing Serial.print statements in each IF block in the loop() to see if those conditions are responsible. – SoreDakeNoKoto Jan 28 '16 at 00:24
  • I tried adding the Serial.print lines, and it just spams the Serial Monitor with isnewcardpresent, meaning that it's going through that loop.I tried swiping a card in front during, but it didn't get out of the loop. – Devon Freeland Jan 28 '16 at 00:38
  • I don't really have the ability to power it from any other place, and i'm not sure where you were going with that. – Devon Freeland Jan 28 '16 at 00:40
  • `ran a new program to clear the Arduino` - can you explain that bit? – Nick Gammon Jan 28 '16 at 04:00
  • Just clicked the new button on the IDE and ran it while it was connected to the Arduino to clear it. – Devon Freeland Jan 28 '16 at 18:42
  • So, I believe that it is some form of state that the RFID Module goes into when I shut down my comptuter, how would I go about reseting the module? – Devon Freeland Jan 30 '16 at 05:13
  • `Just clicked the new button on the IDE and ran it while it was connected to the Arduino to clear it.` - and after that, did you load the other program? The RFID one? I don't see any point in loading other code "to clear it". You may as well put a Star Wars DVD into your DVD player "to clear it" before watching something else entirely. – Nick Gammon Jan 30 '16 at 05:25
  • 1
    Yes, after that, I loaded the other program. Thank you for the Snarky remark. No, the issue isn't the programming, it's that the module is not resetting correctly after I restart my computer or it goes to sleep. As power is cut to the module, and then restored. I know it's not the program because I'm receiving the firmware version back from the module. – Devon Freeland Jan 30 '16 at 05:28

3 Answers3

1

Check your power supply. I've seen so many weird results from inconsistent/under powered circuits. It's worth a look.

What does your circuit look like? Are you powering the RFID reader from the Arduino or it's own source? Are the grounds coupled?

James
  • 345
  • 3
  • 9
  • I'm powering it from the Arduino, and it's getting ample power supply, as it is sending and receiving data. The grounds are fine. – Devon Freeland Jan 29 '16 at 03:31
1

If I am right then you have soldered the pins of the module yourself and I recommend you to desolder the pins and soldered them again.

I also used RC522 RFID Module with an Arduino and I faced same type of problem with the module. This way worked for me.

sa_leinad
  • 3,118
  • 1
  • 20
  • 49
Shyam Singla
  • 134
  • 2
1

The first thing you could try is to increase the baud rate to 115200. I'm using a different library, and in the auth_read_write.ino sketch the Serial.begin() comments says "Read a fast as possible. There is a limit for how long we are allowed to read from the tags".

If changing the baud rate doesn't work, then have a look at this answer: RFID-RC522 not working, red led is on. It has a link to a different library which worked for me.

galoget
  • 119
  • 5
VE7JRO
  • 2,497
  • 15
  • 24
  • 29