معرفی
ARDUniaButton یک کتابخانه سبک، غیرمسدودکننده و بدون وابستگی جانبی برای مدیریت کلیدهای فشاری در پروژه های Arduino است.
این کتابخانه با استفاده از millis() وضعیت و رویدادهای کلید را بدون استفاده از delay() مدیریت می کند و برای پروژه هایی که همزمان وظایف دیگری نیز انجام می دهند، مناسب است.
امکانات
- تشخیص Press و Release
- حذف نویز کلید با Debounce
- تشخیص Single Click
- تشخیص Double Click
- تشخیص Multi Click
- تشخیص Long Press
- تشخیص وضعیت Hold
- تکرار رویداد هنگام نگه داشتن کلید
- API مبتنی بر Polling
- API مبتنی بر Callback
- پشتیبانی از Active-LOW و Active-HIGH
- پشتیبانی از
INPUTوINPUT_PULLUP - پشتیبانی از
INPUT_PULLDOWNدر هسته هایی که آن را تعریف کرده اند - بدون تخصیص حافظه پویا
- بدون وابستگی به کتابخانه های جانبی
- مدیریت ایمن زمان با
millis()
اتصال پیش فرض
در حالت پیش فرض، کلید بین پایه دیجیتال و GND متصل می شود:
Arduino GPIO ----[ BUTTON ]---- GNDکتابخانه از مقاومت Pull-Up داخلی استفاده می کند و بنابراین در حالت معمول نیازی به مقاومت خارجی نیست.
زمان بندی پیش فرض
| تنظیم | مقدار پیش فرض |
|---|---|
| Debounce | 30 ms |
| Long Press | 1000 ms |
| Double Click Window | 400 ms |
| Repeat Initial Delay | 500 ms |
| Repeat Interval | 100 ms |
تمام این مقادیر قابل تنظیم هستند.
سازگاری
این کتابخانه برای استفاده با Arduino Core طراحی شده و نسخه 0.2.0 روی موارد زیر تست شده است:
- Arduino UNO
- ESP8266
- ESP32
نمونه ها
مخزن کتابخانه شامل نمونه هایی برای استفاده از API های مختلف است:
- BasicUsage
- Callbacks
- VolumeControl
مجوز
ARDUniaButton با مجوز MIT منتشر شده است.
پروژه
ARDUniaButton یک پروژه متن باز از ARDUnia است که توسط حمیدرضا میلانی نیا توسعه داده شده است.
