เขียนโปรแกรม 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 ได้พร้อมกัน



โพสต์ยอดนิยมจากบล็อกนี้

เฟต(FET)

คลาสต่างๆของวงจรขยายเสียง

การเปลี่ยนฐานของระบบเลข