در مجموعه آموزش های تحلیل و بررسی کتابخانه های آردوینو، این قسمت را به یکی از مهم ترین کتابخانه ها اختصاص می دهیم. همانطور که اطلاع دارید کلیدها یکی از ابزارهای کلیدی جهت تعامل دستگاه با کاربر به شمار می رود. دستگاه طراحی شده توسط طراح هرچقدر که پیشرفته باشد، چنانچه به درستی با کاربر نتواند تعامل داشته باشد، از چرخه تولید خارج خواهد شد. در این آموزش به تحلیل و بررسی کتابخانه ebtn می پردازیم. این کتابخانه تعامل با کلیدها را بسیار ساده می نماید. به کمک این کتابخانه سرعت توسعه پروژها تسریع خواهد یافت. به کمک این کتابخانه برنامه نویس بدون دغدغه برای طراحی روتین های تشخیص کلید، می تواند از توابع آماده این کتابخانه استفاده نماید. در این آموزش به تحلیل و بررسی توابع کلیدی کتابخانه ebtn.h می پردازیم. مطابق رویه معمول آموزش های کتابخانه، نخست به بررسی نحوه نصب خواهیم پرداخت. در ادامه الزامات و نکات فنی را خواهیم دید. در نهایت با تحلیل و بررسی توابع کلیدی وکاربردی کتابخانه، بحث را به پایان خواهیم برد. در ادامه تحلیل کتابخانه با مرجع تخصصی آردوینو به زبان فارسی، دیجی اسپارک همراه باشید.
نصب کتابخانه ebtn.h
به منظور استفاده از کتابخانه، ابتدا می بایست آن را نصب کنیم. در این قسمت به نصب کتابخانه با جستجو در مخازن آردوینو می پردازیم. به همین منظور، ابتدا در نرم افزار آردوینو بر روی گزینه Tools و سپس Manage Libraries را کلیک کنید. پس از کلیک بر روی این گزینه، با تصویر زیر رو به می شوید. این منو کتابخانه های در دسترس را به شما نشان می دهد. شما نیز می توانید با جستجوی نام کتابخانه مورد نظر خود، آن را در مخازن آردوینو یافته و سپس نصب کنید.
مطابق فلش مشخص شده در تصویر فوق، در کادر جستجو عبارت eBtn.h را تایپ کنید. پس از چند لحظه با تصویر زیر رو به رو می شوید. در این مرحله، کتابخانه را با کلیک بر روی گزینه install، نصب کنید.
الزامات و نکات فنی کتابخانه ebtn.h
پس از نصب کتابخانه نوبت به بررسی الزامات و نکات فنی کتابخانه می رسد. این کتابخانه پایه اصلی خود در اجرای کدهای توابع را روی توابع اصلی تعامل با پایه های ورودی/خروجی برپا می کند. این توابع به شرح زیر تعریف می شوند.
digitalRead: برای خواندن از ورودی
digitalWrite: برای نوشتن در پایه
pinMode: تعریف وضعیت پایه
این کتابخانه در حقیقت پایه تعریف شده توسط کاربر را به صورت خروجی با تابع pinMode تعریف می کند. سپس این پایه را به کمک تابع digitalWrite یک منطقی می نویسد. بعد از این مرحله، وضعیت پایه را به کمک تابع digitalRead می خواند. در این وضعیت هرگاه کلید فشار داده شود، ورودی صفر خواهد شد. بنابراین کلید همواره باید یک پایه به پین و پایه دیگر آن به GND متصل شود. در حقیقت با این روش طراح کتابخانه، قصد ایجاد مقاومت پول آپ دارد. البته در این روش وجود یک مقاومت سری شده بین پایه و کلید ضروری است. چراکه در صورت عدم وجود این مقاومت، با فشردن کلید، پایه با ولتاژ ۵ به زمین اتصال کوتاه شده و میکروکنترلر آسیب خواهد دید. برای روشن تر شدن موضوع به تصویر زیر دقت کنید.
پس از این مورد، در رابطه با کتابخانه، توجه داشته باشید که این کتابخانه بر روی معماری های AVR و ESP8266 قابل اجراست. بنابراین بدون مشکل، این کتابخانه بر روی بردهای آردوینو UNO، MEGA، ESP-12E، NODEMCU و…. قابلیت اجرا خواهد داشت.
تحلیل و بررسی توابع کلیدی وکاربردی
پس از بررسی الزامات و نکات فنی کتابخانه، نوبت به تحلیل و بررسی توابع کلیدی و کاربردی می رسد. جدول زیر لیست این توابع را به همراه شرح ورودی ها و عملکرد، نمایش می دهد.
شرح | ورودی ها | تابع |
این تابع در حقیقت تابع سازنده کلاس کتابخانه بوده که شماره پایه را تعیین می کند.
توجه: شماره پایه انتخابی از پایه های وقفه خارجی باشد. این پایه برای بردهای ESP8266 کلیه پایه ها و برای آدروینو UNO پایه شماره ۲ و ۳ است. |
ورودی شماره پایه جهت اتصال کلید | eBtn(int pin); |
این تابع تنظیمات تعریف شده توسط کاربر را اعمال و اجرا می کند. | بدون ورودی | void handle() |
به کمک این تابع می توان مدت زمان (میلی ثانیه) جهت فشار دادن کلید را تعیین نمود. در حقیقت این تابع تعیین می کند که چند ثانیه کلید فشرده شود، فشار داده تشخیص داده می شود.
توجه: مقدار پیشفرض ۱۰۰۰ میلی ثانیه یا یک ثانیه است. |
ورودی جهت تعیین پایه | void setThreshold(int t) |
توضیحات در ادامه جدول | ورودی اول تعیین نام روتین تابع
ورودی دوم: تابع |
void on(String eventName, callBack cb) |
در رابطه با تابع آخر، نکات بسیار مهمی وجود دارد. این تابع دارای دو ورودی است. ورودی اول عملی که در صورت فشرده شدن کلید قرار است صورت بگیرد را تعیین می کند. این عمل به صورت رشته در کتابخانه تعریف شده است. جدول زیر را دقت کنید.
شرح | رشته |
فشرده شدن کلید | press |
نگه داشتن کلید | hold |
رها کردن کلید | release |
مدت زمان فشرده شدن کلید | long |
بنابراین با قرار دادن هریک از عبارات فوق به صورت رشته در ورودی اول، مد کاری را تعیین می شود. در ورودی دوم، باید نام تابعی که قرار است این عملیات را انجام دهد، قرار می گیرد. در حقیقت شما باید یک تابع برای اجرای عملیات مد نظر تعریف کرده و نام آن را در ورودی دوم قرار دهید.
توجه: برای اجرای مثال، از نرم افزار آردوینو گزینه File->Examples->ebtn->InterruptButton را اجرا نمایید.
لوازم مورد نیاز
لینک خرید انواع برد آردوینو، کلیک کنید
لینک خرید انواع برد ESP، کلیک کنید
لینک خرید کلید فشاری، کلیک کنید
لینک خرید مقاومت یک کیلو اهمی، کلیک کنید
جمع بندی
در مجموعه آموزش های تحلیل و بررسی کتابخانه ها این قسمت را به بررسی کتابخانه ebtn اختصاص دادیم. این کتابخانه تعامل با کاربر را از طریق کلیدهای Push Button برقرار می کند. به کمک این کتابخانه و توابع از پیش تعریف شده آن، می توان کار با کلیدها را بسیار تسریع بخشید. در این آموزش ابتدا به نصب کتابخانه پرداختیم. در ادامه الزامات فنی و مکانیزم کار کتابخانه بررسی شد. در نهایت با تحلیل و بررسی توابع کتابخانه ای، بحث را به پایان رساندیم.
چنانچه در مراحل راه اندازی و انجام این پروژه با مشکل مواجه شدید، بدون هیچ نگرانی در انتهای همین پست، به صورت ثبت نظر سوالتان را مطرح کنید. من در سریعترین زمان ممکن پاسخ رفع مشکل شما را خواهم داد. همچنین اگر ایرادی در کدها و یا مراحل اجرایی وجود دارند میتوانید از همین طریق اطلاع رسانی کنید.