Arduino NodeMcu

خواندن دکمه ( Button )

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

برای خواندن سنسور مدار را می توانیم در دوحالت ببندیم: حالت Active-Low و حالت Active-High.

مدار Active Low

در شکل زیر می توانید می توانید دو مدار Active-Low را در حالی که دکمه رها شده و در حالی که دکه فشار داده، مشاهده کنید. در این مدار ولتاژ تغذیه VCC از طریق مقاومت به پایه GPIO متصل می شود و منطق HIGH را در پایه ورودی ایجاد می کند. هنگامیکه دکمه فشار داده می شود جریان از طریق دکمه به زمین منتقل می شود علت ان هم اینست که مقاومت اهمی دکمه از مقاومت اهمی پایه GPIO کمتر است. پایه GPIO هنگامیکه در حالت ورودی قرار می گیرد امپدانس بالا یا High Impedance است. در نتیجه مقدار منطقی LOW بر روی پایه وردی قرار می گیرد. به مقامتی که در مدار Active-High استفاده می شود اصطلاحا مقاومت بالا کش یا Pull-Up گفته می شود و مقدار آن بین ۱ کیلو اهم تا ۱۰ کیلو گفته می شود.

مدار Active High

در شکل زیر می توانید دو مدار Active-High در حالیکه دکمه رها شده و در حالی که فشار داده شده، مشاهده کنید. در این مدار پایه ورودی از طریق مقاومت به زمین متصل شده است بنابراین مقدار جریان صفر است و مقدار منطقی Low را در پایه ورودی ایجاد می کند. هنگامیکه کلید فشار داده می شود جریان در مسیر مقاومت و پایه ورودی ایجاد می شود که باعت می شود ایجاد اختلاف پتانسیل بر روی پایه وردی می شود که منطق آن High می شود. به مقاومت در مدار Active-High اصطلاحا پایین کش یا Pull-Down می گویند و مقدار آن بین ۱ کیلواهم تا ۱۰ کیلو اهم می باشد.

ورودی دیجیتال

برای خواندن وضعیت یک دکمه باید پایه GPIO را به صورت ورودی تنظیم کرد. برای این کار از تابع pinMode استفاده می کنیم. این تابع دو آرگومان قبول می کند. آرگومان اول مربوط به نام پایه یا شماره پایه مورد استفاده و آرگومان دوم مربوط به حالت پایه است که می توانید یکی از سه حالت INPUT ، OUTPUT و INPUT_PULLUP باشد. دو حالت اول که کامل مشخص هستند و در حالت آخر علاوه بر اینکه پایه بر روی حالت ورودی قرار می گیرد مقاومت Pull-Up داخلی هم بر روی آن فعال می شود. برای خواندن پایه از تابع digitalRead استفاده می شود. این تابع تنها یک آرگومان قبول می کند و آن هم نام یا شماره پایه ای است که می خواهد خوانده شود. خروجی این تابع از نوع عدد صحیح ( int ) است ولی نهایتا می تواند مقدار ۰ یا ۱ داشته باشد.

برنامه نمونه

قبل از نوشتن برنامه، مدار ساده فوق را بر روی برد برد ببندید.

در خط ۴ پایه D3 که کلید به آن متصل شده است به صورت ورودی و در خط ۶ پایه D6 که LED به آن اتصال دارد در حالت خروجی قرار می دهد.

در حلقه اصلی برنامه وضعیت کلید به طور مکرر بررسی می شود. از آنجائیکه کلید در حالت Active Low به ماژول اتصال دارد در صورتیکه مقدار پایه خوانده شده در حالت صفر، زمین یا LOW قرار داشته باشد پایه D6 یک شده و LED روشن می شود و در بلوک ELSE در صورتیکه شرایط فوق صادق نباشد LED خاموش می شود.

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

ساعد

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


× هشت = 64