Korrekte Anbindung eines RFID-RC522 an einen Raspberry PI

Ich bin gerade dabei, einen einfachen Hörbuch-Spieler für meine Kids zu bauen. Ein Bestandteil davon sind RFID-Chips für jedes Hörbuch. Ein RFID-RC522-Leser erkennt diese und spielt das entsprechende Hörbuch ab.

Die Anbindung der RFID-RC522-Platine hat sich als schwieriger herausgestellt als gedacht, da fast alle Anleitungen hierzu im Internet eine falsche Belegung angeben, die aber mit einem aktuellen Raspberry nicht funktionieren. Oder sie funktionieren, erlauben aber keine Interrupts und sind damit sehr stromhungrig.

Mit dieser Schaltung geht es sehr kompakt und einfach:

Sie erlaubt die Verwendung von Interrupts, womit sehr stromsparende Anwendungen möglich sind. Den Schaltplan gibt es bei Fritzing.org.

2 Gedanken zu „Korrekte Anbindung eines RFID-RC522 an einen Raspberry PI“

  1. Hallo Herr Huwig,
    dieser Link war der einzige den ich gefunden habe, wo der RC522 mit dem IRQ in Verbindung gebracht wurde.
    Ihr Schaltplan ist zwar schön und gut aber ich schaffe es nicht, den IRQ in Python abzufangen. Er reagiert einmal beim Start auf GPIO.FALLING aber das war es dann.
    Es würde mich freuen, wenn Sie einen Tipp hätten

    1. Hallo Herr Schommer,

      ich verwende die MFRC522-Bibliothek so:


      # Never stop reading
      while continue_reading:
      (status,TagType) = MIFAREReader.MFRC522_Request(MIFAREReader.PICC_REQIDL)
      if status == MIFAREReader.MI_OK:
      print "Card detected"
      (status,backData) = MIFAREReader.MFRC522_Anticoll()
      if status == MIFAREReader.MI_OK:
      strbackData = str(backData[0])+","+str(backData[1])+","+str(backData[2])+","+str(backData[3])+","+str(backData[4])

      print "Card read UID: " + strbackData

      # Do something (based on card and config file)

      Reicht ihnen das? Falls nicht, dann bitte die Frage etwas genauer stellen, am besten mit Code.

      Viele Grüße
      Kurt Huwig

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.