RFID / NFC میکروکنترلر AVR نمایشگر LCD

آموزش خواندن کد کارت RFID با ماژول RF01D توسط میکرو AVR با LCD

RFID-RF01D-with-micro-AVR-digispark-
نوشته شده توسط علی زاهدی

یکی از پرکاربردترین ماژول‌های RFID یا همان کارت‌خوان ماژول RF01D می‌باشد. فقط قابلیت خواندن از کارت‌های مغناطیسی و تگ‌ها را دارا می‌باشد. با نزدیک کردن کارت به ماژول، کد مربوط به کارت را از طریق پروتکل سریال یا همان UART به میکروکنترلر ارسال می‌کند. یکی از انواع میکروکنترلرهای پرمصرف در بازار ایران طبق تجربه بنده، تراشه Atmega8 می‌باشد. مربوط به شرکت ATMEL با نام خانواده AVR می‌باشد. این میکروکنترلر ۸ بیتی به دلیل قابلیت برنامه نویسی توسط کامپایلر با زبان‌های سطح بالا بسیار مورد توجه قرار گرفته‌اند. میکروکنترلر AVR از معماری RISC بهره می‌برد. در این آموزش قصد داریم با استفاده از میکروکنترلر Atmega8 و ماژول Rf01d کد تگ‌ها را بخوانیم و روی نمایشگر LCD نمایش دهیم. در ادامه این آموزش با مرجع تخصصی میکرو به زبان فارسی، دیجی اسپارک همراه باشید.

 


مشخصات ماژول RF01D


ماژول‌های RFID مختلفی در بازار موجود است. یکی از محبوب‌ترین مدل‌هایی که من با آن کار کرده‌ام، ماژول RF01D می‌باشد. سهولت در راه اندازی با استفاده از پروتکل UART در این ماژول بسیار اهمیت دارد. فقط افرادی که با ماژول‌های مختلف توسط میکرو AVR کار کرده‌اند، متوجه این قضیه خواهند شد! از امکانات این ماژول میتوان موارد زیر را نام برد.

· ولتاژ کاری ۵ ولت
· جریان مصرفی ۶۰ میلی آمپر
· فرکانس کاری ۱۲۰ تا ۱۳۰ کیلو هرتز
· چهار مد خروجی دیتا با انتخاب کاربر توسط پین‌ها
· دارای ۲۰۰ حافظه داخلی در سری‌های مموری‌دار
· دارای ۲ مد خروجی رله فلیپ فلاپ و معمولی البته تا زمانی که کارت کنار ماژول قرار دارد.
· خروجی دیتا بصورت ارتباط سریال TTL با نرخ انتقال ۹۶۰۰
· فاصله مفید شناسایی ۸ تا ۱۴ سانتیمتر (انواع تگ)

 

اتصالات مدار

  1. پایه VCC ماژول به ولتاژ مثبت ۵ ولت
  2. پایه GND ماژول به منفی مدار
  3. پایه ۷ میکروکنترلر به ولتاژ مثبت ۵ ولت
  4. پایه ۸ میکروکنترلر به منفی مدار
  5. ِTXD ماژول به پایه ۲ میکروکنترلر (RX)
  6. پایه ۲۳ میکروکنترلر با استفاده از یک مقاومت ۴۷۰ اهم به آند LED و کاتد LED به منفی مدار
  7. پایه های ال سی دی کاراکتری به صورت زیر به میکروکنترلر متصل میشود.

 

rfid with micro avr and rf01d-digispark

 


کد AVR در CodeVision


 جهت ایجاد پروژه جدید در نرم افزار کدویژن ابتدا نرم افزار را باز کنید. از منو فایل گزینه New را انتخاب کنید. پس از ساخت پروژه جدید کدهای زیر را به آن انتقال دهید. سپس از منوی Project گزینه‌ی compile را انتخاب کنید. اگر error مشاهده نکردید، گزینه OK را انتخاب کنید. از همان منو Project گزینه Build All را انتخاب کنید. حال برنامه به زبان ماشین ترجمه شده و  در پوشه‌‌ای به نام exe در جایی که انتخاب کردید با پسوند hex ذخیره شده است.

 

جهت دسترسی به این بخش از پروژه، اسپارکر پلاس شوید.

 

 


تحلیل پروژه RFID ماژول RF01D


ابتدا کتابخانه مربوط به پردازنده را اضافه کردیم. سپس کتابخانه تاخیرها اضافه شده است. کتابخانه ال سی دی کاراکتری را اضفه کرده و آن را بر روی پورت B میکروکنترلر پیکربندی کردیم. سپس متغیرهای مورد نیاز برنامه را تعریف شده است. خط بعدی مربوط به وقفه دریافت از پروتکل UART میکروکنترلر می‌باشد. زمانی که اطلاعاتی از سمت ماژول RF01D به میکروکنترلر ارسال شود؛ برنامه به این قسمت پرش می‌کند. کاراکتر دریافتی را داخل رشته‌ی code که دارای ۱۰ خانه میباشد ذخیره می‌کند. تابع main تابع اصلی برنامه در زبان C می‌باشد. در ابتدای این تابع تنطیماتی همچون تعریف ورودی یا خروجی بودن پورت‌ها و فعال کردن پروتکل‌های میکروکنترلر انجام می‌شود. در این بخش ابتدا ال سی دی LCD را معرفی کرده و سپس پایه ۲۳ میکروکنترلر را بعنوان خروجی تعریف کرده و پروتکل UART میکروکنترلر را با باودریت ۹۶۰۰ فعال کرده‌ایم. (“asm(“sei# مربوط به فعال کردن وقفه‌ی سراسری می‌باشد. در حلقه‌ی بی‌نهایت ابتدا عبارت Digispark.ir را در سطر دوم ال سی دی نوشته می‌شود. سپس برنامه منتطر نزدیک شدن تگ به ماژول می‌شود. زمانی که تگ به ماژول نزدیک شود برنامه از این قسمت عبور کرده و کد تگ را در سطر اول ال سی دی نمایش داده و LED خروجی روشن می‌شود. پس از ۳ ثانیه سطر اول پاک میشود و LED خاموش میشود. توجه داشته باشد درهنگام پروگرام کردن کد روی میکروکنترلر AVR ، فیوزبیت‌ها بر روی کریستال ۸ مگاهرتز داخلی تنظیم شود.

 

آموزش خواندن کد کارت RFID با ماژول RF01D توسط میکرو AVR با LCD

 


وسایل مورد نیاز مدار


  1. ماژول RF01D
  2. تگ RFID با فرکانس ۱۲۵Khz
  3. میکروکنترلر ATmega8
  4. کابل فلت
  5. LED
  6. مقاومت ۴۷۰ اهم

 

 

چنانچه در مراحل راه اندازی و انجام این پروژه با مشکل مواجه شدید، بدون هیچ نگرانی در انتهای همین پست، به صورت ثبت نظر سوالتان را مطرح کنید. من در سریع‌ترین زمان ممکن پاسخ رفع مشکل شما را خواهم داد. همچنین اگر ایرادی در کدها و یا مراحل اجرایی وجود دارند می‌توانید از همین طریق اطلاع رسانی کنید.

 


پروژه و دریافت بن ارسال رایگان


برای دریافت بن خرید از دانشجو کیت، کاربران بایستی با استفاده از وسایل این آموزش، پروژه را اجرا کرده و یا حتی مدار جدیدی تعریف کنید. سپس از اجرای کار فیلم گرفته و در شبکه‌های اجتماعی از جمله آپارات و اینستگرام، با هشتگ‌های دیجی_اسپارک   دانشجوکیت    digispark    daneshjookit منتشر کنند. سپس از طریق بخش نظرات در ادامه همین آموزش، جهت دریافت بن خرید ارسال رایگان به ارزش ۱۲۰۰۰ تومان از دانشجو کیت، لینک را زیر همین پست ارسال کنید.

 

در پایان نظرات و پیشنهادات خود را با ما درمیان بگذارید و با اشتراک گذاری این آموزش در شبکه های اجتماعی , از وبسایت دیجی اسپارک حمایت کنید.

 

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

علی زاهدی

دانشجو ی رشته الکترونیک،
عاشق یادگیری و به اشتراک گذاشتن اطلاعاتم هستم.

تبادل نظر و رفع عیب با ثبت دیدگاه

۲ دیدگاه

  • یه زمانی میخواستم کارت های شهربازی یا اتوبوس هارو کپی کنم…
    نمیدونم درست رفتم جلو یا نه ولی در نهایت جواب نگرفتم من
    ولی کلا این راه امکان پذیر هست یا نه؟

    مثلا متد من اینطوری بود یه کارت پر مثلا ۱۰ هزار تومانی رو کپی میکردم دیتاشو تو یه کارت دیگه
    چون دیتا ها برابر بودن طبیعتا اون یکی کارت هم ۱۰ هزار تومانی میشد..

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