چاپ دستورات -آموزش آردوینو

این جلسه مربوط به دوره قدیمی آردوینو وبسایت می باشد. برای دیدن دوره جدید به این لینک مراجعه فرمایید.

چاپ دستورات در سريال مانيتور

این جلسه میخوایم تمرکز کنیم روی سريال مانيتور آردوینو. اين پنجره سريال مانيتور همانند پنجره كنسول در ديگر نرم افزارهاست.

 

 

وقتی که روی شکل کلیک می کنید وارد صفحه اصلی سريال مانيتور میشوید.

 


یکی از کاربردها استفاده از سريال مانيتور به عنوان نمایشگر هست. فرض کنید یك سنسور دما داريم كه با استفاده از آن دماي يك محيط خاص مثلا درون يك سردخانه را براي ما ارسال مي كند چنانچه بخواهيم دماي ارسال شده ناشي از اين سنسور را مشاهده كنيم كافيه پنجره سريال مانيتور را باز كنيم و داده هاي ارسال شده را مشاهده كنيم:

 

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

کد رو می نویسیم و آپلود می کینم. به ظاهر همه چیز خوب پیش رفته و کامپایلر هم ارور نداده ولی می بینیم روی سون سگمنت هیچ عددی نمایش داده نمیشه. یکی از احتمالاتی که وجود داره اینه که داده سنسور یه جایی از بین رفته باشه(خطای کد نویسی). با استفاده از همین کنسول سریال میتونیم خط به خط برناممون رو دیباگ کنیم و ببینیم کجا داده سنسور از دست رفته(در جلسه های بعد مثال عملی می زنیم).
بیاین یه مثال عملی بزنیم. یه کد بنویسیم که هر کسی اسمشو توی کنسول آردوینو چاپ کنه. خب اسکچ رو باز کنید.

قدم اول برای ایجاد ارتباط سریال بین آردوینو و کامپیوتر، تعیین کردن نرخ ارسال داده (Baude Rate) هست به عبارت دیگه باید نرخ ارتباط سریال رو کانفیگ کنیم. دستوری که باهاش این کار رو انجام میدیم Serial.begin هست. خب از اسم دستور معلومه یعنی کامپیوتر عزیز ارتباط سریال رو شروع کن. این دستور یه آرگومان عددی داره که بیانگر Baude Rate مربوط به ارتباط سریال هست مثلا 9600. بنابراین برای کانفیگ کردن ارتباط سریال بین آردوینو و کامپیوتر از دستور (Serial.begin(9600 استفاده می کنیم. حالا این دستور کجا باید نوشته بشه؟ توی setup یا loop ؟ این سوال رو خودتون باید بتونید جواب بدید. به خاطر این که داریم کانفیگ می کنیم و تنها یک بار لازمه این تنظیم رو انجام بدیم این دستور توی تابع setup نوشته میشه.

 

 

قدم بعد (قدم آخر) باید یه دستور بنویسیم که اسممون رو توی کنسول چاپ کنه. از دستور Serial.print یا Serial.println استفاده میکنیم. دستور Serial.print هر چیزی که به عنوان آرگومانش بهش داده بشه پشت سر هم چاپ می کنه میره. اما دستور Serial.println بعد از چاپ آرگومانش میره خط بعدی. این دستورها تنها یه آرگومان به عنون ورودی میگیرن که باید حتما توی علامت دبل کوتیشن نوشته بشه مثلا (“Serial.println(“aftab . حالا من میخوام هر بار که قراره اسمم چاپ بشه بره تو یه خط جدید اجرا بشه بنابراین از دستور Serial.println استفاده میکنم. خب بازم سوالی که پیش میاد اینه که دستور Serial.println کجا نوشته بشه؟ setup یا loop ؟ این دفعه بزارین هر دو مورد رو امتحان کنیم تا فرقشو کامل متوجه بشید. اول دستور رو میزاریم تو تابع loop. کد رو اپلود میکنیم.

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

 

همونطور که قبلا هم در موردش حرف زدیم دستوراتی که توی تابع loop نوشته میشن تا زمان ابد تکرار میشن و ادامه دارن.
حالا دستور رو توی تابع setup می نویسیم و آپلود می کنیم:

و خروجی کنسول:

می بینید که تنها و تنها یک بار چاپ میشه و تا هزار سال دیگه هم که بشینید هیچ خبری نمیشه. فکر کنم الان کاملا با تفاوت تابع setup و loop آشنا شده باشید.
حالا اگه خواستیم با فاصله زمانی یک ثانیه اسممون رو چاپ کنیم چطوری کد بنویسیم؟

خب بدون شک میریم تو تابع loop ، دستورچاپ رو مینویسیم فقط یه تاخیر 1 ثانیه ای بینش قرار میدیم . با این کد نویسی اول تابع Serial.println اجرا میشه و روی کنسول نمایش داده میشه بعد به مدت 1 ثانیه روی همون دستور می ایسته و دوباره بر میگرده به اول تابع loop و تکرار روند.

در پناه حق باشید

لینک دانلود فایل pdf جلسه ششم:
دانلود

برای دریافت آخرین مطالب سایت  و همچنین مطالب منحصر به فرد دیگر که در سایت منتشر نمی شوند میتوانید در کانال تلگرام ما عضو شوید و یا در اینستاگرام ما را فالوو کنید:

پایان جلسه

منبع: http://blog.arduino.ir

شاید دوست داشته باشید مطالب زیر را نیز بخوانید:

17 نظر

  • افشین رادمهر

    سلام اقای قاسمی

    شما میتونید در مورد اینکه اطلاعاتی از برد اردوینو توسط بلوتوث انتقال بدیم به یه برنامه اندرویدی کمکم کنی

     

    الان من میتونم یه سری دستورا رو توسط بلوتوث گوشی به اردوینو انتقال بدم و اردیونو انجام بده

     

    ولی نمیتونم از طریق بلوتوث اردیونو اطلاعات رو به گوشی بفرستم

    ممنونم اگه کمکم کنی

    حق الزحمه شما هم هرچقدر باشه پرداخت می کنم چون یه پروژه دارم که باید حتما درستش کنم

    • حامد قاسمی

      با سلام خدمت شما.
      لطفا چند مورد زیر رو اعلام بفرمایید تا کمک های لازم انجام بشه :
      1- مدل ماژول بلوتوث مورد استفاده
      2- مدل برد آردوینو مورد استفاده
      3- نرم افزاری که در گوشی برای دریافت اطلاعات از برد آردوینو استفاده میکنید.
      4- منظورتون از انتقال اطلاعات از برد آردوینو به گوشی دقیقا چیست؟ آیا منظور شما دقیقا یک متن ساده است ؟ لطفا این موضوع را دقیقا اعلام فرمایید.
      5- لطفا عکسی از مدار خودتون هم ارسال کنید و کد مورد نظر خودتون رو هم اینجا بنویسید تا دقیق تر موضوع بررسی بشه ( عکسی که میفرستید حتما واضح باشه لطفا)

      پی نوشت: ما در اینجا هدفمون کمک به کاربرانمون هست و از این بابت حق الزحمه ای دریافت نمیکنیم.

      منتظر پاسخگویی شما هستم.
      موفق باشید.

  • نوشتن نظر

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

    اضافه کردن تصویر ( فقط فرمت jpg)