I am in dire trouble and need help quick please help!

I am connecting an mfrc522 to an Arduino but in serial monitor i am getting this error
WARNING: Communication failure, is the MFRC522 properly connected?

type or paste code here#include <LiquidCrystal_I2C.h>
#include <SPI.h>
#include <MFRC522.h>
#include <Servo.h>

#define SERVO_PIN 2
Servo myservo;
 
#define SS_PIN 10
#define RST_PIN 9
MFRC522 mfrc522(SS_PIN, RST_PIN);   // Create MFRC522 instance.
LiquidCrystal_I2C lcd(0x27, 16, 2);

void setup() {
  Serial.begin(96009600);
  SPI.begin();
  lcd.init();
  lcd.backlight();
  mfrc522.PCD_Init();
Serial.println("Arduino RFID door lock");
mfrc522.PCD_DumpVersionToSerial();
  myservo.attach(SERVO_PIN);
  
lcd.setCursor(0,0);
  lcd.print("Exit...");
    myservo.write( 380 );
    delay(1000);
    lcd.clear();
    lcd.setCursor(0,0);
    lcd.print("Door closes in");
    lcd.setCursor(0,1); 
    lcd.print("5");
    lcd.clear();
    delay(1000);
    lcd.setCursor(0,1); 
    lcd.print("4");
    lcd.clear();
    delay(1000);
    lcd.setCursor(0,1); 
    lcd.print("3");
    lcd.clear();
    delay(1000);
    lcd.setCursor(0,1); 
    lcd.print("2");
    lcd.clear();
    delay(1000);
    lcd.setCursor(0,1); 
    lcd.print("1");
    lcd.clear();
    delay(1000);
    myservo.write( 0 );
  }
    
void opendoor(){
  lcd.setCursor(0,0);
  lcd.print("Welcome: Guest");
    myservo.write( 380 );
    delay(1000);
    lcd.clear();
    lcd.setCursor(0,0);
    lcd.print("Door closes in");
    lcd.setCursor(0,1); 
    lcd.print("5");
    lcd.clear();
    delay(1000);
    lcd.setCursor(0,1); 
    lcd.print("4");
    lcd.clear();
    delay(1000);
    lcd.setCursor(0,1); 
    lcd.print("3");
    lcd.clear();
    delay(1000);
    lcd.setCursor(0,1); 
    lcd.print("2");
    lcd.clear();
    delay(1000);
    lcd.setCursor(0,1); 
    lcd.print("1");
    lcd.clear();
    delay(1000);
    myservo.write( 0 );
     
  }
  void 1(){
  lcd.setCursor(0,0);
  lcd.print("Welcome: 1");
    myservo.write( 380 );
    delay(1000);
    lcd.clear();
    lcd.setCursor(0,0);
    lcd.print("Door closes in");
    lcd.setCursor(0,1); 
    lcd.print("5");
    lcd.clear();
    delay(1000);
    lcd.setCursor(0,1); 
    lcd.print("4");
    lcd.clear();
    delay(1000);
    lcd.setCursor(0,1); 
    lcd.print("3");
    lcd.clear();
    delay(1000);
    lcd.setCursor(0,1); 
    lcd.print("2");
    lcd.clear();
    delay(1000);
    lcd.setCursor(0,1); 
    lcd.print("1");
    lcd.clear();
    delay(1000);
    myservo.write( 0 );
     
  }

  void 2(){
  lcd.setCursor(0,0);
  lcd.print("Welcome: 2");
    myservo.write( 380 );
    delay(1000);
    lcd.clear();
    lcd.setCursor(0,0);
    lcd.print("Door closes in");
    lcd.setCursor(0,1); 
    lcd.print("5");
    lcd.clear();
    delay(1000);
    lcd.setCursor(0,1); 
    lcd.print("4");
    lcd.clear();
    delay(1000);
    lcd.setCursor(0,1); 
    lcd.print("3");
    lcd.clear();
    delay(1000);
    lcd.setCursor(0,1); 
    lcd.print("2");
    lcd.clear();
    delay(1000);
    lcd.setCursor(0,1); 
    lcd.print("1");
    lcd.clear();
    delay(1000);
    myservo.write( 0 );
     
  }

  void 3(){
  lcd.setCursor(0,0);
  lcd.print("Welcome: 3");
    myservo.write( 380 );
    delay(1000);
    lcd.clear();
    lcd.setCursor(0,0);
    lcd.print("Door closes in");
    lcd.setCursor(0,1); 
    lcd.print("5");
    lcd.clear();
    delay(1000);
    lcd.setCursor(0,1); 
    lcd.print("4");
    lcd.clear();
    delay(1000);
    lcd.setCursor(0,1); 
    lcd.print("3");
    lcd.clear();
    delay(1000);
    lcd.setCursor(0,1); 
    lcd.print("2");
    lcd.clear();
    delay(1000);
    lcd.setCursor(0,1); 
    lcd.print("1");
    lcd.clear();
    delay(1000);
    myservo.write( 0 );
     
  }

void 4(){
  lcd.setCursor(0,0);
  lcd.print("Welcome: 4");
    myservo.write( 380 );
    delay(1000);
    lcd.clear();
    lcd.setCursor(0,0);
    lcd.print("Door closes in");
    lcd.setCursor(0,1); 
    lcd.print("5");
    lcd.clear();
    delay(1000);
    lcd.setCursor(0,1); 
    lcd.print("4");
    lcd.clear();
    delay(1000);
    lcd.setCursor(0,1); 
    lcd.print("3");
    lcd.clear();
    delay(1000);
    lcd.setCursor(0,1); 
    lcd.print("2");
    lcd.clear();
    delay(1000);
    lcd.setCursor(0,1); 
    lcd.print("1");
    lcd.clear();
    delay(1000);
    myservo.write( 0 );
     
  }





void loop(){

  //Look for new cards
  if ( !mfrc522.PICC_IsNewCardPresent() ){
    return;
  }
  //Select one of the cards
  if ( !mfrc522.PICC_ReadCardSerial() ) {
    return;
  }
  Serial.print("UID tag :");
  
  String content= "";
  byte letter;
  for( byte i = 0; i < mfrc522.uid.size; i++ ){
    Serial.print(mfrc522.uid.uidByte[i] < 0x10 ? " 0" : " ");
     Serial.print(mfrc522.uid.uidByte[i], HEX);
     content.concat(String(mfrc522.uid.uidByte[i] < 0x10 ? " 0" : " "));
     content.concat(String(mfrc522.uid.uidByte[i], HEX));
  }
  content.toUpperCase();
  Serial.println();
  Serial.println("UID tag :'" + content + "'");

 
  if ( content == "D4-73-CA-2A" || "D7-75-2A-7B" || "97-15-35-7B" || "D7-2C-36-7B" || "F7-F4-29-7B" || "67-72-39-7B" || "D7-7A-2C-7B" || "27-17-27-7B" || "F7-DB-37-7B" ){
    Serial.println("Guest");
   delay(300);
    opendoor();
  }

  if ( content == "D4-73-CA-2A" || "D7-75-2A-7B" || "97-15-35-7B" || "D7-2C-36-7B" || "F7-F4-29-7B" || "67-72-39-7B" || "D7-7A-2C-7B" || "27-17-27-7B" || "F7-DB-37-7B" ){
    Serial.println("1");
   delay(300);
    1();
  }

  if ( content == "D4-73-CA-2A" || "D7-75-2A-7B" || "97-15-35-7B" || "D7-2C-36-7B" || "F7-F4-29-7B" || "67-72-39-7B" || "D7-7A-2C-7B" || "27-17-27-7B" || "F7-DB-37-7B" ){
    Serial.println("2");
   delay(300);
   2();
  }if ( content == "D4-73-CA-2A" || "D7-75-2A-7B" || "97-15-35-7B" || "D7-2C-36-7B" || "F7-F4-29-7B" || "67-72-39-7B" || "D7-7A-2C-7B" || "27-17-27-7B" || "F7-DB-37-7B" ){
    Serial.println("3");
   delay(300);
    3();
  }

  if ( content == "D4-73-CA-2A" || "D7-75-2A-7B" || "97-15-35-7B" || "D7-2C-36-7B" || "F7-F4-29-7B" || "67-72-39-7B" || "D7-7A-2C-7B" || "27-17-27-7B" || "F7-DB-37-7B" ){
    Serial.println("4");
   delay(300);
    4();
  }
    
}

this is my code...
i tried uploading a dumpinfo but it is still giving me the same error..
i soldered everything, used new wires, checked the continuity with a multimeter... but all has failed, please help me quick as this is very very urgent.

:roll_eyes:

it is still not working :sob: :sob: :sob: :sob:

you got to be kidding or just ........... :nerd_face:

Now upload your full connection schematic and a photo of the actual connection.
Also, since the MFRC522 is a 3.3V device, if you are using a 5V Arduino, you need to shift the signal level.

@arduinodeveloper99, your topic has been moved to a more suitable location on the forum. At the moment that you connect anything to an Arduino, it becomes a project and Installation and Troubleshooting is not for projects :wink: (see About the Installation & Troubleshooting category).

Function names cannot start with a numeric character.

Your code doesn't even compile, much less work.

I cant send a picture but here is a diagram...
there is an error in the diagram, the rst connection is to digital - 9 not 2

I suggest you wring out the hardware with an example program that can usually be found as part of the library code.
Once that is proven out you can start to add your own code.

i do not understand

Hi, @arduinodeveloper99
Welcome to the forum.

Do you mean this code returns an error?

/*
 * --------------------------------------------------------------------------------------------------------------------
 * 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
	delay(4);				// Optional delay. Some board do need more time after init to be ready, see Readme
	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() {
	// Reset the loop if no new card present on the sensor/reader. This saves the entire process when idle.
	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));
}

Please note the connections for UNO.

Thanks.. Tom... :smiley: :+1: :coffee: :australia:

everything is wired correctly

The answer is no. See post #5. You may have destroyed the device already.

Why is this "dire trouble"?

I like to imagine things like the OP is on the Moon, running short of oxygen and for some reason it all depends on getting a sketch to function…

I know I work harder on other ppls’ problems when they express desperation. :wink:

a7

To expand …When you added the library , <MFRC522.h> To your computer , the folder would ( I hope ) include a few examples , try those first .

A digression but ….I tend to think it’s a homework task , given some months back, started today and due in tomorrow…

( not in this case ) .

edited to remove sarcastic content written in a weak moment :expressionless:

nono dont worry

i tried uploading some examples eg: dumpinfo, and are still getting the same error

Did you read my post #5 ?
Connecting a 3.3V device to a 5V Arduino may not work or may destroy the device.
You may have seen something directly connected that in the some tutorial from the web, but the only reason it worked be "He was lucky man".
I think the device has be considered destroyed if it has been used beyond its absolute maximum rating.

In other words, even if wiring is perfectly connected as you shown, it's wrong in the first place that schematics.

image

It’s just possible you device has “survived “ ( although over voltage stressing can shorten life ) so test it with an example provided with the library , correctly wired for 3.3v .
If it works - fine …then move onwards .