เขียนโปรแกรม Arduino ด้วยภาษาซี ตัวอย่างที่ 4
🕒 ใช้ millis() แทน delay() เพื่อกระพริบไฟ LED
Arduino มีฟังก์ชันชื่อ millis()
ซึ่งจะส่งค่ามิลลิวินาทีที่ผ่านไปนับตั้งแต่เริ่มทำงานของบอร์ด เราสามารถใช้มันเพื่อจับเวลาโดยไม่ต้องหยุดโค้ดด้วย delay()
📄 โค้ดตัวอย่าง:
unsigned long previousMillis = 0;
const long interval = 1000; // เวลาระยะห่าง 1 วินาที
bool ledState = LOW;
void setup() {
pinMode(13, OUTPUT);
}
void loop() {
unsigned long currentMillis = millis();
if (currentMillis - previousMillis >= interval) {
previousMillis = currentMillis;
ledState = !ledState;
digitalWrite(13, ledState);
}
}
🧠 อธิบาย:
millis()
ใช้ตรวจจับเวลาโดยไม่หยุดลูป- ควบคุมให้ไฟ LED บนบอร์ด Pin 13 กระพริบทุก 1 วินาที
- ไม่ใช้
delay()
ทำให้สามารถเขียนฟังก์ชันอื่นๆ ใน loop ได้พร้อมกัน