تبلیغات
به وبلاگ اكسیوم خوش آمدید - سخت افزار مدار قفل رمز با AVR
 
سلام به شما دوست عزیز، به وبلاگـــ اکسیـــوم خوش آمدید

» در این وبلاگ همه چیز پیدا میشه

» جهت اطلاعات بیشتر در مورد هر مطلب "ادامه مطلب" مربوط به آن را کلیک نمائید

» در صورت تمایل این وبلاگ را با عنوان " اکسیـــوم وبلاگی متفاوت " لینک نمائید و اطلاع دهید که من هم شمارو لینک کنم

» از صفحه "سوژه های تصویری" و "ویدیو های وبلاگ" هم دیدن بفرمائید

سوژه های تصویری:
http://axiom.mihanblog.com/extrapage/sozhe

ویدیو های وبلاگ:
http://www.aparat.com/axiom

متشکرم

  :: مدیر وب سایت : محمد رضایی
Axiom
Axiom

No Text


Axiom
شما به این وبلاگـــ چه نمره ای می دهید؟





» تعداد مطالب :
» تعداد نویسندگان :
» آخرین بروز رسانی :
» بازدید امروز :
» بازدید دیروز :
» بازدید این ماه :
» بازدید ماه قبل :
» بازدید کل :
» آخرین بازدید :

Axiom
   

W W W . A X I O M . M I H A N B L O G . C O M

سخت افزار مدار قفل رمز با AVR
سه شنبه 6 مهر 1389 ساعت 04:40 ب.ظ | | نوشته ‌شده به دست محمد رضایی | ( نظرات )
این صفحه کلید های تو بازار معروف به صفحه کلید های ماتریسی که انواع و اقسامشون موجوده ساختار خیلی ساده ای دارند و فقط کلید های موجود در اون ها به صورت ماتریسی به هم وصل شدند یعنی همینطوری که در شکل می بینید یک سر تمام کلید های موجود در ستون ها به هم وصل شده و یک سر دیگه کلید ها توی سطر ها به هم وصل شدند. خوب حالا ما باید از کجا بفهمیم که کدوم کلید توی این ماتریس فشار داده شده؟ این کار توی محیط برنامه نویسی Bascom
کار بس ساده ایه. ما بعد از این که ابتدای برنامه، کیپد رو پیکر بندی کردیم، توسط دستور ( )Getkbd می تونیم بفهمیم که کدوم کلید فشار داده شده. و این دستور برای هر کلیدی یک عددی رو به ما میده که توی یک صفحه کلید 4*4 اعداد گرفته شده مطابق شکل زیر است

یعنی اینکه اگه کلید اول از سمت گوشه چپ- بالا فشار داده بشه دستور Getkbd ،به ما عدد صفر رو میده و اگر کلید آخر از سمت راست-پایین صفحه کلید فشار داده بشه، به ما عدد 15 رو میده و اگر هم کلیدی فشار داده نشه عدد 16 رو به ما میده. خوب پس الان دیگه باید ضرورت وجود جدول Loop up رو فهمیده باشید. یعنی با توجه به اینکه اون کیپدی که ما داریم چه اعدادی رو روی کلید ها نوشته باید با استفاده از یه جدول Look up اعداد 0 تا 15 رو که دستور ( )Getkbd به ما میده به اون اعدادی که روی کیپد نوشته تبدیل کنیم چون برنامه که همینطوری نمیفهمه منظور ما از زدن فلان کلید چی بوده. گرفتید قضیه از چه قراره؟ که نحوه اتصال کیپد به میکرو هم در شکل زیر نشون داده شده.

اما حالا داستان کیپد 4*3 چه طوریه؟ همونطوری که در نقشه شماتیک پروژه تو پست قبل مشاهده کردید ما چون یک ستون اول از سمت چپ رو توی مدل 4*3 نداریم و پین اول میکرو که باید به ستون اول وصل بشه رو آزاد گذاشتیم در نتیجه اعداد 0 ، 4 ، 8 ، 12 رو توی جدول Look up صفر میکنیم.حالا بزارید یه مثال بزنم: به عنوان مثال اگر شما از روی کیپد 4*3 مورد استفاده در پروژه قبل، عدد 8 رو از رو صفحه کلید فشار بدید مطابق شکل زیر، دستور ( )Getkbd ،عدد 10 رو به شما میده که ما با استفاده از دستور
(A = Lookup(a , Farzan به جدولی که در انتهای برنامه نوشته شده و با Lable (برچسب) Farzan شروع می شود پرش می کنیم و در آنجا داده دهم (فراموش نکنید که شمارش داده ها از صفر شروع میشود نه از یک) را که مقدار 56 است را (56،همانطور که در پست قبل توضیح داده شد معادل اسکی عدد 8 است) برداشته و در متغیر A می ریزیم. حله؟

خوب حالا میرسیم سر وقت سخت افزار مدار، و راجع به اینکه چه قطعاتی باید استفاده کنیم و چه طوری استفاده کنیم یه سری توضیحات رو میدم. اول قسمت تغذیه مدار رو شرح میدم:

همینطوری که در نقشه بالا می بینید از یک سری قطعات ساده از جمله ترانس و دیود و خازن و رگولاتور تشکیل شده، که البته من فرض رو بر این گرفتم که از برق شهر برای تغذیه مدار استفاده می کنید که می تونید از باتری هم استفاده کنید و قسمت ترانس و دیود ها رو حذف کنید.
تغذیه میکرو ها و اصولاً مدارات دیجیتال 5 ولت رگوله شده است. رگوله شده یعنی چی؟ یعنی اینکه ولتاژ اعمالی به مدارتون هیچ نوسانی رو نداشته باشه و ثابت 5 ولت باشه. برای این منظور آی سی های رگولاتور زیادی وجود دارند که می تونید با یه جستجوی خیلی ساده تو GOOGLE دیتاشیت انواع و اقسامشون رو بدست بیارید، اما رگولاتور های خیلی معروف سری 78xx تو بازار راحت گیر میان و قیمت مناسبی هم دارند که ما اینجا از مدل 7805 که یه رگولاتور 5 ولت است استفاده کردیم و تو خروجی اون هم یک خازن برای تثبیت بیشتر ولتاژ قرار دادیم. چون خازن یه قطعه ایه که میتونه ولتاژی رو که بهش اعمال میشه، طی یه مدت زمانی که به نام ثابت زمانی شارژ خازن معروفه تو خودش ذخیره کنه و وقتی که شارژ شد اگر مصرف کننده ای مثل یه مقاومت یا یه LED رو بهش وصل کنید ولتاژی که تو خودش ذخیره کرده رو به مصرف کننده بده، البته این حالت زیاد پایدار نیست و بسته به ظرفیت خازن انرژیش تموم میشه. و تو خروجی رگولاتور ابتدا خازن تا مقدار 5 ولت شارژ میشه و اگر ولتاژ خروجی رگولاتور بخواد کمتر بشه خازن تو بار دشارژ میشه و نمیذاره ولتاژ پایین بیاد.(البته من به زبون خیلی ساده گفتم) راستی طبق اطلاعاتی که تو دیتاشیت 7805 نوشته شده، این رگولاتور برای اینکه بتونه ولتاژ ثابت 5 ولت رو تو خروجی بده باید ولتاژ ورودیش از 7.5(هفت و نیم) ولت کمتر نباشه، خوب با این اطلاعات میریم سراغ محاسبه دیود ها و ترانس.
ولتاژ خروجی ترانس، ولتاژ AC است یعنی ولتاژی که مقدار و جهت آن ثابت نیست و ولتاژ و جهت آن متناسب با زمان از صفر به ماکسیمم و از ماکسیمم به صفر و از صفر به مینیمم و از مینیمم به صفر تغییر می کند و یک شکل موج سینوسی را تداعی می کند، پس ما ابتدا باید این ولتاژ AC را به مقدار DC تبدیل کنیم و بعد به ورودی رگولاتور بدهیم که مداری که این کار را برای ما انجام می دهد یکسو ساز نام دارد( اگر جایی رکتیفایر (Rectifire ) هم شنیدید همین یکسوساز خودمونه) و تشکیل شده از چند تا دیود. یکسوساز ها به سه دسته کلی، نیم موج ، تمام موج با ترانس سر وسط و یکسوساز تمام موج پل تقسیم میشن که ما اینجا از نوع پل استفاده کردیم که شمال 4 تا دیوده که به صورتی که میبینید به هم وصل میشن و اگر بخوام خلاصه بگم دیود از این جهت میتونه عمل یکسوسازی رو برا ما انجام بده که، شرط هدایت دیود اینه که ولتاژ پایه آند ( Anode ) از پایه کاتد ( Cathode ) به اندازه 0.7 ولت بیشتر باشه که ما با استفاده از این خاصیت میتونیم عمل یکسوسازی رو انجام بدیم.
اما نکته ای که باید اینجا بهش اشاره کرد اینه که مقدار ولتاژ متوسط DC خروجی یکسوساز پل به خاطر افت ولتاژ روی دیود ها از ولتاژی که به ورودیش میدید کمتره و از فرمول Vdc=0.636 * Vm بدست میاد که در اون Vm ولتاژ ماکزیمم یا پیک ولتاژ AC ورودی یکسوسازه. لازم به ذکره که ولتاژ های AC رو معمولاً با مقدار موثر بیان میکنن که با ولتاژ ماکزیمم رابطه Vm= Ve * 1.41 رو داره.(1.41 جذر عدد دو است یعنی 1.41 برابر با رادیکال 2 است) به عنوان مثال وقتی گفته میشه که ولتاژ برق شهر 220 ولت است، این عدد بیانگر مقدار موثر برق است و مقدار ماکزیمم آن با توجه به فرمول بالا Vm= 220 * 1.41 برابر با 310 ولت است. حله؟
خوب ما گفتیم که ولتاژ ورودی 7805 نباید از 7.5 ولت کمتر بشه درسته؟ یعنی ولتاژ خروجی یکسوساز باید 7.5 ولت باشه. الان باید حساب کنیم ببینیم برای اینکه بخوایم 7.5 ولت تو خروجی یکسوساز داشته باشیم چه مقدار ولتاژ AC باید تو ورودیش داشته باشیم یا به عبارت دیگه( به شکل یه نگاه بکنید) خروجی ترانسمون باید چند ولت باشه(ترانس چند ولت باید تهیه کنیم؟) . خوب ما الان این جاگذاری فرمول رو داریم  Vm= 7.5 / 0.636 که میشه، 12 ولت ماکزیمم ولتاژ خروجی ترانس که اگه عدد 12 رو به رادیکال 2 تقسم کنیم ، میشه 9 ولت موثر خروجی ترانس. به عبارتی ما اینجا به یه ترانس 220 به 9 ولت نیاز داریم. برای یکسوساز هم ، هم میشه چهار تا دیود 1N4001-7 تهیه کنید و مطابق شکل ببندید و هم میشه از پک های چهار پایه یکسوساز پل که در واقع چهار تا دیود تو یه پک 4 پایه هستند استفاده کرد.


خوب رسیدیم به قسمت درایور خروجی، همینطوری که در شکل بالا میبینید این قسمت از یه ترانزیستور و یه رله و یه دیود تشکیل شده. توی پروژه پست قبل که یه مدار قفل رمز بود ما به ازای وارد کردن مقدار درست رمز یه خروجی رو فعال می کردیم، اما این برای اینکه بتونیم یه مدار دیگرو تحت کنترل در بیاریم کافی نبود چون هر پین از Avr تنها میتونه 20ma به ما جریان بده که این جریان خیلی کمیه. اما ما اگر بتونیم یک رله رو قطع و وصل کنیم می تونیم با اون رله خیلی از چیزها رو کنترل کنیم. حالا مشکل دوتا شد. رله چیه؟ رله قطعه ایه که توش یه کلید مغناطیسیه که داخلش به بوبین وجود داره و یک کنتاکت و به این صورت عمل میکنه که: هنگامی که شما به اون بوبین ولتاژ میدید، اون بوبین مغناطیس(آهنربا) میشه و حرکت میکنه و یه کنتاکت رو وصل میکنه و داخل بازار هم انواع رله با ولتاژ های تحریک مختلف موجوده مثلاً رله 5 ولتی رله ایه که بوبینش به 5 ولت برای مغناطیس شدن نیاز داره. تا اینجا حله؟
اما باز هم پین میکرو توانایی راه انداختن بوبین یک رله رو نداره، برای این منظور ما اینجا از یک ترانزیستور در نقش سوییچ استفاده می کنیم. اصولاً ترانزیستور ها در مدارات یا به عنوان عنصر تقویت کننده مورد استفاده قرار میگیرن یا به عنوان سوییچ، که ما اینجا از ترانزیستور به عنوان سوییچ استفاده کردیم به این صورت که هنگامی که به پایه بیس ترانزیستور یک ولتاژ مثبت تر از پایه امیتر ( به اندازه 0.7 ولت) اعمال کنیم ترانزیستور به حالت اشباع می رود و تمام جریانی که از پایه امیتر میگذرد از پایه کلکتور هم خواهد گذشت یا به زبون ساده تر پایه امیتر به کلکتور وصل میشود (البته تقریباً) خوب اگر یه همچین اتفاقی بیفته چی میشه؟ یک سر بوبین رله که مستقیم به VCC وصله ، وقتی هم که کلکتور به امیتر وصل شه این سر بوبین هم از این طریق به زمین وصل میشه و رله فعال میشه.





:: مرتبط با: پروژه ,
:: برچسب‌ها: میکروکنترلهای AVR , ساخت مدارات الکترونیکی , IC , مدارات دیجیتالی , پروژه ,