MFRC522 funktioniert nicht

Hey,
ich wollte gerade mein RIFD gerät das ich an ein Arduino UNO Bord angeschlossen habe testen aber wenn ich den Example Code DumpInfo nutze dann passiert nichts sobald ich einen Chip hinhalte. die Meldung: Warning: this example overwrites the UID of your UID changeable card, use with care!
wird mir zwar im Serial Monitor angezeigt und das Licht D1 leuchtet jedoch passiert nichts sobald ich meinen Chip hinhalte.
Kabel sitzen alle richtig und ich weiß nicht mehr weiter da ich schon so gut wie alles probiert habe.

Ich hoffe jemand von euch kann mir helfen!!
Danke!!

Welche Library verwendest du?
Und mit anderem Beispielcodes?
Vielleicht machst du auch irgend was falsch? Das kann man an deinem Text nicht erkennen.

Nicht das der ist Schreibgeschützt, hast du die Karte was dabei war, mit der Testen.

Die UID ist eigenlich nicht änderbar. Es gibt Karten bei denen man sie ändern kann; diese sind aber dann im Angebot extra damit gekennzeichnet.
Vielfach ist die UID der Karte das Erkennungsmerkmal der Karte und keine Daten bzw kryptografische Alogaritmen im lesegeschützten Bereich. Darum macht ein Überschreiben der UID die Karte oft wertlos.

Mir dünkt es komisch, daß der Sketch dies (UID ändern) vorsieht.
Hat die Bibliothek auch noch andere Beispiele?

Grüße Uwe

die MFRC522
habe das aus dem Arduino Tutorial aber ich glaube das ist das gleiche oder sowas ähnliches
Kabel sind alle richtig Library habe ich.
Ich lade halt z.B. den DumpInfo code hoch und dann kommt halt im Serial Monitor diese eine Meldung: Warning: this example overwrites the UID of your UID changeable card, use with care!
und wenn ich dann den Chip oder die Karte hinhalte wird mir im Serial Monitor nichts angezeigt.
Ich wüsste ehrlich gesagt nicht was ich da falsch mache.
Vielleicht kannst du mir ja weiterhelfen!

Hab ich auch schon ausprobiert. Damit passiert auch nichts.

image
Ich weiß nicht was ich davon alles probieren kann.

Hallo @ghg54353,

willkommen im Arduino-Forum.

Das A und O bei der Problemanalyse sind präzise Angaben.

Welcher RFID-Leser? Link zum Onlineshop / Link zum Datenblatt

Den Code als Code-Section posten

Welche Library benutzt? exakte Angabe wie die heißt und von wo du sie heruntergeladen hast.

Es ist ein sehr häufiger Fehler das User glauben alles richtig gemacht zu haben und sobald jemand anderes dranschaut wird doch ein Fehler gefunden.

Um Fotos posten zu können musst du ein paar kleine Dinge erledigen:
Um auf Trustlevel 1 zu kommen muss man
Get to trust level 1 by…

mindestens 5 verschiedene Themen angeklickt haben
mindestens 30 postings gelesen haben (= müssen auf dem Bildschirm angezeigt worden sein)
mindestens 10 minutes lang im Forum unterwegs gewesen sein

Dann Fotos von deinem Aufbau posten aus denen man eindeutig erkennen kann welcher Pin ist mit was verbunden.
Dazu muss man die Fotos von genau senkrecht oben drüber machen.
Wenn man schräg fotografiert dann kann man nicht wirklich erkennen in welchem Pin das Kabel eingesteckt ist.

Wo ist die VCC am Arduino angeklemmt? der darf nur auf 3,3V

Tut mir leid wenn meine Angaben zu unpräzise sind aber ich kenne mich in dem Bereich leider nicht so gut aus.
Der RFID heißt: RFID-RC522 hab den mit dem Most Complete Starter Kit von ELEGOO gekauft.
Ich benutze die MFRC522 die man ganz normal auf Arduino herunterladen kann. GitHub - miguelbalboa/rfid: Arduino RFID Library for MFRC522

Der Code ist:


//www.elegoo.com
//2016.12.09

/*
 * --------------------------------------------------------------------------------------------------------------------
 * Example to change UID of changeable MIFARE card.
 * --------------------------------------------------------------------------------------------------------------------
 * This is a MFRC522 library example; for further details and other examples see: https://github.com/miguelbalboa/rfid
 * 
 * This sample shows how to set the UID on a UID changeable MIFARE card.
 * NOTE: for more informations read the README.rst
 * 
 * @author Tom Clement
 * @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

/* Set your new UID here! */
#define NEW_UID {0xDE, 0xAD, 0xBE, 0xEF}

MFRC522::MIFARE_Key key;

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 card
  Serial.println(F("Warning: this example overwrites the UID of your UID changeable card, use with care!"));
  
  // Prepare key - all keys are set to FFFFFFFFFFFFh at chip delivery from the factory.
  for (byte i = 0; i < 6; i++) {
    key.keyByte[i] = 0xFF;
  }
}

// Setting the UID can be as simple as this:
//void loop() {
//  byte newUid[] = NEW_UID;
//  if ( mfrc522.MIFARE_SetUid(newUid, (byte)4, true) ) {
//    Serial.println("Wrote new UID to card.");
//  }
//  delay(1000);
//}

// But of course this is a more proper approach
void loop() {
  
  // Look for new cards, and select one if present
  if ( ! mfrc522.PICC_IsNewCardPresent() || ! mfrc522.PICC_ReadCardSerial() ) {
    delay(50);
    return;
  }
  
  // Now a card is selected. The UID and SAK is in mfrc522.uid.
  
  // Dump UID
  Serial.print(F("Card UID:"));
  for (byte i = 0; i < mfrc522.uid.size; i++) {
    Serial.print(mfrc522.uid.uidByte[i] < 0x10 ? " 0" : " ");
    Serial.print(mfrc522.uid.uidByte[i], HEX);
  } 
  Serial.println();

  // Dump PICC type
//  MFRC522::PICC_Type piccType = mfrc522.PICC_GetType(mfrc522.uid.sak);
//  Serial.print(F("PICC type: "));
//  Serial.print(mfrc522.PICC_GetTypeName(piccType));
//  Serial.print(F(" (SAK "));
//  Serial.print(mfrc522.uid.sak);
//  Serial.print(")\r\n");
//  if (  piccType != MFRC522::PICC_TYPE_MIFARE_MINI 
//    &&  piccType != MFRC522::PICC_TYPE_MIFARE_1K
//    &&  piccType != MFRC522::PICC_TYPE_MIFARE_4K) {
//    Serial.println(F("This sample only works with MIFARE Classic cards."));
//    return;
//  }
  
  // Set new UID
  byte newUid[] = NEW_UID;
  if ( mfrc522.MIFARE_SetUid(newUid, (byte)4, true) ) {
    Serial.println(F("Wrote new UID to card."));
  }
  
  // Halt PICC and re-select it so DumpToSerial doesn't get confused
  mfrc522.PICC_HaltA();
  if ( ! mfrc522.PICC_IsNewCardPresent() || ! mfrc522.PICC_ReadCardSerial() ) {
    return;
  }
  
  // Dump the new memory contents
  Serial.println(F("New UID and contents:"));
  mfrc522.PICC_DumpToSerial(&(mfrc522.uid));
  
  delay(2000);
}

Danke schonmal

Ja das hab ich so



hier noch die Bilder

Bitte lies noch mal genau.

Der Sketch "DumpInfo" LIEST

Der Sketch den du aktuell aufgespielt und hier gepostet hat ist offenbar der ChangeUID
Der Sketch ÄNDERT die UID

Schritt 1 ist jetzt also mal dass du den DumpInfo aufbringst.

Habs jetzt mit DumpInfo ausprobiert da wird im Serial Monitor gar nichts ausgegeben.

EDIT: habs jetzt nochmal hochgeladen und jetzt kommt das: WARNING: Communication failure, is the MFRC522 properly connected?

Scan PICC to see UID, SAK, type, and data blocks...

Auch den Sketch posten. Auch dann wenn es 1 zu 1 der Demo-Sketch ist.
Es könnte verschiedene Versionen geben, du könntest ganz unabsichtlich irgendeine Kleinigkeit geändert haben.

Deshalb sketch noch einmal compilieren Test machen und dann den Sketch über die Funktionen
Fürs Forum kopieren als Code-Section hier posten

/*
 * --------------------------------------------------------------------------------------------------------------------
 * 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
 *
 * More pin layouts for other boards can be found here: https://github.com/miguelbalboa/rfid#pin-layout
 */

#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));
}

Das ist er.

Leuchtet die D1 am Kartenleser?

Ansonsten fällt mir nur ein dass eines deiner Dupont Kabel kaputt sein könnte oder der ganze Kartenleser.

ja D1 leuchtet

Ich habe es jetzt testweise aufgebaut.
Einmal mit einem RFID-Leser der deinem sehr ähnlich sieht.
Blaue Platine gleiche Pin-Reihenfolge

Damit hat das auslesen nicht funktioniert

Dann habe ich einen anderen RFID-Leser von Funduino genommen
und damit klappt das auslesen.

Hast du ein Digital-Multimeter?
Damit könntest du die Jumperwire durchpiepsen

Du könntest du den Arduino vom USB-Port trennen
aber alles verbunden lassen und dann die Prüfspitzen des DMM jeweils auf die Lötpunkte setzen
und durchpiepsen ob da Kontakt da ist.

Andere Jumperwire verwenden

vgs

Was ich ein bisschen verwunderlich finde ist, dass es in diesem Online-Tutorial ganz genauso an einen Arduino Uno angeschlossen wird

und es scheinbar keine Probleme macht die 5V IO-pins des Arduino an einen 3.3V-Chip anzuschliessen. Die 5V könnten auch zu viel sein und den Chip beschädigen.
Kann sein dass der Chip 5V tolerant ist oder Strombegrenzungswiderstände auf der Platine sind
Manche Internetseiten sagen man kann den RC522-Chip an 5V anschliessen

Andere sagen lieber nicht weil man sich mit 5V außerhalb der vom Hersteller erlaubten maximalen Werte befindet.

Wenn man jetzt noch mehr herausfinden will, dann müsste man mal mit einem Logic Analyser das Bitbanging auf den Datenleitungen aufzeichnen.

vgs