NFC Tags Midas 213 mit RC522 beschreiben? Machbar?

Hallo habe das Problem habe einen Sketch geschrieben der eine der Blockzeilen auf einer NFC beschreiben soll.

Mit Classic MiFare 1KB läuft das nur mit meinen Midas NFC 213 geht es leider nicht jemand eine Ahnung warum?

Sagt immer nur / Lost Connection/ bzw kein Zugriff

hier mein Sketch

#include <SPI.h>     // Import SPI-Bibiothek
#include <MFRC522.h> // Import RFID-Bibiothek
#include <LCD.h>
#include <LiquidCrystal_I2C.h>
#include <Wire.h>



LiquidCrystal_I2C lcd(0x27, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE);

int TasterW = 6;
int TasterS = 7;
constexpr uint8_t RST_PIN = 9;     //
constexpr uint8_t SS_PIN = 53;     //

MFRC522 mfrc522(SS_PIN, RST_PIN);   //


void setup() {
  Serial.begin(9600);        // serial PC
  SPI.begin();               //  SPI bus
  mfrc522.PCD_Init();        // MFRC522
  lcd.begin(20, 4); // LCD 20x4

  pinMode(TasterW, INPUT);
  pinMode(TasterS, INPUT);

}

void loop() {

  lcd.setCursor(1, 1);
  lcd.print(F("  NFC-Codezeile "));
  Serial.print(F("  NFC-Codezeile "));
  delay(4000);

  // Prüfung des NFC Tags
  MFRC522::MIFARE_Key key;
  for (byte i = 0; i < 6; i++) key.keyByte[i] = 0xFF;

  // Neue Karte?
  if ( ! mfrc522.PICC_IsNewCardPresent()) {
    return;
  }


  if ( ! mfrc522.PICC_ReadCardSerial()) {
    return;
  }

  Serial.println(F("**Card Detected:**"));


  lcd.clear();
  lcd.setCursor(1, 1);
  Serial.print("    NFC-TAG =>  ");
  lcd.print("    NFC-TAG =>  ");
  lcd.setCursor(0, 2);

  // Bytes der ID lesen und ausgeben
  Serial.print("/");
  lcd.print("/");
  for (byte i = 0; i < mfrc522.uid.size; i++) {
    Serial.print(mfrc522.uid.uidByte[i], HEX);
    lcd.print(mfrc522.uid.uidByte[i], HEX);
    Serial.print("/");
    lcd.print("/");
    Serial.println();
    delay(500);
  }
  delay(2000);


  Serial.print(F("NFC-Typ: "));   // Tag Typ
  MFRC522::PICC_Type piccType = mfrc522.PICC_GetType(mfrc522.uid.sak);
  Serial.println(mfrc522.PICC_GetTypeName(piccType));
  lcd.clear();
  lcd.setCursor(0, 1);
  lcd.print(F("     NFC-Typ: "));   //
  delay(1000);
  lcd.clear();
  lcd.setCursor(0, 1);
  lcd.print(mfrc522.PICC_GetTypeName(piccType));
  delay(2000);
  lcd.clear();
  byte buffer[8];
  byte block;
  MFRC522::StatusCode status;
  byte len;


  //!!!ab hier Eingabe erforderlich!!!//


  // Farbe?

  lcd.clear();
  lcd.setCursor(0, 1);
  lcd.print(F("Halbzeug Farbe/Code"));
  lcd.setCursor(0, 2);
  lcd.print(F("Eingabe 5sek halten"));
  delay(5000);


  // Taster Weiss gedrückt

  if (digitalRead(TasterW) == HIGH) {

    lcd.clear();
    lcd.setCursor(0, 1);
    lcd.print("  Weisses Halbzeug");
    delay(2000);
    lcd.clear();

    for (byte i = len; i < 1; i++) buffer[i] = 'W';     //Code
    block = 1;



    //Verbindung zu NFC Tag fehlerhaft

    status = mfrc522.PCD_Authenticate(MFRC522::PICC_CMD_MF_AUTH_KEY_A, block, &key, &(mfrc522.uid));
    if (status != MFRC522::STATUS_OK) {
      delay(1000);
      lcd.clear();
      lcd.setCursor(0, 1);
      lcd.print(F(" PCD_Authenticate()       failed: "));
      lcd.print(mfrc522.GetStatusCodeName(status));
      Serial.print(F(" PCD_Authenticate()       failed: "));
      Serial.println(mfrc522.GetStatusCodeName(status));
      delay(1000);
      lcd.clear();
      return;
    }

    // Verbindung OK

    else Serial.println(F(" PCD_Authenticate()       success: "));
    delay(1000);
    lcd.clear();
    lcd.setCursor(0, 1);
    lcd.print(F(" PCD_Authenticate()       success: "));


    // Schreibe Code
    status = mfrc522.MIFARE_Write(block, buffer, 16);
    if (status != MFRC522::STATUS_OK) {
      delay(1000);
      lcd.clear();
      lcd.setCursor(0, 1);
      lcd.print(F("   MIFARE_Write()            failed: "));
      lcd.print(mfrc522.GetStatusCodeName(status));
      Serial.print(F("   MIFARE_Write()            failed: "));
      Serial.println(mfrc522.GetStatusCodeName(status));
      delay(1000);
      lcd.clear();
      return;
    }
    else Serial.println(F("   MIFARE_Write()         success: "));
    delay(1000);
    lcd.clear();
    lcd.setCursor(0, 1);
    lcd.print(F("   MIFARE_Write()         success: "));


    delay(1000);
    lcd.clear();
    lcd.setCursor(0, 1);

    lcd.print("       Fertig");

    delay(2000);
    lcd.clear();
    lcd.setCursor(0, 1);
    lcd.print(" NFC-Tag entfernen");

    delay(6000);
    lcd.clear();
    mfrc522.PICC_HaltA();
    mfrc522.PCD_StopCrypto1();
    return;
  }



  else

    if (digitalRead(TasterS) == HIGH) {

      lcd.clear();
      lcd.setCursor(0, 1);
      lcd.print(" Schwarzes Halbzeug");
      delay(2000);
      lcd.clear();

      for (byte i = len; i < 1; i++) buffer[i] = 'S';     //Code
      block = 1;



      //Verbindung zu NFC Tag fehlerhaft

      status = mfrc522.PCD_Authenticate(MFRC522::PICC_CMD_MF_AUTH_KEY_A, block, &key, &(mfrc522.uid));
      if (status != MFRC522::STATUS_OK) {
        delay(1000);
        lcd.clear();
        lcd.setCursor(0, 1);
        lcd.print(F(" PCD_Authenticate()       failed: "));
        lcd.print(mfrc522.GetStatusCodeName(status));
        Serial.print(F(" PCD_Authenticate()       failed: "));
        Serial.println(mfrc522.GetStatusCodeName(status));
        delay(1000);
        lcd.clear();
        return;
      }

      // Verbindung OK

      else Serial.println(F(" PCD_Authenticate()       success: "));
      delay(1000);
      lcd.clear();
      lcd.setCursor(0, 1);
      lcd.print(F(" PCD_Authenticate()       success: "));

      // Schreibe Code
      status = mfrc522.MIFARE_Write(block, buffer, 16);
      if (status != MFRC522::STATUS_OK) {
        delay(1000);
        lcd.clear();
        lcd.setCursor(0, 1);
        lcd.print(F("   MIFARE_Write()           failed: "));
        lcd.print(mfrc522.GetStatusCodeName(status));
        Serial.print(F("   MIFARE_Write()           failed: "));
        Serial.println(mfrc522.GetStatusCodeName(status));
        delay(1000);
        lcd.clear();
        return;
      }
      else Serial.println(F("   MIFARE_Write()         success: "));
      delay(1000);
      lcd.clear();
      lcd.setCursor(0, 1);
      lcd.print(F("   MIFARE_Write()         success: "));

      delay(1000);
      lcd.clear();
      lcd.setCursor(0, 1);

      lcd.print("       Fertig");

      delay(2000);
      lcd.clear();
      lcd.setCursor(0, 1);
      lcd.print(" NFC-Tag entfernen");

      delay(6000);
      lcd.clear();
      mfrc522.PICC_HaltA();
      mfrc522.PCD_StopCrypto1();
      return;

      // Keine Farbauswahl getroffen?

    }     else
      delay(2000);
  lcd.clear();
  lcd.setCursor(0, 1);
  lcd.print("       Fehler ");
  lcd.setCursor(0, 2);
  lcd.print(" NFC-Tag entfernen ");
  delay(6000);
  lcd.clear();
  mfrc522.PICC_HaltA();
  mfrc522.PCD_StopCrypto1();
  return;


}

Hilfe wäre klasse wollte es die Woche fertig bekommen, Danke

Da wird wohl die Midas NFC 213 ein anderes Protokoll haben, als die Classic MiFare 1KB.
Da musst Du mal in deren Datenblatt schauen, wie die beschrieben werden will.

In der Lib sind nur verschiedene MiFare aufgeführt, keine Midas.

Gruß Tommy

Ok das kann sein dachte mir schon das es an der Lib oder dem Status liegt.
Frage ist nur wo ich eine passend Lib her bekomme weil mitgelieferte Infos gab es nicht wirklich zu den Tags.

  1. Warum stellst Du die gleiche Frage in 2 verschiedenen Threads?
  2. Warum kaufst Du Sachen, zu denen Du vorher keine Info hast und zu denen auch der Hersteller nichts liefert?

Gruß Tommy

Gucke mal nach passenden LIB danke hoffe damit geht es.

Habe Tags und RC522 mit Arduino einfach so bestellt weil hier keiner Ahnung davon hat und ich musste es mir ja auch erstmal beibringen :wink:

Da gibt es schon mal Probleme mit Kompatibilitäten ^^