Jak używać modułu RC522 RFID z Arduino

How to Use the RC522 RFID Module with Arduino

RC522 to popularny moduł RFID używany do komunikacji i identyfikacji bezprzewodowej. Jest szeroko stosowany w systemach kontroli dostępu, systemach płatności bez kontaktu i śledzeniu zapasów. Ten samouczek poprowadzi Cię do interfejsu modułu RC522 RFID z Arduino do czytania tagów i kart RFID.


Czego będziesz potrzebować

  1. Moduł RC522 RFID
  2. Arduino Board (np. UNO, Mega, Nano)
  3. Tagi lub karty RFID (13,56 MHz)
  4. Druty chleba i skoczków
  5. Komputer z zainstalowanym Arduino IDE

Krok 1: Zrozumienie modułu RC522 RFID

Moduł RC522 RFID działa przy 13,56 MHz i komunikuje się z mikrokontrolerem za pomocą protokołu SPI. Jest wyposażony w antenę RFID i obsługuje zarówno operacje czytania, jak i pisania.

RC522 Pinout

Szpilka Funkcjonować
SDA SPI SS (Slave Select)
SCK Zegar SPI
Mosi Wejście danych SPI
Miso Wyjście danych SPI
Irq Żądanie przerwania (opcjonalnie)
GND Grunt
RST Nastawić
3,3 V. Zasilacz

Notatka: RC522 działa na logice 3,3 V; Upewnij się, że połączenia spełniają wymagania napięcia planszy.


Krok 2: Okablowanie RC522 do Arduino

Oto jak podłączyć moduł RC522 RFID z Arduino Uno:

PIN RC522 PIN Arduino
SDA Pin 10
SCK Pin 13
Mosi Pin 11
Miso Pin 12
Irq Nie połączone
GND GND
RST Pin 9
3,3 V. 3,3 V.

Notatka: W przypadku innych płyt Arduino upewnij się, że prawidłowo mapujesz piny SPI.


Krok 3: Zainstaluj wymaganą bibliotekę

Aby pracować z modułem RC522, zainstaluj bibliotekę „MFRC522”.

Kroki do zainstalowania:

  1. Otwórz Arduino IDE.
  2. Idź do Naszkicować > Uwzględnij bibliotekę > Zarządzaj bibliotekami.
  3. Wyszukaj „MFRC522” i kliknij Zainstalować.

Krok 4: Prześlij kod

Oto przykład szkicu do odczytania danych znacznika RFID:

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

#define RST_PIN 9  // Reset pin
#define SS_PIN 10  // Slave select pin

MFRC522 rfid(SS_PIN, RST_PIN); // Create an instance of the MFRC522 library

void setup() {
  Serial.begin(9600);
  while (!Serial);

  SPI.begin();      // Initialize SPI bus
  rfid.PCD_Init();  // Initialize RFID reader

  Serial.println("RC522 RFID Reader Initialized");
}

void loop() {
  // Check for a new card
  if (!rfid.PICC_IsNewCardPresent() || !rfid.PICC_ReadCardSerial()) {
    return;
  }

  Serial.println("Card detected:");

  // Print the UID of the card
  Serial.print("UID: ");
  for (byte i = 0; i < rfid.uid.size; i++) {
    Serial.print(rfid.uid.uidByte[i] < 0x10 ? " 0" : " ");
    Serial.print(rfid.uid.uidByte[i], HEX);
  }
  Serial.println();

  rfid.PICC_HaltA(); // Halt the card
}

Krok 5: Przetestuj konfigurację

  1. Podłącz Arduino do komputera za pomocą USB.
  2. Otwórz Arduino IDE i wybierz poprawne Tablica I Port pod Narzędzia menu.
  3. Prześlij kod do Arduino, klikając Wgrywać.
  4. Otwórz monitor szeregowy (Narzędzia > Monitor szeregowy) i ustaw wskaźnik transmisji na 9600.
  5. Umieść znacznik lub kartę RFID w pobliżu modułu. UID karty zostanie wyświetlony w monitorze szeregowym.

Opcjonalnie: Zapisanie danych do znacznika RFID

Aby zapisać dane do znacznika RFID, możesz użyć PICC_Write Funkcja w bibliotece MFRC522. Szczegółowe operacje zapisu można znaleźć w przykładach biblioteki.


Zastosowania RC522

  1. Systemy kontroli dostępu
  2. Systemy płatności bez kontaktu
  3. Śledzenie i zarządzanie zapasami
  4. Inteligentne systemy frekwencji

Rozwiązywanie problemów

  • Brak odpowiedzi z modułu: Sprawdź okablowanie i upewnij się, że połączenia SPI są prawidłowe.
  • UID nie wykryty: Upewnij się, że znacznik znajduje się w zakresie anteny RFID.
  • Błędy biblioteczne: Sprawdź poprawnie instalowany biblioteka MFRC522.

Wniosek

Z powodzeniem połączyłeś moduł RC522 RFID z Arduino, umożliwiając odczytanie danych tagów RFID. Ten wszechstronny moduł jest idealny do projektów wymagających komunikacji bezprzewodowej i identyfikacji. Eksperymentuj z dodatkowymi funkcjami, takimi jak zapisywanie danych do tagów lub integracja ich z większymi systemami dla zaawansowanych aplikacji!

Zostaw komentarz

Notice an Issue? Have a Suggestion?
If you encounter a problem or have an idea for a new feature, let us know! Report a problem or request a feature here.