آردوینو - آموزش آردوینو-Arduinoتازه هاهمه ی مطالب

راه اندازی ماژول RFID RC522 با آردوینو

در این مطلب ماژول RFID RC522 را بررسی می کنیم و به طور خلاصه راه اندازی ماژول RFID RC522 با آردوینو را توضیح می دهیم. ماژول های RFID به منظور خواندن و نوشتن کارت ها یا تگ های RFID مورد استفاده قرار میگیرند. کارت های مغناطیسی امروزه در زندگی روزمره ما به وفور در دستگاه های مختلفی استفاده می گردند.تگ و يا کارت RFID، شامل يک مدار الکترونيکی است زمانی که تگ در نزدیکی کدخوان ( RFID Reader ) قرار می گيرد، میدان مغناطيسی تولید شده توسط کد خوان باعث فعال شدن تگ می گردد. و تگ اقدام به ارسال داده از طریق پالس های راديويی می نماید.سیستم های RFID دارای فرکانس های کاری متنوعی هستند که از این بین دو فرکانس 125 کیلوهرتز و 13.56 مگاهرتز متداول تر می باشند.
این ماژول در محدوده فرکانسی 13.56Mhz کار کرده و علاوه بر خواندن اطلاعات می تواند اطلاعات جدیدی را بر روی حافظه ی کارت ذخیره نماید.

نحوه اتصال ماژول به برد آردوینو

ما از پروتکل SPI برای اتصال آردوینو و ماژول RC522 استفاده میکنیم. ترتیب اتصال پایه ها در تصویر پایین مشخص است.

ترتیب اتصال پایه ها

برای اتصال راه اندازی ماژول RFID RC522 به آردوینو نیاز به اتصال 7 پین است در این مورد به پین IRQ نیازی نداریم. در ادامه کتابخانه مورد نیاز برای راه اندازی این ماژول را دانلود کنید و در برنامه آردوینو اضافه کنید.

دانلود کتابخانه ماژول RFID RC522 با آردوینو

برنامه پایین را روی برد آردوینوی خودتان آپلود کنید.

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

    #define RST_PIN         9
    #define SS_PIN          10
    MFRC522 mfrc522(SS_PIN, RST_PIN);

    void setup()
    {

    SPI.begin();
    mfrc522.PCD_Init();
    }

    void loop() {
    RfidScan();
    }

    void dump_byte_array(byte *buffer, byte bufferSize) {
    for (byte i = 0; i < bufferSize; i++) {
    Serial.print(buffer[i] < 0x10 ? ” 0″ : ” “);
    Serial.print(buffer[i], HEX);
    }
    }

    void RfidScan()
    {
    if ( ! mfrc522.PICC_IsNewCardPresent())
    return;

    if ( ! mfrc522.PICC_ReadCardSerial())
    return;
    dump_byte_array(mfrc522.uid.uidByte, mfrc522.uid.size);
    }

با استفاده از این کد می توانید تگ RFID خود را بخوانید این اطلاعات روی پورت سریال نمایش داده می شود.

نمونه کد دوم برای ماژول RFID RC522

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

    #define RST_PIN         9
    #define SS_PIN          10
    MFRC522 mfrc522(SS_PIN, RST_PIN);
    int RfidNo = 0;

    void setup()
    {

    SPI.begin();
    mfrc522.PCD_Init();
    }

    void loop() {
    RfidScan();
    }

    void dump_byte_array(byte *buffer, byte bufferSize)
    {
    Serial.print(“~”);
    if(buffer[0] == 160){RfidNo = 1;Serial.print(RfidNo);}
    if(buffer[0] == 176){RfidNo = 2;Serial.print(RfidNo);}
    if(buffer[0] == 208){RfidNo = 3;Serial.print(RfidNo);}
    if(buffer[0] == 224){RfidNo = 4;Serial.print(RfidNo);}
    if(buffer[0] == 240){RfidNo = 5;Serial.print(RfidNo);}
    Serial.print(“!”);
    while(1){getFingerprintIDez();}
    }

    void RfidScan()
    {
    if ( ! mfrc522.PICC_IsNewCardPresent())
    return;

    if ( ! mfrc522.PICC_ReadCardSerial())
    return;
    dump_byte_array(mfrc522.uid.uidByte, mfrc522.uid.size);
    }

در نمونه کد اول ما شماره هر تگ را خواندیم در نمونه کد دوم از این اطلاعات برای تشخیص کارت ها استفاده میکنیم. به این صورت که در صورت خواندن تگ اول توسط ماژول عبارت 1 در پورت سریال نمایش داده می شود. و هر تعداد تگ تعریف شده باشد این روند ادامه میابد. با تغییر دستور شرط if می توانید برای هر کارت عملیات خاصی را تعریف کنید.

 

منبع: adafruit.com 

علی عزتی

علی عزتی هستم. رشته ی مهندسی برق الکترونیک رو خوندم. علاقه ی من به یادگیری و به اشتراک گذاشتن چیز هایی که یاد گرفتم. باعث شد تا الکترولب ایجاد بشه. علاقه ی زیادی به الکترونیک دارم. و دوست دارم چیزهای جدید یادبگیرم و بسازم ... :))

نوشته های مشابه

4 دیدگاه

  1. آفرین و درود بر شما آقای عزتی
    با این حسن نیتی که در اشتراک گذاشتن علمتون دارید
    و با تواناییهایی که بواسطه دانشتون دارید
    شک ندارم شما یکی از افراد موفق آینده خواهید بود
    این مملکت مثل شما ها زیاد نیاز داره

  2. با سلام و خسته نباشید
    جناب عزتی عزیز، حقیقتا اطلاعات بسیار مفید و جامعی در هر دو وبسایت شما موجود است. بنده به نوبه خودم به شما تبریک میگم و بابت مطالب خوبی که زحمت کشیده و در اختیار دیگران قرار میدید صمیمانه تشکر میکنم.

  3. سلام وقت بخیر با توجه به اینکه RFID و I2C از SDA بهره میبرن.میتونم بدون هیچ مشکلی همزمان از هردوشون استفاده کنم؟

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

این سایت از اکیسمت برای کاهش هرزنامه استفاده می کند. بیاموزید که چگونه اطلاعات دیدگاه های شما پردازش می‌شوند.

دکمه بازگشت به بالا