millis() ใน arduino
แบบที่ 1
1 2 3 4 5 6 7 8 9 10 11 12 13 |
<xmp>unsigned long period = 1000; //ระยะเวลาที่ต้องการรอ unsigned long last_time = 0; //ประกาศตัวแปรเป็น global เพื่อเก็บค่าไว้ไม่ให้ reset จากการวนloop void setup() { Serial.begin(115200); } void loop() { if( millis() - last_time > period) { last_time = millis(); //เซฟเวลาปัจจุบันไว้เพื่อรอจนกว่า millis() จะมากกว่าตัวมันเท่า period Serial.println("Hello arduinona!"); } }</xmp> |
ขอบคุณ: https://www.modulemore.com/article/3/%E0%B8%A5%E0%B8%94%E0%B8%81%E0%B8%B2%E0%B8%A3%E0%B9%83%E0%B8%8A%E0%B9%89-delay-%E0%B8%AB%E0%B8%B1%E0%B8%99%E0%B8%A1%E0%B8%B2%E0%B9%83%E0%B8%8A%E0%B9%89-millis-%E0%B8%81%E0%B8%B1%E0%B8%99%E0%B8%94%E0%B8%B5%E0%B8%81%E0%B8%A7%E0%B9%88%E0%B8%B2 แนวที่ 2
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
<xmp>int period = 1000; unsigned long time_now = 0; void setup() { Serial.begin(115200); } void loop() { time_now = millis(); Serial.println(“Hello”); while(millis() < time_now + period){ //wait approx. [period] ms } }</xmp> |