آردوینوآموزش آردوینو

آموزش گام به گام آردوینو قسمت پنجم: ارتباط سریال و سریال مانیتور

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

ارتباط سریال

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

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

توابع ارتباط سریال

Serial.begin

 این دستور در void setup فراخوانی میشود و سرعت انتقال المان ها را مشخص میکند.این مقدار باید حتما هم در فرستنده و هم در گیرنده یکسان باشند. در غیر این صورت ارتباط سریال غیر ممکن خواهد بود. معمولا این مقدار را برای کمتر شدن خطا روی ۹۶۰۰ و یا مقادیری کمتر از آن قرار میدهند. گزینه های مجاز شما برای سرعت در پنجره baudrate نوشته شده است.

Serial.read

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

Serial.readString

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

نکته: رشته ها درون علامت دبل کوتیشن” ” و کاراکتر ها درون ‘ ‘ قرار میگیرند. در آموزش های پیش رو با رشته ها و کاراکتر ها در آردوینو آشنا خواهیم شد.

Serial.available

این تابع تشخیص میدهد که آیا در بافر ورودی کارکتری قرار دارد یا خیر، در مواقعی که محتوایی برای خواندن وجود ندارد مقدار آن ۱- است. در واقع تشخیص میدهد که ارتباط سریال برقرار شده و کاراکتری دریافت شده است.

Serial.print

این تابع متن را پشت سر هم نشان میدهد.

Serial.println

این تابع متنی را در خروجی ارتباط سریال (سریال مانیتور) نمایش میدهد و پس از پایان متن به خط بعد میرود.

Serial.end

ارتباط سریال در آردوینو از طریق پروتکل UART انجام میشود. این پروتکل نیز از طریق دو سیم TX و RX ارتباط برقرار میکند. با این روش آردوینو میتواند به تمامی میکرو کنترلر ها یا آردوینو ها با باد ریت یکسان متصل شود. پایه (TX(Transmiter و (RX(Reciver در برد های آردوینو، پایه های صفر و یک میباشند. که در داخل برد به میکرو کنترلر دیگری متصل شده اند. این میکرو کنترلر اطلاعاتی را که از تراشه اصلی دریافت میکند را از طریق USB به کامپیوتر شما منتقل میکند. سپس شما میتوانید نتایج را در سریال مانیتور مشاهده کنید. پس زمانی که شما در حال ارتباط با کامپیوتر هستید، پایه های صفر و یک خود را از دست خواهید داد. این تابع نیز با خاتمه دادن به ارتباط سریال یا همان UART به شما این امکان را میدهد تا از این دوپایه استفاده کنید.

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


//_-_-_-_-_-_-_-_-_-_-_-_www.datosrobo.com
//ایجاد متغیر های سراسری
long number1; //عدد اول برای محاسبه
long number2; //عدد دوم برای محاسبه
char operation; //بررسی عملگر(ضرب تقسیم و...)
long result; //جواب عملیات

void setup() {
  Serial.begin(9600); // تنظیم بادریت
  Serial.println("lotfan yek mohasebe vared konid"); 
  Serial.println("baraye mesal : 2+3");
  Serial.println();//استفاده ازین تابع بدون مقدار ورودی، یک خط پرش در سریال مانیتور ایجاد میکند.
}

void loop() {
  while(Serial.available() > ۰) {
   //چک کردن بودن و یا نبودن دیتا
    
    number1 = Serial.parseInt();
   //این عدد اولین عدد برای انجام عملیات است
   //زمانی که شما عدد را به صورت متن وارد میکنید،
   //تابع ParseInt رشته ورودی را به عدد تبدیل میکندو در متغیر عدداول قرار میدهد.
        
    operation = Serial.read(); //این تابع عملیات را از طریق علامت + یا - تشخیص میدهد.
    
    number2 = Serial.parseInt(); 
    //این متغیر عدد دوم را درون خود ذخیره میکند.
    resolucao(); //تابع برای بررسی و تنیجه عملیات.
 
    Serial.println("Natihe mishavad  = ");
    Serial.println(result);
   
  }
}

void resolucao() { 
  
  switch (operation) {//دستور switch یک مورد از چند حالت مطلوب را بررسی و انجام میدهد.
      
    case '+' ://این بخش بررسی میکند که آیا کارکتر ورودی + است 
    result = number1 + number2; //در این بخش حاصل انجام عملیات در متغیر نتیجه ریخته میشود
    
    break; //پس از انجام عملیات از حلقه خارج میشود
    
    case '-' : //این بخش بررسی میکند که آیا کارکتر ورودی - است
    result = number1 - number2; //در این بخش حاصل انجام عملیات در متغیر نتیجه ریخته میشود
   
    break; //پس از انجام عملیات از حلقه خارج میشود
    
    case '*' : //اینبخش بررسی میکند که آیا کارکتر ورودی ضرب یا* است
    result = number1 * number2; //در این بخش حاصل انجام عملیات در متغیر نتیجه ریخته میشود
   
    break; //پس از انجام عملیات از حلقه خارج میشود
    
    case '/' : //این بخش بررسی میکند که آیا کارکتر ورودی تقسیم یا / است
    result = number1 / number2; //در این بخش حاصل انجام عملیات در متغیر نتیجه ریخته میشود
    
    break; //پس از انجام عملیات از حلقه خارج میشود
   
  } 
 }

این کد مربوط به ماشین حساب با آردوینو است.شما میتوانید دو عدد را با هم جمع، تفریق، ضرب و تقسیم کنید. بادریت را روی ۹۶۰۰ تنظیم کنید و اولین پروژه سریال مانیتور خود را انجام دهید.
همچنین میتوانید از مطالب زیر دیدن کنید:
arduino serial comminication
آدافروت سریال مانیتور

برچسب ها
نمایش بیشتر

پاسخی بگذارید

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

دکمه بازگشت به بالا
بستن