Hallo,
ich sitzte seid gestern dran und versuche meinen NFC Sensor zu Programmieren.
Leider bin ich in der ganzen Sache noch recht neu und habe da noch so meine Probleme mit.
Code:
#include <SPI.h>
#include <MFRC522.h>
#define SS_PIN 10
#define RST_PIN 9
MFRC522 mfrc522(SS_PIN, RST_PIN);

void setup()
{
Serial.begin(9600);
SPI.begin();
mfrc522.PCD_Init();
pinMode (2, OUTPUT); // Der Pin 2 ist jetzt ein Ausgang (Hier wird eine LED angeschlossen)

}

void loop()
{
if ( ! mfrc522.PICC_IsNewCardPresent())
{
return;
}

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

long code=0;

for (byte i = 0; i < mfrc522.uid.size; i++)
{
code=((code+mfrc522.uid.uidByte[i])*10);
}

Serial.print("Die Kartennummer lautet:");

Serial.println(code);

// Ab hier erfolgt die erweiterung des Programms.

if (code==1232922) // Wenn der Zahlencode 1232922 lautet...

{ // Programmabschniss öffnen

digitalWrite (2, HIGH); // ...dann soll die LED an Pin 2 leuchten...

delay (2000); // für 5 Sekunden

digitalWrite (2, LOW); // … und danach wieder aus gehen.

} // Programmabschnitt schließen

} // Sketch abschließen
Diesen Code habe ich gestern im Internet gefunden, und er funktioniert echt super so weit.
Allerdings möchte ich jetzt gerne einen Sketch, der bewirkt, das die Led bei erkennen der
Karte an geht und solange an bleibt, bis das ich wieder die Karte drüber ziehe.
Jetzt bin ich auf eine Stoßschaltungsanleitung gestoßen und habe versucht das umzuschreiben,
aber ich denke das war wohl etwas zu einfach gedacht.
Code:
#include <SPI.h>
#include <MFRC522.h>
#define SS_PIN 10
#define RST_PIN 9
MFRC522 mfrc522(SS_PIN, RST_PIN);

void setup()
{
Serial.begin(9600);
SPI.begin();
mfrc522.PCD_Init();
pinMode (2, OUTPUT); // Der Pin 2 ist jetzt ein Ausgang (Hier wird eine LED angeschlossen)

}



void loop()
{
if ( ! mfrc522.PICC_IsNewCardPresent())
{
return;
}

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

long code=0;

for (byte i = 0; i < mfrc522.uid.size; i++)
{
code=((code+mfrc522.uid.uidByte[i])*10);
}

Serial.print("Die Kartennummer lautet:");

Serial.println(code);

// Ab hier erfolgt die erweiterung des Programms.

if (code==1232922) // Wenn der Zahlencode 1232922 lautet...

{ // Programmabschniss öffnen

 if (2==LOW) {
  digitalWrite(2, HIGH);
}

if (2==HIGH) {
  digitalWrite(2, LOW);
}
} // Programmabschnitt schließen
  
  // put your main code here, to run repeatedly:
    
}
Leider geht es damit auch nicht, und jetzt bin ich fürs erste mit meinem Latein am ende.
Ich weiß das da noch viel Arbeit und lernen hinter steckt, aber das Projekt würde ich doch gerne schnell abschließen.

Kann mir einer sagen was ich falsch mache???

MFG

Black Zero