راه اندازی کی پد با میکروکنترلر AVR

0

در این پروژه ما با استفاده از میکرو mega16 یک کی پد یا صفحه کلید 3*4 را راه اندازی می کنیم, کی پد ها (keypad) در پروژه های مختلف کاربرد دارند به عنوان مثال ماشین حساب یا قفل رمز و هر پروژه ی دیگری که نیاز باشد اطلاعاتی را به عنوان ورودی دریافت کند می توانیم از کی پد استفاده کنیم .

کی پد (keypad) چیست؟ 

در بعضی پروژه ها لازم است تا میکروکنترلر اطلاعاتی را توسط کاربر دریافت کند. به طور مثال یک میکروکنترلر ATmega16 دارای 32 ورودی-خروجی است و اگر بخواهیم تعداد زیادی کلید به عنوان ورودی به ان متصل کنیم پین های زیادی از میکرو را اشغال می کنند. به همین خاطر زمانی که تعداد کلیدهای ورودی ما زیاد است مثلا یک ماشین حساب را درنظر بگیرید ما مجبوریم از روش یا قطعه ای دیگر استفاده کنیم, تا پین های کمتری اشغال شود. کی پد 3*4 دارای 12 کلید است و اگر بخواهیم بجای ان از کلیدهای معمولی استفاده کنیم نیاز به 12 پین از میکرو داریم, ولی در کی پدها کلید ها به نحوی به هم متصل می شوند تا تعداد کمتری پین را اشغال کنند به عنوان مثال کی پد 3*4 که دارای 12 کلید است فقط به 7 پین از میکرو نیاز دارد و یا کی پد 4*4 که دارای 16 کلید است فقط به 8 پین از میکرو نیاز دارد.به این روش اتصال کلید ها در کی پد ها اتصال ماتریسی می گویند

با فشار دادن یک دکمه, کلید بین یک سطر و ستون بسته می شود و اجازه می دهد که جریان بین پین های ان سطر و ستون برقرار شود. تصویر زیر شماتیک نحوه اتصال یک کی پد 4X4 را نشان می دهد :

نحوه تشخیص اینکه کدام کلید فشار داده شده به این صورت است که اگر ما پین های R1 تا R4 را به مثبت وصل کنیم و پین های C1 تا C4 را توسط میکرو به ترتیب صفر کنیم, یعنی به عنوان مثال اول C1 را صفر کنیم و بقیه مثبت یا یک باشند در مرحله بعد C2 را صفر کنیم و بقیه یک باشند و… تا زمانی که پین اخر یعنی C4 را صفر کردیم دوباره به اول برمی گردیم و این روند ادامه می یابد . در این شرایطی که گفته شد حالت های زیر امکان دارد اتفاق بیفتد :

  • در صورتی که هیچ کلیدی فشار داده نشود, پین های R1 تا R4 یک هستند و پین های C1 تا C4 به ترتیب صفر می شوند

  • در صورتی که یک کلید فشار داده شود, مانند تصویر زیر یکی از سطرها یا R ها که گفتیم یک می کنیم, صفر می شود و باتوجه به اینکه کدام ستون یا C صفر است می توانیم کلید فشار داده شده را تشخیص دهیم 

  • از انجایی که در هر لحظه فقط یک پین از ستون ها یا C ها صفر است و بقیه یک هستند در صورتی که بیش از یک کلید فشار داده شود, میکرو فقط یکی از انها را قبول می کند 

شماتیک پروژه راه اندازی کی پد :

در این پروژه ما از کی پد 3*4 استفاده کرده ایم, با فشار دادن هر کلید بر روی lcd عدد ان نمایش داده می شود و با فشار دادن کلید ستاره LCD پاک می شود. هدف این پست و این پروژه فقط اشنایی با کی پد و راه اندازی ان هست تا در پروژه های حرفه ای تر در اینده از ان استفاده کنیم. 

برنامه کدویژن :

در کدویزارد میکرو مگا16 را انتخاب کنید و فرکانس ان را 1 مگا هرتز تنظیم کنید, پورت A پین های 0 تا 2 را ورودی کنید و مقاومت بالا کش را برای انها فعال کنید و بقیه پین های پورت A را خروجی تنظیم کنید. پورت C را برای اتصال به LCD خروجی کنید و برنامه نهایی به صورت زیر است :

توضیحات قسمت های مهم برنامه در خود برنامه نوشته شده, تابع key_pad نوشته شده در ابتدای برنامه با توجه به توضیحاتی که در بالا گفته شد برای تشخیص کلید فشار داده شده نوشته شده است . فایل های کدویژن و شبیه سازی در ادامه قرار داده شده است, اگر سوالی داشتید میتونید در قسمت نظرات مطرح کنید

کلیپ شبیه سازی :

 

دانلود فایل ها

 

پسورد فایل زیپ : www.emic.ir

نظر یادتون نره …

ارسال دیدگاه

لطفا دیدگاه خود را وارد کنید!
لطفا نام خود را در اینجا وارد کنید