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

آموزش آردوینو بخش دهم – استفاده از توابع زمانی در برنامه نویسی آردوینو

arduino-basic-tutorial-part-ten-time-function--digispark
نوشته شده توسط پریسا پوربلورچیان

اولین پروژه هایی که برای شروع کار با آردوینو آغاز می‌کنید، از ساده ترین دستورات آغاز می‌شود. مانند روشن و خاموش کردن یک ال ای دی، ارسال و دریافت یک پیام در سریال مانتیور و یا اجرای یک چراغ چشمک زن با آردوینو; در همان برنامه نویسی از توابع تاخیر در برنامه برای ایجاد زمانبندی بین ورودی و خروجی ها و فعال و غیرفعال شدن آن ها استفاده می‌کنیم. در بخش دهم توابع زمانی مورد نیاز برای کدنویسی در آردوینو را فراخواهیم گرفت. توابع مهمی مانند Delay, delayMicrosecond. micros, millis که تاخیر زمانی در برنامه نویسی و اجرای برنامه را ایفا می‌کنند. در ادامه با مرجع تخصصی آردوینو، به زیان فارسی دیجی اسپارک همراه باشید.

 


تابع زمانی ()delay


تابع زمانی delay برنامه را بر حسب یک بازه ی زمانی ( میلی ثانیه) متوقف می‌کند. استفاده از Delay بسیار ساده است و بایستی مدت زمان تاخیر در برنامه را بر حسب میلی ثانیه در برنامه نویسی آردوینو مشخص کنید.

 

کاربرد Delay

  •  خاموش و روشن شدن ال ای دی ها در طی یک بازه ی زمانی
  • کنترل سرو موتور و چرخش زاویه

 

 روش فراخوانی 

delay(ms)

به جای ms عددی بر واحد میلی ثانیه نوشته می‌شود.

 

نمونه کد آردوینو تست delay

 

int ledPin = 13;   // ال ای دی به پایه شماره ۱۳ دیجیتال آردوینو وصل شده و با یک متغیر به پایه شماره ۱۳ نسبت داده شده است

void setup() {
  pinMode(ledPin, OUTPUT);    // تعریف ال ای دی به عنوان خروجی
}

void loop() {
  digitalWrite(ledPin, HIGH); // فرمان روشن شدن ال ای دی 
  delay(1000);                // برای یک ثانیه توقف ایجاد میشود
  digitalWrite(ledPin, LOW);  // فرمان خاموش شدن ال ای دی 
  delay(1000);                //برای یک ثانیه توقف ایجاد میشود.
}

 

تابع زمانی ()delay در برنامه نویسی آردوینو - دیجی اسپارک

 

 

نمونه عملکرد تابع زمانی ()delay در برنامه نویس آردوینو

 


تابع زمانی ()Delaymicroseconds


تابع زمانی delaymicroseconds برنامه را بر حسب یک بازه ی زمانی ( میکروثانیه) متوقف می‌کند. از این تابع برای ایجاد تاخیر در برنامه بر حسب میکروثانیه استفاده می‌شود.

روش فراخوانی 

delayMicroseconds(us)

به جای us عددی بر واحد میکرو ثانیه نوشته می‌شود.

 

نمونه کد آردوینو delaymicroseconds

 

int outPin = 13;               // انتخاب یک پایه برای دیجیتال و نسبت دادن به یک متغیر

void setup() {
  pinMode(outPin, OUTPUT);    // تعریف پایه بر حسب خروجی
}

void loop() {
  digitalWrite(outPin, HIGH); // فعال شدن پایه خروجی
  delayMicroseconds(50);      // توقف به مدت ۵۰ میکروثانیه
  digitalWrite(outPin, LOW);  // غیرفعال شدن پایه خروجی
  delayMicroseconds(50);      // توقف به مدت ۵۰ میکروثانیه
}

 

تابع زمانی ()Delaymicroseconds در برنامه نویسی آردوینو - دیجی اسپارک

 

تابع زمانی ()Delaymicroseconds در عملکرد آردوینو - دیجی اسپارک

 


تابع زمانی ()micros


تابع micros یک عدد بر واحد میکروثانیه را تا زمانیکه برنامه در حال اجرا بر روی آردوینو است، برمیگرداند. این عدد پس از ۷۰ دقیقه به صفر میرسد.تابع micros() در آردوینو برای خواندن مقدار زمان به واحد میکروثانیه (microseconds) از زمانی که آردوینو روشن شده یا بازنشانی شده است، استفاده می‌شود. این تابع به شما امکان می‌دهد تا زمان گذشته از زمان روشن شدن یا بازنشانی آردوینو را به دقت میکروثانیه مشاهده کنید.در این مثال، ما از micros() برای اندازه‌گیری زمان گذشته از زمانی که آردوینو روشن شده استفاده کرده‌ایم و این زمان را به واحد میکروثانیه روی سریال مانیتور نمایش می‌دهیم. توجه داشته باشید که مقدار خروجی micros() به صورت unsigned long باشد، زیرا ممکن است زمان زیادی طول بکشد تا این مقدار به حداکثر مقدار خود برسد و منفی نشود.

time = micros()

 

نمونه کد آردوینو تست micros

 

unsigned long time; 

void setup() {
  Serial.begin(9600);
}
void loop() {
  Serial.print("Time: ");
  time = micros();

  Serial.println(time); //از زمانی که برنامه شروع به اجرا شدن میکند،زمان را نمایش میدهد.
  delay(1000);          // تاخیر به مدت یک ثانیه
}

 

تابع زمانی ()micros در برنامه نویسی آردوینو - دیجی اسپارک

 

خروجی سریال ماینتور تابع زمانی ()micros آردوینو - دیجی اسپارک

 


تابع زمانی ()millis


تابع millis زمان شروع برنامه را مشخص می‌کند. این زمان بر حسب میکروثانیه است. تابع millis() در آردوینو برای خواندن مقدار زمان به واحد میلی‌ثانیه (milliseconds) از زمانی که آردوینو روشن شده یا بازنشانی شده است، استفاده می‌شود. این تابع به شما امکان می‌دهد تا زمان گذشته از زمان روشن شدن یا بازنشانی آردوینو را به دقت میلی‌ثانیه مشاهده کنید.در این مثال، ما از millis() برای اندازه‌گیری زمان گذشته از زمانی که آردوینو روشن شده استفاده کرده‌ایم و این زمان را به واحد میلی‌ثانیه روی سریال مانیتور نمایش می‌دهیم. توجه داشته باشید که مقدار خروجی millis() به صورت unsigned long باشد، زیرا ممکن است زمان زیادی طول بکشد تا این مقدار به حداکثر مقدار خود برسد و منفی نشود.

time = millis()

 

نمونه کد آردوینو تست millis

 

unsigned long myTime;

void setup() {
  Serial.begin(9600);
}
void loop() {
  Serial.print("Time: ");
  myTime = millis();

  Serial.println(myTime); // نمایش زمان پس از اجرا شدن برنامه
  delay(1000);          // توقف به مدت ۱ ثانیه
}

 

تابع زمانی ()millis در برنامه نویسی آردوینو - دیجی اسپارک

 

خروجی سریال مانیتور آردوینو تابع زمانی ()millis - دیجی اسپارک

 


جمع بندی لیدی پای


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

 

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

پریسا پوربلورچیان

تولید کننده محتوا / کارشناس IOT

زندگی یعنی پژوهش و فهمیدن چیزی جدید

تلاشم بر این است تجربیاتم در زمینه IOT‌ را به بهترین شکل با شما در میان بگذارم.

تبادل نظر و رفع عیب با ثبت دیدگاه

۲۶ دیدگاه