آموزش ارتباط سریال Arduino بخش پایانی

آموزش ارتباط سریال Arduino

به نام خدا .  در این قسمت از آموزش قصد تکمیل کردن مبحث ارتباط سریال Arduino را داریم . در این پست به شرح توابع setTimeout ، write  و serialEvent می‌پردازیم . در ادامه  با مرجع تخصصی آردوینو ، دیجی اسپارک همراه باشید.

 

 

Serial.setTimeout()

 

این تابع حداکثر زمان   برای منتظر ماندن دریافت اطلاعات از پورت سریال را مشخص می‌کند. توابع readBytes , readbytesUntil , readString , ReadStringUntil , parseFloat , parseInt  به طور پیش فرض از ۱۰۰۰ میلی ثانیه ( ۱ ثانیه ) برای منتظر ماندن دریافت اطلاعات از پورت سریال استفاده می‌کنند .ساختار کلی تابع به صورت زیر می‌باشد :

به جای آرگومان time عددی بر حسب میلی‌ثانیه وارد می‌کنیم.

 

 

write()

 

به وسیله این تابع می‌توان یک عدد بین ۰ تا ۲۵۵ ، یک رشته و یا یک آرایه (همراه با تعیین طولی از آرایه که قصد ارسال آن را دریم)ارسال کرد.تفاوت این تابع با تابع print

در جیست؟ تابع print  دیتا را به صورت کاراکتر ASCII ارسال می‌کند که باعث می‌شود دیتای ارسالی برای کاربر قابل خواندن و درگ باشد . ولی در مقایل تابع write اطلاعات را به صورت بایتو ناخوانا ارسال می‌کند. علت استفاده از تابع writeدر این است که بعضی از دستگاه‌ها دیتا را با فرمت بایت می‌خوانند.

 

ساختار کلی تابع write به شکل زیر می‌باشد:

val : مقدار عددی یک بایتی که قصد ارسال آن را داریم.

str : یک رشته که قصد ارسال آن را داریم .

buf : آرایه‌ای از جنس []byte یا []char  که قصد ارسال آن را داریم.     len  : تعداد خانه‌های آرایه که قصد ارسال آن را داریم .

 

 

تابع write  تعداد بایت‌های ارسالی را برمی‌گرداند .

 

مثال :

 

 

serialEvent()

این تابع هنگامی که دیتایی به پورت سریال ارسال می‌شود فراخوانی می‌شود. تابع  serialEvent در آردوینو‌های Esplora, Leonardo, Micro پشتیبانی نمی‌شوند.

از این تابع بعد از loop استفاده می‌شود.ساختار کلی این تابع به صورت زیر می‌باشد:

 

همچنین در آردیونوهای مگا به صورت زیر استفاده می‌شود :

 

مثال :

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

 

پایان بخش ارتباط سریال

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

9 دیدگاه ها

  1. محمد جواد می‌گه:

    سلام
    خداقوت

    لطفا از پایه شروع به آموزش کنین
    مطالبی که تدریس میکنین خیلی پیش نیاز میخوان

  2. ستاره می‌گه:

    افا اجازه کپی مطلب هستش؟

  3. Sh می‌گه:

    خسته نباشین
    خدار ر شکر بالاخره تموم شد
    تشکر

  4. مهسا می‌گه:

    سلام خواستم به خاطر زحماتتون ازتون تشکر کنم

  5. حامد می‌گه:

    سلام
    وقتتان بخیر
    میخواستم ببینم . به فرض مثال ما یک میکرویی داریم که هیچ اطلاعاتی ازش در دسترس نیست . فقط و فقط یک لاین ارتباطی ازش داریم . یعنی برای ارتباط و اینکه بشه سیگنالهاش رو آنالیز کرد . فقط و فقط یک لاین یا حد اکثر ۲ لاین داریم . مثل RX ,TXو یا K line و L line ای سی یو .و یا هر چیز دیگری . حالا چطوری میتونیم توسط اوردینو سیگنالهای دریافتی از این لاین رو ببینیم . و بتونیم پی به پروتکل داخلی ببریم و یا اینکه بشه فهمید سیگنالهایی که ارسال میکنه چیه ؟ . لطفا سریعتر پاسخ دهید به عنوان پروژه نیاز دارم .
    با تشکر

  6. yalda shirazi می‌گه:

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

پاسخ دهید

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