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

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

به نام خدا . در قسمت ۲ آموزش جامع  ارتباط سریال آردوینو در خدمتتان هستیم . در قسمت اول به بررسی ماهیت  پروتکل سریال و توابع print , println , begin , end , available  پرداختیم. در این بخش نیز قصد داریم توابع خواندن از پورت سریال را مورد بررسی قرار دهیم.در ادامه‌ی آموزش با سایت مرجع آردوینو، دیجی اسپارک همراه  باشید.

 

 

read()

به وسیله‌ی این تابع دیتایی که بر روی پورت سریال قرار دارد خوانده می‌شود.این تابع اگر دیتایی دریافت نکند مقدار ۱- و اگر دیتایی دریافت کند ، همان دیتا را برمی‌گرداند.

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

 

 

مثال:

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

دیتای دریافتی درون متغیر ch ذخیره می‌شود و بعد از خوانده شدن توسط تابع read  این دیتا از بافر گیرنده پورت سریال پاک می‌شود  و در ادامه نیز این عملیات در صورت وجود دیتا در بافر سریال تکرار می‌شود.

 

Serial.readBytes()

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

این تابع دارای ساختار زیر است:

lenght : تعداد بایتی است که قرار است دریافت شود.

buffer: نام آرایه‌ای که قرار است اطلاعات خوانده شده از پورت سریال درون آن دخیره شود.این آرایه می‌تواند از جنس []char یا []byte باشد

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

 

به مثال زیر توجه کنید :

 

در این مثال برنامه به شروع خواندن پورت سریال می‌کندو هنگامی که ۳ بایت داده دریافت کرد متوقف شده و سه بایت دریافتی را چاپ می‌کند و دوباره به عملیات خود ادامه می‌دهد.

 

 

Serial.readBytesUntil()

دارای ساختار زیر می‌باشد :

 

lenght : تعداد بایت مورد نظر برای دریافت

character :  کاراکتری که به محض  دیدن آن ، عملیات خواندن را متوقف می‌کند.

buffer :  آرایه‌ای از جنس []char یا []byte

این تابع عمل کردی مشابه تابع readBytes  دارد با ایت تفاوت که  دیتا را از بافر پورت سریال می‌خواند و به محض رسیدن به یک کاراکتر  خاص ( character ) و  یا تعداد تعیین شده‌ی بایت ( length )  عملیات خواندن را متوقف نموده و تعداد بایت دریافت شده قبل از کاراکتر مورد نظر را برمی‌گرداند ( اگر دیتایی موجود نباشد عدد ۰ را برمی‌گرداند )  .

به عنوان مثال در قطعه کد زیر برنامه شروع به خواندن از بافر پورت سریال می‌کند و هنگامی که به کاراکتر  e  رسید و یا هنگامی که تعداد بایت دریافتی به ۸ عدد رسید عملیات خواندن را متوقف می‌کند . و دیتای دریافتی را بر روی سریال مانیتور نرم افزار نمایش می‌دهد.

 

 

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

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

7 دیدگاه ها

  1. سمانه می‌گه:

    تازه بخش اولش اینهمه بوووووود؟
    من دلم میخواد زودتر همشو یاد بگیرم

  2. […] آموزش ارتباط سریال در آردوینو بخش دوم […]

  3. hossein می‌گه:

    if (ch >= ‘0’ && ch <= ‘7’)
    این &gt چیه اشباه ننوشی خود کامپایلرهم ارور میده هاااااا

  4. yaser می‌گه:

    (if (Serial.available() > 0
    (++for (int i = 0 ; i &lt ; = lenght- 1 ; i
    این gt& چه معنی میده؟
    و for دومی هم لطفا توضیح بدین ؟
    اینکه چرا چهارتا ; داره و اینکه i&lt یعنی چی؟
    با تشکر از سایت عالی تون مهندس

پاسخ دهید

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