جلسه دوازدهم دوره آموزشی آردوینو – ارتباط سریال در آردوینو

مقدمه

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

دوست عزیز ، این جلسه یک جلسه کاملا عملی است. اگر نیاز به کدنویسی دارد ، ادیتور خود را باز کنید. اگر مداری لازم است بسته شود ، قطعات آن را تهیه کنید و گام به گام با این جلسه پیش بروید. اگر هم محاسباتی لازم است ، خودتان کاغذ و قلم را بردارید و محاسبات را انجام دهید. این کارها را انجام دهید تا یک بار برای همیشه آردوینو را به صورت حرفه ای یاد بگیرید.

معرفی ارتباط سریال

در ابتدای این دوره ما یادگرفتیم که برد آردوینو با استفاده از پورت USB  به لپتاپ وصل میشه و ما از اون طریق میتونیم کدهامون رو روی پردازنده ی اون بریزیم. یه اتفاق خوبی که این وسط میفته اینه که با استفاده از همین راه ارتباطی میتونیم داده هایی رو از برد آردوینو به کامپیوترمون بفرستیم و در اونجا نمایش بدیم. یعنی مثلا به برد آردوینو یه سنسور دما وصل هست و ما میتونیم دماها رو بخونیم و اون رو به کامپیوتر ارسال کنیم و در کامپیوترمون به نمایش در بیاریم.

برای این که این موضوع رو بهتر متوجه بشیم میخوایم در این مورد یه مثال بزنیم.

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

مدار راه اندازی یک فتوسل با آردوینو

کد مربوط به این راه اندازی در شکل زیر اومده. توی این که هیچ نکته خاصی وجود نداره مگر دستورات مربوط به ارتباط سریال که البته دو تا دستور خیلی مهمه

کد راه اندازی فتوسل با آردیونو

 

دستور Serial.begin(9600) :

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

این عدد که به baud rate معروفه نشون دهنده ی” تعداد بیت های ارسالی در هر ثانیه ” است. یعنی در اینجا ما در هر ثانیه 9600 بیت رو ارسال می کنیم.

البته بدیهی هست که ما میتونیم این مقدار رو تغییر بدیم و مقدار دلخواه دیگه ای رو قرار بدیم ولی پیشنهاد ما بر این هست که اگه در نرخ های پایین میخواید داده ازسال کنید از 9600 و اگه در نرخ های بالا میخواید داده ارسال کنید از نرم 115200 استفاده کنید.

سوال:
در دنیای شبکه نرخ ارسال بر حسب دو واحد bit rate و baud rate سنجیده می شود که نرخ bit rate برابر تعداد بیت های ارسالی است ولی ما در اینجا همین مفهوم “تعداد بیت ها برای ارسال” استفاده کردیم و نام آن را baud rate گذاشتیم. علت این کار چیست و چرا در اینجا می توان از این دو مفهوم به جای همدیگر استفاده کرد؟

دستور Serial.Println() :
در این دستور ما مقداری که از پورت سریال رو میخونیم ( یعنی مقداری رو که برد آردوینو فرستاده روی پنجره مربوط به پورت سریال نمایش می دیم. توجه داشته باشید اگه عبارتی که در آرگومان این تابع قرار میگیره داخل دابل کوتیشن ( یعنی “”) قرار بگیره همون عبارت بدون هیچ تغییری نشون داده میشه و اگه نام یه متغیر قرار بگیره مقدار متغیر نشون داده میشه.

تعداد دستورات مربوط به پورت سریال زیاده و اصلا در یک جلسه نمی گنجه که گفته بشه. با بعضی هاشون هم ما تا خیلی وقت کاری نداریم. به همین خاطر از گفتن بقیه دستورات اضافی در اینجا خودداری میکنیم ولی تاکید میکنیم در پروژه هایی که در آینده در مورد آردوینو در سایت قرار داده میشه حتما بقیه دستورات هم آروم آروم گفته میشه.

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

 

پنجره ارتباط سریال در آردوینو

در این پنجره دو تا گزینه قابل تغییر که البته یه گزینه اش برای ما خیلی مهم هست و با گزینه دوم فعلا کاری نداریم.( البته در آینده اون رو هم بررسی می کنیم)

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

این گزینه  مقدار baud rate هست که البته حضور این گزینه بسیار ضروری هم هست. تا اینجا کاری که ما کرده بودیم این بود که میگفتیم برد آردوینو با چه نرخی ارسال کنه داده ها رو و از این طرف هم باید بگیم کامیپوتر با چه نرخی داده ها رو دریافت کنه. این گزینه رو هم باید مطابق با مقداری که در کد تنظیم شده قرار داده بشه.

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

مثل همیشه میتونید ما رو در تلگرام و یا اینستاگرام دنبال کنید.

اشتراک گذاری:
مطالب زیر را حتما بخوانید

20 دیدگاه

به گفتگوی ما بپیوندید و دیدگاه خود را با ما در میان بگذارید.

  • سلام و خسته نباشید بنده یک مدار دیمر دیجیتال با آردوینو نانو درست کردم اما به هیچ وجه کار نمیده
    مدار و دستورات آردوینو هم از این سایت گرفتم
    http://Www.Instructables.Com/Id/Arduino-Controlled-Light-Dimmer-The-Circuit/
    لطفا اگه این مدار یا دستورات و یا برد آردوینویی که انتخاب کردم مشکل داره بهم بگید تا مشکلش را برطرف کنم ممنونم از سایت خوب و عالیتون…

    • با سلام خدمت ش. لینکی که فرستاده اید حاوی چندین پروژه است. لطفا لینک صحیح را ارسال کنید.
      همچنین تصویر از مدار خود را ارسال بفرمایید.
      با تشکر.

  • سلام
    ببخشید بنده در مورد گرفتن داده از متلب وفرستادن برای آردوینو سوال داشتم که برای این کار چه کار کنیم؟

    • با سلام. لطفا سوالتون رو دقیق مطرح بفرمایید و توضیح بدید که در چه بخشی از اون مشکل دارید تا توضیحات لازم ارایه بشه.

  • درود برشما

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

    من سالها برنامه نویس وب و موبایل بودم و به تازگی به شدت به برنامه نویسی سطح پایین تر و خلق یک ایده خیلی علاقمند شدم . دستورات آردوینو رو با یک نگاه متوجه میشم اما در فهم شمای مدار خیلی مشکل دارم . مشکل اساسی هم این هست که نمیتونم مسیر جریان رو در مدار دنبال کنم ! مثلا در شکل بالا ، چنانچه از 5V شروع کنیم بعد از عبور از مقاومت چه اتفاقی خواهد افتاد؟ چرا جریان باید از فتوسل عبور کند ( فتوسل هم قطعا دارای مقداری مقاوت هست لذا بنظر میرسد که اتصال کوتاه رخ داده و جریان به سمت ورودی آنالوگ 0 صفر هدایت خواهد شد . اگر حقیر رو راهنمایی بفرمایید ممنون میشم . برای حل این مشکلات پایه پیشنهاد میفرمایید چه کتابی مطالعه کنم؟

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

      1- مفهوم مدار الکتریکی
      2- آشنایی با مفهوم ولتاژ و جریان
      3- مقاومت چیست؟

      ضمن این که در صورت هر گونه سوال ما در خدمت شما هستیم. البته در حال طراحی دوره الکترونیک مقدماتی هستیم و تا چند هفته آینده این دوره بر روی سایت قرار میگیره و میتونید به صورت منظم مطالب الکترونیکی رو خیلی آسان یاد بگیرید.
      موفق و پیروز باشید.

  • میشه در زمینه ادامه آموزش ها سورس معرفی کنید یا آموزش ها رو ادامه بدید؟

    • با سلام.
      در مورد آردوینو ، منابع بسیار زیادی وجود داره. ما این دوره رو از روی کتابی به نویسندگی سازنده آردوینو توضیح دادیم. ولی شما میتونید از لینک های زیر آموزش ها و پروژه های مرتبط با آردوینو رو ببینید:
      لینک پروژه های آردوینو
      لینک دانلود کتاب های آردوینو
      مرجعی برای تمامی دستورات آردوینو

      و اگه بخوایم این لیست رو ادامه بدیم ، بسیار طولانی خواهد شد.
      دوره ای که در سایت قرار داده شده ، سطح مقدماتی هست ولی به مرور زمان ما سطوح پیشرفته رو هم اضافه خواهیم کرد و پروژه های مختلفی رو قرار خواهیم داد. جلسات تکمیلی این دوره هم در حال آماده سازی هست و به محض انتشار در کانال تلگرام اطلاع رسانی می شود.
      موفق باشید.

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