آموزش راه اندازی RFID با میکروکنترلر AVR
محتویات
پروژه اتمل استودیو RFID (آرفید Atmel Studio) را آماده کردیم. فیلم عملکرد مدار را از دست ندیدهید!
در دفتر ها، مرکز های خرید و خیلی مکان های دیگری را میشناسیم که بعضی از اتاق هایشان فقط با کارت مخصوص مجوز ورود دارند و باز میشوند. این سیستم ها از سیستم های ارتباطی RFID استفاده میکنند. RFID در مراکز خرید، برای جلو گیری از سرقت استفاده میشود، و وقتی که کسی که تراشه RFID همراهش دارد از در عبور کند، زنگ هشدار به صدا در میاید. برچسب های آرفید به اندازه های متفاوتی هستند، بعضی ها حتی اندازی شن و ماسه اند! سیستم تایید هویت آرفید به راحتی طراحی میشود و هزینه اش بسیار کم است!. بسیاری از مدرسه ها و دانشگاه ها در خارج از کشور با این سیستم حضور و غیاب را انجام میدهند !
در اینجا قصد داریم یک پروژه را برای اهداف امنیتی طراحی کنیم. این سیستم فقط با تگ های RFID مجاز در را باز میکند. ما باید شناسه های مجاز آرفید را در میکروکنترلر قرار دهیم. و فقط کسانی که این تگ (Tag) ها را دارند میتوانند وارد یا خارج شوند.
مدار پروژه RFID با میکروکنترلر AVR
در شماتیک مدار میبینید که پورت A از میکروکنترلر را به پورت های داده ال سی دی متصل کردیم. اگر از پورت C به عنوان یک پورت ارتباطی استفاده کنیم، باید با تغییر فیوز بیت ارتباط JTAG را در PORTC میکروکنترلر غیر فعال کنیم. در ال سی دی کاراکتری 16*2 ، 16 پین وجود دارد، اگر بلک لایت و نور پشت راحساب نکنیم، 14 پین وجود دارد. در حال حاضر از این 16 پین ، 8 پین داده هستند (D0-D7) ، دو پین منبع تغذیه، 3 پین برای کنترل کنتراست، 3 پین هم کنترل هستند.
در مدار، شما میتوانید ببینید که فقط 2 پین را به عنوان کنترل در نظر گرفتیم. این کار به انعطاف پذیری کمک میکند!. پین های کنتراست و READ / WRITE اغلب استفاده نمیشوند ! بنابراین آن ها را میتوانیم به GND متصل کنیم. این باعث میشود که ال سی دی در بالاترین کنتراست و حالت خواندن قرار بگیرد. ما فقط نیاز به کنترل Enable و Rs برای ارسال کاراکتر ها و داده ها داریم.
در مدار از 8 پین D0-D7 استفاده کردیم زیرا ارتباطمان 8 بیتی است. میتوانیم از ارتباط 4 بیتی استفاده کنیم و از پین های D4-D7 استفاده کنیم. اما اگر از ارتباط 4 بیتی استفاده کنیم کار پیچیده میشود. با اینکه اجباری نیست ولی از ارتباط 8 بیتی استفاده میکنیم.
قطعات مورد نیاز پروژه RFID
- میکروکنترلر Atmega32 (دیتاشیت مگا 32)
- منبع تغذیه (5V)
- ال سی دی کاراکتری
- خازن 100uF (در سراسر منبع تغذیه)
- دکمه
- مقاومت 10KΩ
- خازن 100nF
- ال ای دی (2 عدد)
- ماژول آرفید Em-18
- موتور درایور L293D
- موتور 5 ولت DC
- کامپایلر اتمل استودیو نسخه 6.1 به بالا (دانلود اتمل استودیو)
برای دانلود فایل ها باید حساب کاربری داشته باشید ثبت نام / ورود
پروژه 2: خواندن شماره RFID
در این پروژه ماژول RFID را با میکروکنترلر AVR راه اندازی میکنیم. آموزش کامل است و پروژه به بهترین شکل کار میکند. در این پروژه شناسه تگ RFID را میخوانیم و روی LCD کاراکتری نمایش میدهیم.
ماژول RFID EM-18
ماژول RFID خوان EM18 برای خواندن کارت های RFID که در 125 کیلوهرتز کار می کنند استفاده می شود. هنگامی که یک کارت RFID در محدوده ماژول قرار می گیرد، داده های منحصر به فرد موجود در کارت به شکل سیگنال RF توسط خواننده دریافت می شود. سپس خواننده این داده ها را به صورت بایت در پین انتقال سریال خود ارسال می کند. این داده ها را می توان توسط یک میکروکنترلر با استفاده از ارتباط سریال خواند یا در ترمینال کامپیوتر مشاهده کرد.
RFID مخفف Radio Frequency Identification به معنی شناسایی فرکانس رادیویی است. هر کارت RFID دارای یک شناسه منحصر به فرد است که در آن قرار داده شده است. از ماژول خواننده RFID برای خواندن شماره RFID استفاده می شود. خواننده RFID EM-18 با سرعت 125 کیلوهرتز کار می کند و از آنتن داخلی بهره می برد و با منبع تغذیه 5 ولت می توان از آن استفاده کرد. این ماژول خروجی سریال به همراه خروجی weigand را فراهم می کند. دامنه عملکرد آن حدود 8-12 سانتی متر است. از این ماژول RFID در بسیاری از پروژه ها استفاده میشود.
مدار اتصال RFID به میکروکنترلر AVR
اتصالات مدار را مانند تصویر زیر انجام دهید. پایه های داده ال سی دی به پایه B4 تا B7 میکروکنترلر متصل میشوند. پایه TX ماژول نیز به پایه RX میکروکنترلر یا همان پایه D1 متصل میشود.
قطعات مورد نیاز
کد پروژه RFID با AVR
در این پروژه تگ های RFID را با استفاده از یک ماژول RFID EM-18 میخوانیم و این داده ها را به صورت سریال به میکروکنترلر AVR ATmega16/ATmega32 ارسال میکنیم. سپس شناسه منحصر به فرد 12 بایتی را روی صفحه نمایش LCD16x2 نمایش میدهیم.
برنامه نويسي شامل سه مرحله زیر است:
- ارتباط USART را راه اندازی کنید.
- صفحه نمایش LCD16x2 را راه اندازی کنید.
- حالا منتظر بمانید تا 12 بایت دریافت شود و سپس آن را روی LCD16x2 نمایش دهید.
توضیحات کد:
در ابتدا فرکانس پردازنده را تعریف میکنیم و کتابخانه های مورد نیاز را فراخوانی میکنیم.
#define F_CPU 8000000UL #include <avr/io.h> #include <string.h> #include "USART_RS232_H_file.h" /* کتابخانه UART */ #include "LCD16x2_4bit.h" /* کتابخانه LCD */ #include <util/delay.h>
سپس پیکربندی های اصلی را انجام میدهیم. یک آرایه از نوع کاراکتر با سایز 15 ایجاد میکنیم. ارتباط سریال را با نرخ باود ریت 9600 آغاز میکنیم همچنین تابع پیکربندی ال سی دی کاراکتری را نیز فراخوانی میکنیم. در ادامه ال سی دی را پاک میکنیم و در ستون اول ردیف اول کلمه RFID را نمایش میدهیم.
char RFID[15]; USART_Init(9600); /* آغاز کردن ارتباط سریال */ lcdinit(); /* پیکربندی ال سی دی کاراکتری */ lcd_clear(); lcd_gotoxy(0,0); /* تعیین ستون و ردیف اول */ memset(RFID,0,15); lcd_print("RFID:");
در بخش اصلی کد، بایت به بایت شماره تگ RFID را دریافت میکنیم و در آرایه RFID که ایجاد کردیم ذخیره میکنیم. در نهایت شماره را روی ال سی دی نمایش میدهیم.
while(1){ for (int i=0;i<12;i++){ RFID[i]=USART_RxChar(); // دریافت بایت به بایت شناسه تگ } _delay_us(10); lcd_gotoxy(0,1); lcd_print(RFID); /* نمایش شناسه تگ روی ال سی دی */ }
موارد موجود در فایل : سورس کامل و کتابخانه های مورد نیاز
برای دانلود فایل ها باید حساب کاربری داشته باشید ثبت نام / ورود