RFID-Sensor funtkioniert nicht

Hallo, ich bin dabei einen Beispielsketch zu programmieren um zu testen ob mein RFID-RC522 Sensor noch funktioniert. Ich habe ihn soweit ich weiß richtig angeschlossen. Hier kurz einmal ein Überblick: SDA-10; SCK-13; MOSI-11; MISO-12; IRQ-nicht belegt; GND-GND; RST-9; VCC-3.3V.
Strom ist da, weil die LED (genannt D1) rot leuchtet. Sonst tut sich an den Signalleuchten aber nichts. Mein RFID-CHip hat die gleiche Frequenz wie der Sensor. Anbei sende ich noch mein Programm:

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

#define RST_PIN         9           // RST-Pin des RFID-Readers
#define SS_PIN          10          // SDA(Pin 10) des RFID-Readers

MFRC522 rfid(SS_PIN, RST_PIN);      // Erstellen einer MFRC522-Instanz

void setup() {
  Serial.begin(9600);               // Serielle Kommunikation starten
  SPI.begin();                      // SPI-Bus initialisieren
  rfid.PCD_Init();                  // RFID-Reader initialisieren

  Serial.println("Bereit zum Scannen nach RFID-Tags!");
  Serial.println("Bitte halten Sie einen Tag in Reichweite des Readers.");
  Serial.println();
}

void loop() {
  // Überprüfen, ob ein neuer Tag erkannt wird
  if (rfid.PICC_IsNewCardPresent()) {
    if (rfid.PICC_ReadCardSerial()) {
      // RFID-Tag erfolgreich erkannt
      Serial.print("Tag ID: ");
      printUID(rfid.uid.uidByte, rfid.uid.size);
      Serial.println();
      delay(1000);

      // Weiteres Lesen verhindern, um nicht denselben Tag wiederholt zu lesen
      rfid.PICC_HaltA();
    }
  }

  // Warten, bis der Tag entfernt wird
  if (!rfid.PICC_IsNewCardPresent()) {
    delay(100);
  }
}

// Funktion zum Drucken der Tag-ID (UID)
void printUID(byte *uid, byte uidLength) {
  for (byte i = 0; i < uidLength; i++) {
    Serial.print(uid[i] < 0x10 ? " 0" : " ");
    Serial.print(uid[i], HEX);
  }
}

Liebe Grüße Simon

Die lib bringt Beispiele mit.
Geht das "Dumpinfo" ?
Nur wenn nein: Foto vom Aufbau. Von Oben. Damit man sauber die Verkabelung sieht.
(Nicht überall die gleichen farben nehmen :slight_smile: )

Interessant wäre noch zu wissen an welchem microcontroller du das ganze betreibst?

Welches Modul hast Du?
SDA kommt mir komisch vor ich erwarte mir ein SS bzw EN.
Grüße Uwe

Meinst du den Microcontroller? Das wäre ein Arduino-Uno. Der Sensor heißt RFID-RC522

Was meinst du mit Dumpinfo?
Liebe Grüße Simon


Wenns das da ist, kommt das schon hin

Er meint das Beispiel Dump info aus der library

Achso, okay. Ivh schaue kurz nach und meld mich dann wieder

Ja, der ist es

DATEI - BEISPIELE - MRFC522 - DUMPINFO

[Das ist ein ganzer Satz]

Unter welcher Libary muss ich da suchen?

In der IDE, genau so wie von mir beschrieben.

Jetzt hab ichs. Danke

Also die "DumpInfo" klappt auf jeden Fall. Ich bekomme im Serial Monitor die "Card UID", die " Card SAK" und den "PICC type" angezeigt.
Außerdem noch den "Sector Block"

Dann funktioniert die Hardware. Der Fehler ist also im Sketch.
Grüße Uwe

Tue den teil mal raus

Dein Sketch ist doch nix anderes, als eine Abwandlung vom Example rfid_default_keys.
Kürzt man den auf den wichtigen Teil runter, kommt raus:

#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 card
  Serial.println(F("Try the most used default keys to print block 0 of a MIFARE PICC."));
}

/*
   Helper routine to dump a byte array as hex values to Serial.
*/
void dump_byte_array(byte *buffer, byte bufferSize)
{
  for (byte i = 0; i < bufferSize; i++)
  {
    Serial.print(buffer[i] < 0x10 ? " 0" : " ");
    Serial.print(buffer[i], HEX);
  }
}



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; }
  // Show some details of the PICC (that is: the tag/card)
  Serial.print(F("Card UID:"));
  dump_byte_array(mfrc522.uid.uidByte, mfrc522.uid.size);
  Serial.println();
}

Was passiert, wenn Du den Code einspielst?

Ich habe bereits einen neuen, sketch, dieser funtkioniert jetzt gut. Ich weiß nicht, was das Problem bei dem anderen war.
Naja jedenfalls trotzdem danke fürs Helfen. Ich wusste zum Beispiel nicht, dass es bei IDE auch Beispiele gibt.
Liebe Grüße Simon :wink:

Möchtest Du zeigen, was Du hast?
Gut liegt möglicherweise im Auge des Betrachters...