Home / آردوینو - آموزش آردوینو-Arduino / آموزش آردوینو اتصال کلید به آردینو (سوم)

آموزش آردوینو اتصال کلید به آردینو (سوم)

در قسمت قبل آموزش آردوینو در الکترولب به نحوه راه اندازی led چشمک زن با آردوینو پرداختیم . در این آموزش اتصال کلید به آردوینو و کنترل یک وسیله جانیی دیگر مثل led با کلید را بررسی می کنیم.

ابزار لازم برای اتصال کلید به آردوینو:

  • برد آردوینو (mega یا uno)
  • برد بورد برای اتصال کلید و led
  • کلید فشاری یا push button
  • LED
  • سیم برد بوردی

شماتیک لازم برای اتصال کلید به برد آردوینو:

آموزش-آردوینو-الکترولب

عملکرد کلی برنامه:

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

کد برنامه اتصال کلید به برد آردوینو:

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

 

عبارت const int در سطر:

برای تعریف یک متغیر عددی در آردوینو از عبارت int استفاده می شود به طور مثال اگر بنویسیم

یعنی متغیر a برابر ۱۳ می شود در هر کجای برنامه می توان به جای عدد 13 از a استفاده کرد.

عبارت const در اول int به این معنی است که تا آخر برنامه مقدار متغیر a ثابت میماند و مقدار آن را تغییر نمی دهیم. پس عبارت های

به این معنی. می باشد که به جای عدد 12 می توانیم عبارت button pin و به جای عدد 13 از عبارت ledpin در دستورات استفاده کنیم.

این نوع نوشتن برنامه باعث خوانایی بیشتر برنامه می شود یعنی اگر دستور

را در نظر بگیریم به جای عدد 13 از عبارت ledpin استفاده شده است. پس به راحتی می توانیم تصمیم بگیریم که باید این پایه به صورت خروجی تعریف شود.

مزیت دیگری که این نوع برنامه نویسی برای ما دارد این است که اگر بخواهیم پایه ای که led یا کلید به آن متصل است را تغییر دهیم کافی است مقدار آن را فقط در اول برنامه تغییر دهیم. و دیگر نیازی نیست که مثلاً پایه 13 را به ۵ در تمامی دستورات تغییر دهیم مثلاً اگر بنویسیم

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

متغییر buttonstate:
این متغییر برای ذخیره وضعیت کلید به کار میرود در ادامه بیشتر در این مورد توضیح میدهم.

تابع setup :

در تابع setup پایه ای که led به آن متصل شده است را به صورت خروجی. و پایه ای که کلید به آن متصل است به صورت ورودی تنظیم می کنیم. در باره دستور pinmod در قسمت قبلی آموزش توضیحاتی ارایه شد.

تابع loop:

دستور digitalread:

توسط این دستور می توان از وضعیت یک پایه خبردار شد این دستور دو مقدار High و Low را بر می گرداند مثلا اگر بنویسم.

اگر بر روی پایه ی 13 پنچ ولت داشته باشیم متغییر a برابر High می شود.  و در صورت صفر ولت بودن پایه در متغیر a صفر یا Low ذخیره می شود.  پس در برنامه ی ما

وضعیت کلید وصل شده در متغییر buttonstate قرار می گیرد.

دستور if:

اگر با برنامه نویسی C آشنایی داشته باشید فهمیدن مفهوم این دستور برایتان ساده خواهد بود.  من در ادامه معنی دستور شرطی if… else را به طور کامل توضیح می دهم.

اگر عبارت نوشته شده در داخل پارانتز دستور if درست باشد یعنی 1 دستورات داخل کروشه if اجرا می شود در  صورت ناردست بودن شرط (یعنی 0) دستورات داخل کروشه else  اجرا می شود.

عبارت ==:

از این عبارت برای مقایسه ی دو متغییر استفاده می شود. به این صورت که اگر دو متغییر برابر باشند مقدار 1 و اگر برابر نباشند مقدار 0 را بر می گرداند.

شرط  buttonState == HIGH به این معنی است که اگر پایه ی متصل به کلید یک شود (5 ولت کلید فشار داده شده باشد) شرط if درست بوده و دستورات داخل کروشه if اجرا می شود.

و led روشن می شود. ولی اگر پایه متصل به کلید صفر باشد (کلید فشار داده نشده باشد) شرط if نادرست بوده و دستورات داخل کروشه else اجرا می شود.

و led خاموش می شود.

آموزش بعدی راه اندازی LCD کاراکتری با آردوینو

اگر از مطلب را پسندید در شبکه های اجتماعی یا انجمن ها مطلب را به اشتراک بگذارید تا دوستان و بقیه نیز با الکترولب آشنا شوند ممنون

About علی عزتی

علی عزتی هستم. رشته ی مهندسی برق الکترونیک رو خوندم. علاقه ی من به یادگیری و به اشتراک گذاشتن چیز هایی که یاد گرفتم. باعث شد تا الکترولب ایجاد بشه. علاقه ی زیادی به الکترونیک دارم. و دوست دارم چیزهای جدید یادبگیرم و بسازم ... :))

Check Also

آموزش جامع میکروکنترلر STM8S

میکروکنترلر STM8S محصول 8 بیتی شرکت ST هست که در شکل زیر می‌توان مدل‌های مختلف ...

5 comments

  1. سلام بنده قصد دارم با آردوینو2560 وmpu6050ویه فرستنده(wifi)اطلاعات رو به یه گیرنده بفرستم واونجا سرعت موتور سروو رو تغییر بدم.چن تا مشکل هس:اول اینکه مبتدی ام و تا حالا با ماژولای wifi کار نکردم به همین دلیل ماژولش رو شما پیشنهاد بدید(البته توضیحاتتون در موردESP8266خوندم).دومم اینکه با یه آردوینو کار را میافته یا برا فرستنده و گیرنده جدا باید باشه(یه چشم انداز کلی هم از مسیر انجام پروژه بدید خیلی عالی میشه).
    تشکر وسپاس فراوان بابت زحماتتون.

    • سوال تون رو در انجمن پاسخ دادم باز اگه سوالی بود اونجا مطرح کنید بهتر می تونیم بحث کنیم در انجمن این هم لینک تاپیک
      http://electrolab.org/showthread.php?tid=279

    • یونس عباس زاده

      در قسمت فرستنده که mpu هست به یک برد آردوینو و ماژول وای فای esp8266 (از هر مدلی مثلا es-07) باید استفاده کنید در گیرنده هم باید ماژول وایفای و یک برد اردوینو داشته باشید به همراه یک بافر یا درایور برای موتور سروو . اطلاعات مربوط به وای فای هم در فسمت دوم آموزش توضیح داده خواهد شد

  2. طباطبایی یزدی

    سلام
    خطای error: espcomm_upload_mem failed
    چه زمانی داده میشه ؟
    برای رفع این خطا باید چه کنیم ؟

  3. سلام مهندس
    وقت بخیر
    چه طور میشه با کلید مثلا دور یک موتر که با pwm کم یا زیاد میشه رو تغییر داد
    منظورم کم یا زیاد کردن عدد مورد نظر با موتر هست….
    ممنون میشم اگر پاسخ بدین

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

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

این سایت از اکیسمت برای کاهش هرزنامه استفاده می کند. بیاموزید که چگونه اطلاعات دیدگاه های شما پردازش می‌شوند.