پروژه های آردوینو

ارتباط آردوینو با کامپیوتر

ارتباط آردوینو با کامپیوتر

ارتباط آردوینو با کامپیوتر می تواند یک راه حل مناسب برای پردازش اطلاعات با برنامه های کامپیوتر باشد. به عنوان مثال تحلیل آماری داده های آردوینو با استفاده از برنامه های نوشته شده با زبان های سطح بالایی مانند c#‌و … می تواند کمک فراوانی به شناخت و تحلیل یک سیستم کند . اما این ارتباط چگونه میسر می شود?

ارتباط آردوینو با کامپیوتر

ارتباط سریال UART

یک کامپیوتر از طریق راه هایی مانند پورت USB ، سریال UART ، ارتباط WiFi‌و … می تواند با محیط بیرون از خود در ارتباط و تعامل باشد. پورت ارتباط سریال UART از قدیمی ترین و قابل اعتماد ترین راه های ارتباط سریال در بین دستگاه ها و قطعات الکترونیک محسوب می شود . سادگی و راحتی استفاده از این پروتکل ارتباطی باعث شده که هنوز هم در بسیاری از دستگاه های صنعتی مورد استفاده قرار گیرد. ارتباط سریال UART تقریبا در همه میکروکنترلرها وجود دارد .بردهای آردوینو نیز به خوبی این ارتباط را پشتیبانی می کنند.بسیاری از بردهای آردوینو مانند UNO ، NANO و… از این ارتباط برای پروگرام کردن و ارتباط با کامپیوتر و دیگر قطعات و ماژول ها استفاده می کنند . شاید از خودتان بپرسید که بردهای آردوینو به پورت USB کامپیوتر وصل می شوند ، پس ارتباط سریال دیگر چیست؟ در پاسخ به این سوال باید بگ.یم که این ارتباط همان ارتباط سریال است با این تفاوت که برای راحتی استفاده از یک آیسی مبدل سریال به USB استفاده می شود . در واقع از آنجا که پورت USB تقریبا در همه کامپیوتر ها و لپتاپ ها وجود دارد و پورت سریال در بسیاری از لپتاپ ها دیگر پشتیبانی نمی شود ، سازندگان آردوینو به این شکل با استفاده از این آیسی واسط این مشکل را برطرف نموده اند. در واقع این واسط ، اطلاعات سریال را از آیسی گرفته و از طریق پورت USB به کامپیوتر می فرستد و بالعکس.

انتقال اطلاعات از آردوینو به کامپیوتر

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

int counter=0;
void setup() {
Serial.begin(9600);
}

void loop() {
  counter=counter+1;
  Serial.println(counter);
  delay(1000);
}

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

بعد از بارگذاری برنامه از منوی tool->serial monitor باز کنید و نتیجه را مشاهده کنید.


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

serial.begin(9600)

تابع begin() شروع کننده ارتباط با پارامتر ورودی باودریت یا سرعت انتقال اطلاعات است. سرعت های رایج در ارتباط سریال عبارت اند از: 2400,9600,19200,115200 و .. است .


Serial.print(int-float-str)

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

  • Serial.print(78) خروجی = “78”

  • Serial.print(1.23456) خروجی =”1.23″

  • Serial.print('N') خروجی =”N”

  • Serial.print("Hello world.") خروجی =”Hello world.”

  • Serial.print(78, BIN) خروجی =”1001110″

  • Serial.print(78, OCT) خروجی =”116″

  • Serial.print(78, DEC) خروجی =”78″

  • Serial.print(78, HEX) خروجی =”4E”

  • Serial.print(1.23456, 0) خروجی =”1″

  • Serial.print(1.23456, 2) خروجی =”1.23″

  • Serial.print(1.23456, 4) خروجی =”1.2346″


Serial.println(int-float-str)

این تابع نیز مانند print است با این تفاوت که برای نمایش از خط جدید شروع می کند. در واقع یک اینتر به هر عبارت اضافه می کند.

-خواندن از پورت سریال در آردوینو :

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

()Serial.availabl

این تابع وجود دیتا در پورت سریال راچک می کند.


()Serial.read

این تابع مقدار دریافتی در پورت سریال را می خواند.


مثال:

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

int incomingByte = 0; // for incoming serial data

void setup() {
  Serial.begin(9600); // opens serial port, sets data rate to 9600 bps
}

void loop() {
  // send data only when you receive data:
  if (Serial.available() > 0) {
    // read the incoming byte:
    incomingByte = Serial.read();

    // say what you got:
    Serial.print("I received: ");
    Serial.println(incomingByte, DEC);
  }
}

برنامه فوق داده های دریافتی از کامپیوتر را دوباره به کامپیوتر باز می گرداند. برای تست این برنامه نیز از منوی tools->serial monitor می توانید اطلاعاتی به آردوینو بفرستید و نتیجه را ببینید.

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

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

8 + 17 =