آردوینو آموزش آردوینو پروژه های آردوینو

ساخت سیستم قفل رمزی در ورودی با صفحه کلید ماتریسی ۴×۴ و برد آردوینو

نوشته شده توسط پریسا پوربلورچیان

کیپد Keypad با توجه به ساختار کلیدی که دارد در پروژه های الکترونیک برای وارد کردن رمز و عدد استفاده می‌شود. یکی از کاربردهای متفاوت کیپد ساخت درب بازکن با آن و ارسال فرمان به خروجی است. این خروجی میتواند رله و اتصال به قفل و یا سرو موتور باشد که در این آموزش از سرو موتور استفاده شده است. کلیه اقلام این آموزش در کیت آموزشی بر پایه آردوینو Arduino NANO – آموزش آنلاین قابل تهیه است. در ادامه روش ساخت سیستم قفل رمزی درب توسط کیپد ماتریسی ۴X4 و سرو موتور توسط آردوینو میپردازیم. با مرجع تخصصی آردوینو به زبان فارسی دیجی اسپارک همراه باشید.

 


کیپد ۴X4 ماتریسی


ماتریس ۴X4 یا به عبارتی همان کیپد در الکترونیک نقش ورودی دارد! ورودی یا همان فرمان دهنده که با فشردن هر کلید یک تغییر در خروجی ایجاد می‌شود. کیپد از چند دکمه ( کلید) ساخته شده است که به صورت سطر و ستونی (ماتریس) در کنار یکدیگر قرار گرفته شده اند. کیپدها دارای تنوع زیادی هستند که در این بین کیپد ۳X4 و کیپد ۴X4 طرفداران بی شماری دارد. پایه های صفحه کلید به دو ردیف سطر و ستون تقسیم بندی می‎شود.

  • کیپد ۳X4 دارای هفت پایه است که به ترتیب دارای ۴ پایه سطر (ROW (R1,R2,R3,R4 و ۳ پایه ستون (Column (C1,C2,C3 است.
  • کیپد ۴X4 دارای هشت پایه است که به ترتیب دارای ۴ پایه سطر (ROW (R1,R2,R3,R4 و ۴ پایه پایه ستون (Column (C1,C2,C3,C4 است.

با توجه به ساختار کیپدها هر کلید توسط کلید دیگر هویت یافته و مستقل عمل می‌کند که به این فرآیند( تشخیص فشار دادن هر کلید)، اسکن صفحه کلید گفته می‌شود. پایه های سطر به پایه های خروجی میکروکنترلر متصل و پایه های ستون به پایه های ورودی میکروکنترلر متصل می‌شود که به صورت input pullup تعریف می‌شود یعنی تا زمانیکه کلیدها فشرده نشود، مقدار پایه ورودی ۵ ولت است. اصل کار بسیار ساده است. اصل کار بسیار ساده است. با فشار دادن یک دکمه یکی از خطوط ردیف به یکی از خطوط ستون اتصال کوتاه شده و اجازه می دهد جریان بین آنها عبور کند. به عنوان مثال ، هنگامی که کلید “۴” فشار داده می شود ، ستون ۱ و ردیف ۲ اتصال کوتاه می‌شوند. میکروکنترلر تمامی پایه های سطر و ستون را به عنوان ورودی تنظیم می‌کند. در مرحله بعدی یک سطر را انتخاب و سپس وضعیت کلید ها را بر روی HIGH تنظیم می‌کند و پس از آن خط های ستون را یک به یک بررسی می‌کند. اگر وضیعت ستون LOW باشد به این معنی است که کلید فشار داده نشده است. اگر وضعیت ستون HIGH باشد، میکروکنترلر تشخیص میدهد که کدام سطر HIGH شده و کدام ستون در زمان تشخیص فعال بودن ( HIGH) مشخص شده است و درنهایت با مشخص شدن سطر و ستون کلید فشرده داده شده مشخص می‌شود.

به همین ترتیب میتوانید وضعیت هر کلید را مشخص کنید. در ادامه اتصال سطر و ستون ها برای هر کلید مشخص شده است:

  • برای کلید ۱ سطر ۱ و ستون ۱ اتصال داده می‌شود : R1+C1
  • برای کلید ۲ سطر ۱ و ستون ۲ اتصال داده می‌شود : R1+C2
  • برای کلید ۳ سطر ۱ و ستون ۳ اتصال داده می‌شود : R1+C3
  • برای کلید ۴ سطر ۲ و ستون ۱ اتصال داده می‌شود : R2+C1
  • برای کلید ۵ سطر ۲ و ستون ۲ اتصال داده می‌شود : R2+C2
  • برای کلید ۶ سطر ۲ و ستون ۳ اتصال داده می‌شود : R2+C3
  • برای کلید ۷ سطر ۳ و ستون ۱ اتصال داده می‌شود : R3+C1
  • برای کلید ۸ سطر ۳ و ستون ۲ اتصال داده می‌شود : R3+C2
  • برای کلید ۹ سطر ۳ و ستون ۳ اتصال داده می‌شود : R3+C3
  • برای کلید * سطر ۴ و ستون ۱ اتصال داده می‌شود: R4+C1
  • برای کلید ۰ سطر ۴ و ستون ۲ اتصال داده می‌شود: R4+C2
  • برای کلید # سطر ۴ و ستون ۳ اتصال داده می‌شود: R4+C3
  • برای کلید A سطر ۱ و ستون ۴ اتصال داده می‌شود: R1+C4
  • برای کلید B سطر ۲ و ستون ۴ اتصال داده می‌شود: R2+C4
  • برای کلید C سطر ۳ و ستون ۴ اتصال داده می‌شود: R3+C4
  • برای کلید D سطر ۴ و ستون ۴ اتصال داده می‌شود: R4+C4

پس بر این اساس هر سطر و ستون به صورت مجزا بیانگر یک کلید است که یاد گرفتیم. در نهایت ماکزیمم ولتاژ ورودی از هر کلید ۲۴ ولت و جریان عبوری ۳۰ میلی آمپر است. دمای کاری کیپد ۰ تا ۵۰ درجه سانتی گراد است.

 


سرو موتور Servo motor


در آموزش ساخت سیستم قفل رمزی برای خروجی کیپد از یک سرو موتور استفاده می‌کنیم. به این صورت که با وارد کردن یک عدد مشخص توسط کلیدهای کیپد، شافت سرو موتور در زاویه مشخص شروع به حرکت کند. برای پروتوتایپ آموزش از میکرو سرو موتور MG90S استفاده می‌کنیم. سرو موتور MG90S به عنوان یک میکرو سرو موتور شناخته می‌شود. از مزیت ویژه این سرو موتور دنده فلزی است که بسیار سبک وزن است و گشتاوری در حدود ۱٫۸ کیلوگرم بر سانتی متر در ولتاژ ۴٫۸ ولت است. تمامی سرو موتورها از سه پایه GND, VCC, OUT تشکیل شده است:

  • سیم قرمز پایه تغذیه VCC است که به صورت عمومی پایه ۵ ولت است.
  • سیم قهوه ای پایه GND است و به GND آردوینو متصل می‌شود.
  • سیم نارنجی پایه PWM است و ارتباط سیگنال از این پایه است.

 ولتاژ کاری سرو موتور ۴٫۸ تا ۶ ولت DC است و ماکزیمم گشتاور سرو موتور در ولتاژ ۶ ولت برابر با ۲٫۲ کیلوگرم بر سانتی متر است. سرعت ورودی سرو موتور ۰٫۱s/60° در ولتاژ ۴٫۸ ولت است و شافت سرو موتور در زاویه ۰ تا ۱۸۰ درجه می‌چرخد. در این آموزش میخواهیم با وارد کردن یک رمز شافت سرو موتور در زاویه ۹۰ درجه حرکت کند.

سرو موتور در پروژه سیستم قفل رمزی آردوینو - دیجی اسپارک

 


آردوینو Arduino


برای اجرای پروژه قفل رمزی از برد آردوینو و نرم افزار آردوینو Arduino استفاده می‌کنیم. برد آردوینو به واسطه رابط کاربری و طراحی فوق العاده این روزها در پروژه های الکترونیک نقش عمده ای ایفا می‌‎کند. تمامی بردهای آردوینو از پروتکل I2C, SPI و Serial بهره می‌برند. برد آردوینو دارای پایه های دیجیتال I/O، پایه های آنالوگ Analog و پایه های PWM است که بر روی برد مشخص شده است. ولتاژ کاری هر پایه ۵ ولت DC و جریان عبوری ۵۰ میلی آمپر است. برد آردوینو از رگولاتور داخلی ۵ ولت در ساختارش استفاده کرده و جریان و ولتاژ عبوری را مدیریت می‌کند. در این آموزش از برد آردوینو نانو Arduino NANO استفاده می‌کنیم. برد آردوینو نانو دارای یک برد کامل با ابعاد بسیار کوچک با تراشه Atmega328 است. معماری این برد خانواده AVR است و ولتاژ کاری آن ۵ ولت DC است.

  • برد آردوینو نانو دارای ۲۲ پایه دیجیتال I/O است که ۶ پایه به صورت PWM است.
  • برد آردوینو نانو دارای ۸ پایه آنالوگ است.
  • توان مصرفی ۱۹ میلی آمپر و جریان عبوری از هر پایه I/O برابر با ۴۰ میلی آمپر است.
  • فرکانس ساعت ۱۶مگاهرتز و حافظه فلش ۳۲کیلوبایت است.

برای اجرای این پروژه بایستی نرم افزار آردوینو Arduino را نصب داشته باشید. در صورتیکه روش نصب را نمیدانید،در ابتدا آموزش زیر را مطالعه کنید. آموزش کار با برد آردوینو  و نصب نرم افزار

برد آردوینو نانو Arduino nano در پروژه قفل رمزی - دیجی اسپارک

 


اتصالات قفل رمزی


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

اتصالات کیپد ماتریسی در پروژه قفل رمزی آردوینو - دیجی اسپارک

اتصال ال ای دی LED و بیزر در پروژه قفل رمزی آردوینو به شرح زیر است.

جدول اتصالات ال ای دی در پروژه قفل رمزی آردوینو - دیجی اسپارک

اتصال سرو موتور Servo Motor در پروژه قفل رمزی آردوینو به شرح زیر است.  اتصالات سرو موتور به آردوینو در پروژه قفل رمزی - دیجی اسپارک

 


نصب کتابخانه آردوینو


برای اجرای این برنامه به دو کتابخانه Servo motor و کتابخانه Keypad نیاز داریم. روش نصب به صورت زیر است. کتابخانه سرو Servo به صورت پیشفرض در لیست کتابخانه های نرم افزار آردوینو قرار گرفته شده است و کافیست آن را از منو فراخوانی کنید. کتابخانه Kepad بایستی قبل از کامپایل برنامه نصب شود. برای اینکار از منو زیر عبارت Kepad را فیلتر و کتابخانه را نصب کنید.

نصب کتابخانه کیپد ماتریسی در پروژه قفل رمزی - دیجی اسپارک

بر روی install کلیک کرده و کتابخانه را نصب کنید.

 


نمایش عدد هر کلید توسط آردوینو


در مرحله بایستی با کتابخانه کیپد Keypad آشنا شویم. برای اینکار یک کد آردوینو جداگانه فقط جهت نمایش عددهای اختصاص یافته به هر کلید مینویسیم. در کد آردوینو در ابتدا نوع ماتریس که به صورت ۴X4 است مشخص شده و سپس عدد هر کلید نوشته شده است. یک تب در نرم افزار آردوینو باز کرده و کد را انتقال دهید. اتصالات را انجام داده و سپس برنامه را آپلود کنید. کلید CTRL + SHIFT + M را بزنید تا پنجره سریال مانیتور باز شود. سپس با فشردن هر کلید بر روی ماتریس عدد اختصاص یافته به آن بر روی سریال مانیتور Serial monitor نمایش داده می‌شود.

پس از باز شدن سریال مانیتور کلید ها را به ترتیب وارد کنید. سریال مانیتور به صورت زیر خواهد بود.

دریافت خروجی از کیپد ماتریسی در پروژه قفل رمزی آردوینو - دیجی اسپارک

تا این مرحله کار با کیپد Keypad را یاد گرفتیم. در مرحله بعد کافیست دستورات توابع سرو موتور جهت ساخت درب باز کن را به همین کدها اضافه کرده و توسعه دهیم.

 


کد آردوینو سیستم قفل درب


یک تب جدید در نرم افزار آردوینو باز کرده و سپس کد را انتقال دهید. در هر خط از برنامه کدها تحلیل شده است.

 

پروژه قفل رمزی آردوینو نانو سرو موتور - دیجی اسپارک

 


تحلیل کد آردوینو Arduin


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

 

مرحله بعدی فراخوانی توابع مربوط به سرو موتور و انتخاب متغیر است.

 

توابع مربوط به کیپد Keypad به صورت زیر است. در تایع Keypad تمامی پایه های سطر و ستون بر اساس اصول اولیه و انتخاب پایه ها از کتابخانه فراخوانی شده و به برنامه اضافه می‌شود.

برای فرمان به خروجی بایستی یک پسورد به صورت دلخواه در برنامه انتخاب و اضافه شود:

 

در مرحله بعد نوبت به تابع ثابت Voidsetup و مشخص شدن وروردی و خروجی های پروژه است که به صورت زیر در برنامه اضافه شده است.

برای اعلام وضعیت از خروجی های بیزر و ال ای دی استفاده شده است. با فشردن هر یک از کلید های ۹,۸,۷,۶,۰ بیزر فعال می‌شود. سپس جهت قطع شدن بیزر کافیست کلید # و یا * را فشار دهید تا بیزر قطع شود.

در نهایت جهت فعال شدن صفحه کلید از تابع زیر در حلقه استفاده می‌شود.

 

 


انتخاب تابع برای وضعیت سرو موتور


برای سهولت در کدنویسی پیشنهاد می‌شود از توابع (void (int استفاده می‌شود. در این تابع وضعیت یک متغیر به صورت جداگانه تحلیل شده و سپس در حلقه اصلی برنامه با وارد شدن نام متغیر void تغییرات را اعمال می‌کنیم. در این کدنویسی سرو موتور دو وضعیت مختلف دارد. پس از وارد شدن پسورد توسط کیپد، سرو موتور در زاویه ۹۰ درجه حرکت کرده و به اصطلاح قفل می‌شود که برای این منظور از lockservo برای آن استفاده می‌کنیم که از داده بولی برای وضعیت آن استفاده می‌کنیم.  در زبان برنامه نویسی C++ عملگرهای مقایسه ‌ای مانند علامت های کوچکتر، بزرکتر و مساوی یک مقدار Boolean بولین را برمی‌گرداند که بیانگر درستی یا نادرستی شرط است. از این نوع عبارات شرطی جهت تعیین شرط در دستورات شرطی و یا حلقه ها استفاده می‌کنیم که در این کد برای وضعیت سرو موتور استفاده شده است.

 

 


جمع بندی لیدی پای


توسط یک کیپد و انتخاب یک پسورد به صورت دلخواه می‌توانید یک سیتسم قفل درب توسط سرو موتور طراحی کنید. روش اجرا به این صورت است که پس از انجام اتصالات و آپلود برنامه بر روی برد آردوینو ال ای دی آبی در ابتدا روشن شده و شافت سرو موتور در زاویه ۰ درجه قرار دارد و به منزله ی باز بودن درب است. بیزر در این حالت خاموش است و همه ی خروجی ها در حالت غیرفعال LOW است. پسورد کیپد به صورت پیش فرض عدد ۱۲۳۴۵ است که در کیپد به ترتیب S1, S5, S9, S2 , S6 است. با فشردن همزمان این ۵ کلید شافت سرو موتور در زاویه ۹۰ درجه چرخیده و قفل می‌شود و ال ای دی قرمز روشن می‌‎شود که بیانگر قفل شدن درب است. برای فعال شدن بیزر کافیست یکی از کلید های ۸ ۹ ۷ ۶ ۰ را وارد کنید تا بیزر فعال شود. برای غیر فعال شدن بیزر از کلیدهای # , * استفاده کنید. به همین راحتی می‌توانید با کمترین تجهیزات سیتسم قفل درب توسط برد آردوینو، سرو موتور و کیپد و بیزر و ال ای دی پیاده سازی کنید.

پروژه ساخت قفل رمزی آردوینو نانو - دیجی اسپارک

 


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


برد آردوینو Arduino 

کیپد ۴×۴ ماتریسی 

سرو موتور Servo motor

ال ای دی LED

بیزر Buzzer

کابل فلت

برد بورد

 

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

 

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

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

پریسا پوربلورچیان

تولید کننده محتوا / کارشناس IOT

زندگی یعنی پژوهش و فهمیدن چیزی جدید

تلاشم بر این است تجربیاتم در زمینه IOT‌ را به بهترین شکل با شما در میان بگذارم.

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

۴ دیدگاه

  • سلام و عرض ادب
    لطفا قیمت پک کامل قطعات ساخت قفل رو اعلام میفرمایید و نحوه تهیه و خرید از شما چگونه است؟
    سپاسگذارم
    قادری _ کرمان