آردوینو – زمان
آردوینو چهار تابع مختلف برای تغییر در زمان را ارائه می دهد. آن ها عبارت اند از :
- تابع () delay
- تابع () delayMicroseconds
- تابع () millis
- تابع () micros
– تابع () delay :
نحوه کارکرد () delay بسیار ساده است. این یک آرگومانِ عدد صحیح (یا عدد) را می پذیرد. این عدد زمان را نشان می دهد (محاسبه به صورت میلی ثانیه انجام می شود). وقتی که به این تابع می رسیم ، برنامه باید منتظر بماند تا به خط بعدی کد برود. با این حال ، () delay تابع مناسبی برای تاخیر در برنامه نیست ، زیرا به عنوان یک تابع “مسدود کننده” (blocking) شناخته شده است.
فرم دستوری تابع () delay :
delay (ms) ;
که در آن ، ms زمان میلی ثانیه برای تاخیر است (از نوع داده unsigned long).
مثال :
/* Flashing LED * ------------ * Turns on and off a light emitting diode(LED) connected to a digital * pin, in intervals of 2 seconds. * */ int ledPin = 13; // LED connected to digital pin 13 void setup() { pinMode(ledPin, OUTPUT); // sets the digital pin as output } void loop() { digitalWrite(ledPin, HIGH); // sets the LED on delay(1000); // waits for a second digitalWrite(ledPin, LOW); // sets the LED off delay(1000); // waits for a second }
– تابع () delayMicroseconds :
تابع () delayMicroseconds یک عدد صحیح (یا عدد) منفرد را می پذیرد. این عدد زمان را نشان می دهد و در میکرو ثانیه اندازه گیری می شود. هزار میکروثانیه در یک ثانیه وجود دارد و یک میلیون میکرو ثانیه در ثانیه وجود دارد.
در حال حاضر ، بزرگترین مقداری که می تواند تأخیر دقیق ایجاد کند 16383 است. این ممکن است در نسخه های آینده ی آردوینو تغییر کند. برای تأخیر های بیشتر از چند هزار میکروثانیه ، به جای این تابع باید از تابع () delay استفاده کنید.
فرم دستوری تابع () delayMicroseconds :
delayMicroseconds (us) ;
که در آن ، us تعداد میکروثانیه ها برای تاخیر است (از نوع داده unsigned int)
مثال :
/* Flashing LED * ------------ * Turns on and off a light emitting diode(LED) connected to a digital * pin, in intervals of 1 seconds. * */ int ledPin = 13; // LED connected to digital pin 13 void setup() { pinMode(ledPin, OUTPUT); // sets the digital pin as output } void loop() { digitalWrite(ledPin, HIGH); // sets the LED on delayMicroseconds(1000); // waits for a second digitalWrite(ledPin, LOW); // sets the LED off delayMicroseconds(1000); // waits for a second }
– تابع () millis :
در زمانی که برد آردوینو اجرای برنامه فعلی را شروع می کند ، این تابع برای نشان دادن گذر زمان در برنامه بر حسب میلی ثانیه استفاده می شود . این عدد بعد از تقریباً 50 روز سرریز می شود و به صفر برمی گردد.
فرم دستوری تابع () millis :
millis () ;
این تابع از ابتدای برنامه ، زمان را بر حسب میلی ثانیه محاسبه می کند.
مثال :
unsigned long time; void setup() { Serial.begin(9600); } void loop() { Serial.print("Time:"); time = millis(); //نمایش زمان از زمان شروع برنامه Serial.println(time); // یک ثانیه مکث برای نمایش زمان delay(1000); }
– تابع () micros :
در زمانی که برد آردوینو اجرای برنامه فعلی را شروع می کند ، تابع () micros تعداد میکرو ثانیه ها را از زمان شروع برنامه محاسبه می کند. این عدد بعد از تقریباً 70 دقیقه سرریز می شود و به صفر برمی گردد. روی برد های آردوینو با فرکانس 16 مگاهرتز (به عنوان مثال آردوینو Duemilanove و Nano) ، این تابع دارای دقت چهار میکرو ثانیه است (یعنی مقدار محاسبه شده ، همیشه مضربی از چهار است). در برد های آردوینو با فرکانس 8 مگاهرتز (به عنوان مثال آردوینو LilyPad) ، این تابع دارای دقت 8 میکرو ثانیه است.
فرم دستوری تابع () micros :
micros () ;
این عملکرد از زمان شروع برنامه تعداد میکرو ثانیه ها (داده از نوع unsigned long) را می شمارد.
مثال :
unsigned long time; void setup() { Serial.begin(9600); } void loop() { Serial.print("Time:"); time = micros(); //prints time since program started Serial.println(time); // wait a second so as not to send massive amounts of data delay(1000); }
منبع : https://b2n.ir/908880