کیپدها یکی از ابزارهای کلیدی در دریافت ورودی از کاربر به شمار می آیند. به کمک این ابزار، می توان اعداد و حروف را از کاربر دریافت نمود. از نمونه کاربردهای این ابزار می توان به قفل های رمزی، دستگاه های خود پرداز، کارتخوان ها و… نام برد. ماژول کیپد TTP229 یک کیپد با قابلیت تاچ خازنی است. این ماژول که ۱۶ کلید بر روی خود دارد، می تواند ارقام یک الی ۱۶ را از ورودی دریافت کند. ماژول کیپد تاچ TTP229، دارای پایه هایی جهت تشخیص کلیدهای فشرده شده است. این پایه ها، از کلید ۱ الی ۸ را شامل می شوند. جهت تشخیص کلید های ۸ الی ۱۶، می بایست از پورت I2C آن استفاده شود. به کمک این پورت به سادگی و بدون نیاز به پایه های ۱ الی ۸، می توانید همه ۱۶ کلید را تشخیص دهید. جهت راه اندازی و کار با این ماژول، کتابخانه مناسبی نیز توسعه یافته است. این کتابخانه به سادگی ارتباط بین آردوینو و کیپد را فراهم می کند. در این آموزش به شرح توابع و مثال هایی از کاربرد می پردازیم. در ادامه با مرجع تخصصی آردوینو به زبان فارسی، دیجی اسپارک همراه باشید.
نحوه نصب کتابخانه TTP229.h
جهت استفاده از کتابخانه کیپد تاچ، ابتدا می بایست آن را نصب کنیم. به همین منظور، در محیط نرم افزار آردوینو، ابتدا بر روی گزینه Tools و سپس Manage Libraries کلیک کنید. این موارد با فلش های قرمز رنگ در تصویر زیر نمایش داده شده است.
پس از این قسمت، منویی از لیست کتابخانه های در دسترس ظاهر می شود. این منوی یک کادر مخصوص جستجوی نام کتابخانه ها دارد. مطابق تصویر زیر، در قسمت کادر، عبارت TTP229 را تایپ کنید.
پس از تایپ عبارت TTP229، با تصویر زیر مواجه می شوید. در این مرحله، با کلیک بر روی گزینه install، کتابخانه را نصب کنید.
پس از نصب کتابخانه، نوبت به استفاده از آن در پروژه ها می رسد. اما پیش از آن، ابتدا به بردهای مورد پشتیبانی و الزامات فنی استفاده از کتابخانه را مورد بررسی قرار می دهیم. در ادامه، به تشریح توابع کلیدی و کاربردی پرداخته و در نهایت ضمن یک برنامه کامل، نحوه استفاده از توابع را در پروژه ها، مشاهده می کنیم.
بردها و ماژول های سازگار با کتابخانه TTP229
ماژول کیپد تاچ TTP229 جهت ارتباط با بردها و میکروکنتترلرها، از پورت I2C استفاده می کند. کتابخانه TTP229 نیز از بردهای آردوینو UNO، MEGA ، LEONARDO و ESP32-WROOOM-32 پشتیبانی می کند. شیوه اتصال این ماژول در برد های مختلف، به صورت زیر است.
نام برد |
پایه های I2C |
آردوینو UNO |
SDA=A4
SCL=A5
|
آردوینو MEGA |
SDA=20 SCL=21 |
آردوینو لئوناردو |
SDA=2
SCL=3
|
ESP32-WROOM-32 |
SDA=21 SCL=22 |
در نظر داشته باشید که جهت استفاده از پورت I2C ماژول و خواندن کلیدهای ۱ الی ۱۶، اتصال بین دو پایه مشخص شده با رنگ قرمز در تصویر، برقرار گردد.
پس از بررسی بردهای مورد پشتیبانی و نکات فنی راه اندازی، نوبت به بررسی توابع کتابخانه TTP229 می رسد. به همین منظور، در قسمت بعدی، به توابع کلیدی و کاربردی این کتابخانه می پردازیم.
توابع کلیدی کتابخانه TTP229
در این قسمت به معرفی و شرح توابع کلیدی و کاربردی کتابخانه TTP229 می پردازیم. به همین منظور، این توابع در جدول زیر، لیست شده اند.
تابع | ورودی | شرح |
uint16_t readKeys(); | بدون ورودی | این تابع داده های پورت I2C را خوانده و می بایست قبل از توابع دیگر، فراخوانی شود. خروجی این تابع وضعیت کلیدها را نمایش می دهد. |
int getKey(); | بدون ورودی | این تابع شماره کلید فشرده شده را در خروجی خود قرار می دهد. چنانچه کلیدی فشرده نشده باشد، خروجی برابر با ۱- خواهد بود. |
uint16_t getKeys() | بدون ورودی | این تابع داده جدید را نخوانده و داده قبلی خوانده شده(آخرین داده خوانده شده) را در خروجی قرار می دهد. |
bool isKeyPress(byte key); | ورودی از نوع بایت | این تابع با دریافت شماره کلید در ورودی، فشرده شدن آن را تشخیص می دهد. چنانچه شماره کلید قرار گرفته در ورودی فشرده شده باشد، خروجی true و در غیر اینصورت false خواهد بود. |
پس از اطلاع از توابع کلیدی و کاربردی، نوبت به ارائه مثالی از کاربرد می رسد. به همین منظور، در قسمت بعدی، طی یک برنامه، کاربرد توابع و نحوه استفاده از آن ها را ملاحظه خواهید نمود.
اجرای یک برنامه نمونه
در این قسمت به بررسی یک نمونه برنامه می پردازیم. در این برنامه، کلید از ورودی دریافت شده و در سریال مانیتور نمایش داده می شود. این برنامه برای برد آردوینو UNO توسعه یافته است.
#include <Wire.h> #include <TTP229.h> /* * برای استفاده از این کد در برد آردوینو UNO، به پایه های I2C دقت کنید. * SDA->A4 * SCL->A5 */ TTP229 ttp229; //ایجاد یک شی از کلاس TTP229 void setup() { Wire.begin(); //راه اندازی کتابخانه سریال I2C Serial.begin(9600); } void loop() { ttp229.readKeys();//این تابع هموراه پیش از استفاده از توابع دیگر می بایست فراخوانی شود int key = ttp229.getKey(); //خواندن کلید Serial.print("Pressed key: "); Serial.print(key); delay(500); }
لوازم مورد نیاز
جمع بندی
در این آموزش به بررسی کتابخانه TTP229 پرداختیم. این کتابخانه جهت راه اندازی ماژول کیپد تاچ سنسور ۱۶ کلید با بردهای آردوینو و ESP توسعه یافته است. از آنجاییکه جهت دریافت همه کلیدهای ورودی، نیاز به ارتباط با پورت I2C آن است، بنابراین این کتابخانه ارتباط بین آردوینو و ماژول تاچ را فراهم می کند. در این آموزش به معرفی این کتابخانه و بردهای مورد پشتیبانی پرداخته شده است. در ادامه، ضمن معرفی توابع کتابخانه، شرح هر یک بیان می شود. در نهایت با ارئه یک نمونه برنامه، نحوه استفاده از توابع به طور کامل تشریح می شود.
چنانچه در مراحل راه اندازی و انجام این پروژه با مشکل مواجه شدید، بدون هیچ نگرانی در انتهای همین پست، به صورت ثبت نظر سوالتان را مطرح کنید. من در سریعترین زمان ممکن پاسخ رفع مشکل شما را خواهم داد. همچنین اگر ایرادی در کدها و یا مراحل اجرایی وجود دارند میتوانید از همین طریق اطلاع رسانی کنید.
سلام پروژه رو وقتی اجرا میکنم داخل محیط سریال مونیتورینگ کلا عدد۱- نمایش داده میشه و همینجور ادامه پیدا میکنه اگه ممکنه لطفا بگید چیکار کنم؟؟؟
من با استفاده از سیم جامپر اتصال برد آردوینو UNO و همچنین ماژول TTP229 را برقرار کردم و همچنین پایه SCL را به A5 و SDO را به A4 متصل کرده ام
سلام
برای پایه های sda و scl از مقاومت پول آپ استفاده کنید. مقاومت های ۴.۷ کیلو اهمی نتیجه را در کامنت بعد لطفا اعلام کنید
سلام وقتتون بخیر
امکان دارد نحوه پول آپ کردن پایه sda و scl را توضیح دهید ، وقتی از کیبورد ttp229 استفاده میکنم کلا عدد -۱ را چاپ می کند
قبلا از بذل عنایت جنابعالی کمال سپاس گزاری و امتنان را دارم.
متاسفانه، ماژول TTP229 مورد استفاده شما از دو پین SDA و SCL به عنوان پایههای ارتباط I2C ندارد. TTP229 یک ماژول تشخیص لمسی است و از طریق پایههای دیگری (معمولاً Out1 تا Out8) به میکروکنترلر وصل میشود. این پایهها معمولاً اسم دلخواهی ندارند و شمارهگذاری میشوند.
به منظور استفاده از ماژول TTP229 باید به دقت اتصالات سختافزاری را بررسی کنید و ولتاژ خروجی از هر کلید را با میکروکنترلر خود تشخیص دهید تا بتوانید عملکرد متناسب را تعریف کنید. در مواقعی که عدد -۱ را دریافت میکنید، معمولاً این به این دلیل است که مقدار معتبری از ماژول خوانده نشده یا تشخیص داده نشده است. بنابراین، مطمئن شوید که اتصالات سختافزاری به درستی انجام شده و برنامهی میکروکنترلر شما به درستی اطلاعات را از ماژول TTP229 خوانده و تفسیر میکند.