توابع ارتباط سریال در آردوینو (۱)
در این پست به آموزش ارتباط سریال در آردوینو میپردازیم و توابعی که برای ارتباط سریال مورد استفاده قرار میگیرند را بررسی میکنیم. کار با ارتباط سریال در آردوینو به دلیل وجود توابع زیاد بسیار آسان است.
به دلیل اینکه توابع این بخش زیاد میباشند آموزش مربوط به این قسمت در چند بخش ارائه میشود.
1.تابع ()begin
فرم نوشتاری تابع به شکل زیر است
Serial.begin(x);
//………………./
با نوشتن این تابع در برنامه در واقع ارتباط سریال را فعال میکنید که در این صورت پایه های Rx و Tx عملکرد عادی خود را از دست داده و به عنوان پایه های فرستنده و گیرنده در ارتباط سریال عمل میکنند.
در آرگومان تابع به جای x میبایست عدد baud rate را مشخص کنیم. (baud rate چیست؟؟ آموزش ارتباط سریال)
2.تابع ()available
شکل نوشتاری این تابع به صورت زیر است
Serial.available();
//………………….//
تابع مذکور تعداد بایت های دریافتی (کاراکترها) را از پورت سریال میخواند. با استفاده از این تابع میتوانیم تشخیص دهیم که چه زمانی داده به پورت سریال رسیده است و یا اینکه اگر بخواهیم دستوراتی پس از اینکه داده به پورت سریال رسید اجرا شوند میتوانیم از این تابع استفاده کنیم.
به مثال زیر توجه کنید.
void setup() { Serial.begin(9600); } void loop() { if (Serial.available() > 0) { } }
به طور مثال فرض کنید که میخواهیم در صورت دریافت دیتا بر روی پورت سریال یک LED دو بار چشمک بزند در این صورت دستورات مربوطه را باید در داخل if قرار دهیم.
3.تابع ()end
این تابع ارتباط سریال را غیر فعال میکند. با غیرفعال کردن ارتباط سریال میتوان از Rx و Tx به عنوان ورودی و خروجی استفاده کرد.
این تابع به این صورت نوشته میشود.
Serial.end(); //........................//
4.تابع ()read
این تابع داده های ورودی را میخواند. به کمک این تابع میتوان داده های ورودی را در یک متغیر دیگر ذخیره کنیم.
نحوه نوشتن تابع به صورت زیر است.
Serial.read(); //........................//
مثال:
char data; void setup() { Serial.begin(9600); } void loop() { data=Serial.read(); }
در مثال بالا داده های ورودی با تایع read خوانده میشود و سپس در متغیر data ذخیره میشود. با این کار میتوان داده های ورودی را در قسمت های دیگر برنامه به کار یرد (نمایش، پردازش و …)
5.تابع ()peek
این دستور همانند تابع read عمل میکند با این تفاوت که تایع read پس از خواندن دیتا آن را از بافر پاک میکند اما تابع peek پس از خواندن دیتا آنرا دست نخورده در بافر باقی میگذارد.
شکل نوشتاری تابع
Serial.peek(); //..................//
به پایان قسمت اول از آموزش این بخش رسیدیم در ادامه به معرفی توابع بیشتری خواهیم پرداخت که کار با پروتکل سریال در آردوینو را لذت بخش تر خواهد کرد. همراه ما باشید…