LED mit einem RFID-Chip steuern

Ziel: Eine LED mit einem autorisierten RFID-Chip anschalten.

Material:

- Arduino UNO

- Breadboard

- 1 LED

- RFID RC522 Modul

- 1 Widerstand (220 Ohm)

- mehrere Steckverbinder

Aufbau:

Untitled Sketch_Steckplatine.jpg

      Pin 9 = RST
      Pin 10 = SDA
      Pin 11 = MOSI
      Pin 12 = MISO
      Pin 13 = SCK
      GND = GND
      3,3V = 3,3V


      Pin 2 = Led

Code 1: Dieser Code liest nur die ID des Tags.

/*
   Dieser Code liest die ID des Rfid-Tags auf einem Arduino UNO aus.
    Aufbau (siehe Zeichnung oben):
      Pin 9 = RST
      Pin 10 = SDA
      Pin 11 = MOSI
      Pin 12 = MISO
      Pin 13 = SCK
      GND = GND
      3,3V = 3,3V
 
*/
#include   //SPI der Bibliothek hinzufügen
#include
  //RFID der Bibliothek hinzufügen
#define SS_PIN 10 //SDA Pin definieren
#define RST_PIN 9 //RST Pin definieren
MFRC522 mfrc522(SS_PIN, RST_PIN); //RIFD Empfänger benennen
void setup()  //Begin des Setups
{
  Serial.begin(9600); //Serielle Verbindung starten (Monitor)
  SPI.begin();  //SPI-Verbindung aufbauen
  mfrc522.PCD_Init(); //Initialisierung des RFID-Empfängers
}
void loop() //Hier beginnt der Loop-Teil
{
  if ( ! mfrc522.PICC_IsNewCardPresent()) //Wenn eine Karte in Reichweite ist...
  {
    return; //gehe weiter...
  }
  if ( ! mfrc522.PICC_ReadCardSerial()) //Wenn ein RFID-Sender ausgewählt wurde
  {
    return; //gehe weiter...
  }
  long code = 0;  // Als Variable „code“ hinzufügen, unter welcher später die UID als zusammenhängende Zahl ausgegeben wird. Statt int benutze ich jetzt den Zahlenbereich „long“, weil sich dann eine größere Zahl speichern lässt.
  for (byte i = 0; i < mfrc522.uid.size; i++)
  {
    code = ((code + mfrc522.uid.uidByte[i]) * 10);  // Nun werden vier Blöcke ausgelesen und in jedem Durchlauf wird der Code mit dem Faktor 10 „gestreckt“. (Eigentlich müsste man hier den Wert 1000 verwenden, jedoch würde die Zahl dann zu groß werden.)
  }
  Serial.print("Die Kartennummer lautet:"); // Zum Schluss wird der Zahlencode (Man kann ihn nicht mehr als UID bezeichnen) ausgegeben.
  Serial.println(code);
}

Wichtig!!!!! Öffne: Arduino Werkzeuge-------> Serieller Monitor. Dort erscheint die ID des Tags. Diese ID muss man dann in Code 2 einfügen.

 

Code 2:

#include
#include
#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 == 962030) // Wenn der Zahlencode 962030 lautet...   hier muss man die ID einfügen
  { // Programmabschniss öffnen
    digitalWrite (2, HIGH); // ...dann soll die LED an Pin 2 leuchten...
    delay (5000); // für 5 Sekunden
    digitalWrite (2, LOW); // … und danach wieder aus gehen.
  } // Programmabschnitt schließen
} // Sketch abschließen