ماژول RFID RC522 آردوینو؛ آموزش اتصال، خواندن کارت و کدنویسی
ماژول RFID RC522 آردوینو یکی از روشهای ساده برای اضافه کردن
قابلیت شناسایی بدون تماس به پروژههای Arduino است. این ماژول در فرکانس
13.56MHz کار میکند و با کارتها و تگهای سازگار با ISO/IEC 14443A ارتباط دارد.
از سیستم کنترل ورود و خروج گرفته تا حضور و غیاب و قفل الکترونیکی،
RC522 در پروژههای مختلف کاربرد دارد. در ادامه ابتدا عملکرد RFID را بررسی
میکنیم، سپس به سراغ پایهها، اتصال SPI، کتابخانه MFRC522، خواندن UID،
نوشتن اطلاعات و ساخت سیستم کنترل دسترسی میرویم.
📌 RC522 در یک نگاه
13.56MHz
MFRC522
SPI / I2C / UART
ISO/IEC 14443A
2.5 تا 3.3V
شناسایی بدون تماس
RFID چیست و چگونه کار می کند؟
RFID مخفف Radio Frequency Identification است و برای شناسایی تجهیزات از
امواج رادیویی استفاده میکند. یک سیستم معمول RFID شامل Reader و Tag است؛
Reader میدان RF ایجاد میکند و Tag پس از قرار گرفتن در محدوده مناسب،
اطلاعات خود را برای Reader ارسال میکند.
تگهای Passive باتری ندارند و انرژی موردنیاز تراشه را از میدان Reader
دریافت میکنند. سپس Tag با تغییر دادن میدان دریافتی، اطلاعات خود را
به Reader برمیگرداند؛ این فرایند با عنوان Backscatter شناخته میشود.

💡 Passive و Active چه تفاوتی دارند؟
تگ Passive باتری ندارد و انرژی را از میدان Reader میگیرد. در مقابل،
تگ Active منبع تغذیه مستقل دارد و میتواند برای کاربردهایی با برد بیشتر
طراحی شود.
ماژول RFID RC522 چیست؟
RC522 یک برد Reader/Writer مبتنی بر تراشه MFRC522 است. این تراشه برای
ارتباط بدون تماس در فرکانس 13.56MHz طراحی شده و کارتها و تگهای سازگار
با ISO/IEC 14443A را پشتیبانی میکند. NXP همچنین رابطهای SPI، I2C و UART
را برای ارتباط با سیستم میزبان معرفی کرده است.
نسخههای رایج این ماژول معمولاً همراه یک کارت و یک Key Fob عرضه میشوند.
بنابراین میتوانید بعد از سیمکشی، عملکرد Reader را سریعاً آزمایش کنید.
پایه های RC522 چه کاربردی دارند؟
در نسخههای رایج، ماژول RC522 هشت پایه دارد. هر پایه نقش مشخصی در تغذیه،
کنترل یا ارتباط با میکروکنترلر بر عهده دارد.
| پایه | وظیفه |
|---|---|
| VCC | تغذیه |
| GND | زمین |
| RST | Reset |
| IRQ | Interrupt |
| MISO | SPI MISO |
| MOSI | SPI MOSI |
| SCK | SPI Clock |
| SS / SDA | Chip Select / I2C Data |
⚠️ نکته مهم درباره تغذیه RC522
MFRC522 به ولتاژ 2.5 تا 3.3V نیاز دارد. برای ماژول RC522، اتصال VCC به
3.3V انتخاب رایجی است؛ با این حال، مشخصات برد خود را پیش از سیمکشی بررسی کنید.

اتصال RC522 به Arduino Uno با SPI
در Arduino Uno، SPI سختافزاری روی D11، D12 و D13 قرار دارد و میتوان
D10 را برای Chip Select اختصاص داد. در نمونه این آموزش، پایه RST نیز
به D9 وصل میشود.
| RC522 | Arduino Uno | وظیفه |
|---|---|---|
| VCC | 3.3V | تغذیه |
| GND | GND | زمین |
| RST | D9 | Reset |
| SS | D10 | Chip Select |
| MOSI | D11 | SPI Data |
| MISO | D12 | SPI Data |
| SCK | D13 | Clock |

🔧 به دنبال قطعات و تجهیزات آردوینو هستید؟
برای مشاهده انواع بردهای آردوینو، ماژولها، سنسورها و قطعات مورد نیاز پروژههای خود،
به فروشگاه قطعات الکترونیکی پژوهشگران مراجعه کنید.
کتابخانه MFRC522 را چگونه نصب کنیم؟
کتابخانه MFRC522 ارتباط Arduino با Reader را ساده میکند. برای نصب آن،
Arduino IDE را باز کنید و از Library Manager عبارت MFRC522 را جستوجو کنید.
بعد از نصب، مثالهای آماده کتابخانه را نیز میتوانید بررسی کنید.
📦 اولین تست با DumpInfo
مثال DumpInfo برای بررسی اولیه ارتباط مناسب است. کارت را مقابل Reader
قرار دهید و Serial Monitor را باز کنید؛ در صورت کارکرد صحیح، اطلاعات کارت
و UID آن را مشاهده خواهید کرد.
خواندن UID کارت RFID با Arduino
UID یکی از نخستین اطلاعاتی است که در پروژههای شناسایی RFID به آن نیاز دارید.
Arduino میتواند UID را بخواند و سپس بر اساس آن، کارت مجاز یا ناشناس را تشخیص دهد.
#include <SPI.h>
#include <MFRC522.h>
#define SS_PIN 10
#define RST_PIN 9
MFRC522 rfid(SS_PIN, RST_PIN);
void setup() {
Serial.begin(9600);
SPI.begin();
rfid.PCD_Init();
Serial.println("Scan your RFID card...");
}
void loop() {
if (!rfid.PICC_IsNewCardPresent())
return;
if (!rfid.PICC_ReadCardSerial())
return;
Serial.print("UID: ");
for (byte i = 0; i < rfid.uid.size; i++) {
if (rfid.uid.uidByte[i] < 0x10)
Serial.print("0");
Serial.print(rfid.uid.uidByte[i], HEX);
Serial.print(" ");
}
Serial.println();
rfid.PICC_HaltA();
}
🧪 قبل از توسعه پروژه
اول خواندن UID را با یک کارت تست کنید. وقتی Serial Monitor شناسه کارت
را درست نشان داد، توسعه قفل، رله یا سیستم حضور و غیاب بسیار سادهتر خواهد شد.
آیا می توان روی کارت RFID اطلاعات نوشت؟
بعضی کارتهای MIFARE Classic امکان ذخیره اطلاعات در بخشهای قابلنوشتن حافظه
را دارند. برای نمونه، MIFARE Classic 1K از 16 سکتور تشکیل میشود و هر سکتور
چهار بلوک 16 بایتی دارد؛ در نتیجه ظرفیت اسمی کارت به 1024 بایت میرسد.
بخشی از این حافظه برای اطلاعات امنیتی استفاده میشود.
🔐 ساختار حافظه MIFARE Classic 1K
16 سکتور × 4 بلوک × 16 بایت = 1024 بایت
Sector Trailer در انتهای هر سکتور قرار دارد و اطلاعات امنیتی و Access Bits
را نگهداری میکند؛ بنابراین همه بلوکها فضای آزاد برای داده کاربر نیستند.
🚫 Block 0 را تغییر ندهید
Block 0 در Sector 0 اطلاعات کارخانه و UID را نگه میدارد. بنابراین برای
آزمایشهای نوشتن، از بلوکهای مناسب کاربر استفاده کنید و این بخش را دستکاری نکنید.
ساخت سیستم کنترل دسترسی با RC522
یکی از کاربردهای جذاب RC522، کنترل ورود و خروج است. Arduino UID دریافتشده
را با شناسههای مجاز مقایسه میکند و در صورت تطابق، خروجی موردنظر را فعال میکند.
یک رله، قفل برقی، بیزر یا LED میتواند نقش خروجی را بر عهده بگیرد. در نتیجه،
پروژه ساده خواندن UID به یک سیستم کاربردیتر تبدیل میشود.
🔐 ایده پروژه
کارت RFID → خواندن UID → مقایسه شناسه → فعال شدن رله یا قفل
چرا RC522 کارت را نمی خواند؟
وقتی Reader کارت را شناسایی نمیکند، عیبیابی را از تغذیه و سیمکشی شروع کنید.
سپس پایههای SPI، SS و RST را بررسی کنید و در نهایت فاصله کارت و تنظیمات
کتابخانه را کنترل کنید.
| مشکل | بررسی |
|---|---|
| ماژول شناسایی نمیشود | SPI و پایه SS/RST |
| کارت خوانده نمیشود | جهت و فاصله کارت |
| ماژول ناپایدار است | تغذیه و سیمکشی |
| UID نمایش داده نمیشود | کتابخانه و کد |
✅ سریعترین روش تست
مثال DumpInfo را اجرا کنید و کارت را مقابل Reader قرار دهید. اگر UID ظاهر شد،
بخش اصلی ارتباط درست کار میکند و میتوانید مرحله بعدی پروژه را شروع کنید.
RC522 با Arduino Mega چگونه متصل می شود؟
در Arduino Mega، پایههای SPI با Uno تفاوت دارند. Mega از D50 برای MISO،
D51 برای MOSI، D52 برای SCK و D53 برای SS استفاده میکند.
🔌 SPI روی Mega
MISO: D50
MOSI: D51
SCK: D52
SS: D53
برای پروژه RFID چه قطعاتی لازم است؟
برای یک پروژه ساده به Arduino، RC522 و کارت یا Tag نیاز دارید. ساختارهای
کاملتر ممکن است LCD، رله، قفل برقی، بیزر، LED، بردبورد و سایر قطعات را
هم در بر بگیرند.
🛒 قطعات پروژه RFID را از پژوهشگران تهیه کنید
برای ساخت پروژههای RFID و Arduino میتوانید RC522، برد Arduino، نمایشگر،
رله، سنسورها و سایر قطعات موردنیاز را در فروشگاه پژوهشگران بررسی کنید.مشاهده قطعات الکترونیکی
مقالات بیشتر درباره Arduino و سنسورها
📚 مقالات بیشتر پژوهشگران
اگر به دنبال آموزشهای بیشتر درباره Arduino، ESP32، RFID، سنسورها،
ماژولها و پروژههای الکترونیکی هستید، مجموعه مقالات پژوهشگران را ببینید.
برای انتخاب قطعه و طراحی پروژه مشاوره فنی می خواهید؟
🛠️ برای پروژه RFID نیاز به مشاوره دارید؟
اگر برای انتخاب RC522، کارت RFID، Arduino، رله، نمایشگر یا نحوه اتصال
قطعات پروژه سؤال دارید، میتوانید قبل از خرید برای
مشاوره فنی با مجموعه پژوهشگران در ارتباط باشید.
انتخاب درست قطعات در ابتدای طراحی، اجرای پروژه را سادهتر میکند.
جمع بندی ماژول RFID RC522 آردوینو
ماژول RFID RC522 آردوینو گزینهای کاربردی برای پروژههایی
است که به شناسایی بدون تماس نیاز دارند. این ماژول با فرکانس 13.56MHz
و تراشه MFRC522 برای کارتها و تگهای سازگار طراحی شده و ارتباط SPI
را برای اتصال به Arduino در اختیار شما قرار میدهد.
برای شروع، خواندن UID بهترین نقطه ورود است. پس از اطمینان از عملکرد Reader،
میتوانید سراغ ذخیره اطلاعات، کنترل رله، قفل الکترونیکی یا سیستم حضور و غیاب بروید.
⚡ چک لیست سریع RC522
✔ تغذیه را بررسی کنید.
✔ پایههای SPI را درست متصل کنید.
✔ SS و RST را با کد هماهنگ کنید.
✔ کتابخانه MFRC522 را نصب کنید.
✔ ابتدا UID را بخوانید.
✔ سپس سراغ کنترل دسترسی بروید.
💬 تجربه شما از کار با RC522 چیست؟
اگر قبلاً با RC522، RFID یا Arduino کار کردهاید،
تجربه خود را درباره خواندن کارت، نوشتن اطلاعات، کنترل دسترسی یا
مشکلات اتصال با ما و سایر کاربران به اشتراک بگذارید.
اگر در یک پروژه واقعی از این ماژول استفاده کردهاید،
تجربه خود را در بخش نظرات همین پایین بنویسید.
سوالات متداول درباره ماژول RFID RC522 آردوینو
RC522 با Arduino چگونه ارتباط برقرار می کند؟
یکی از روشهای رایج، رابط SPI است. در Arduino Uno از D10 تا D13 برای
Chip Select و خطوط SPI استفاده میشود.
RC522 با چه فرکانسی کار می کند؟
تراشه MFRC522 برای ارتباط بدون تماس در فرکانس 13.56MHz طراحی شده است.
آیا می توان روی کارت RFID اطلاعات نوشت؟
روی کارتهای سازگار و قابلنوشتن، بخشهایی از حافظه را میتوان برای
ذخیره داده استفاده کرد؛ البته تمام بلوکها برای داده کاربر آزاد نیستند.




