delay()

Giới thiệu

Hàm delay() trong Arduino là một hàm được sử dụng để tạm dừng thực thi của chương trình trong một khoảng thời gian cố định. Nó tạo ra một độ trễ (delay) giữa các lệnh để điều khiển thời gian thực hiện của chương trình.

Cú pháp

delay(ms);

Thông số

ms: là thời gian đơn vị tính bằng mili giây (ms) mà chương trình sẽ tạm dừng. Ví dụ, nếu bạn gọi hàm delay(1000), chương trình sẽ bị tạm dừng trong 1 giây (1000ms).

Trả về

Không

Code ví dụ

Dưới đây là một đoạn code ví dụ sử dụng hàm delay() trong Arduino để tắt và bật đèn LED nhấp nháy đơn giản:

const int ledPin = 13; // Chân điều khiển LED

void setup() {
  pinMode(ledPin, OUTPUT); // Đặt chân điều khiển LED là OUTPUT
}

void loop() {
  digitalWrite(ledPin, HIGH); // Bật đèn LED
  delay(1000); // Chờ 1 giây

  digitalWrite(ledPin, LOW); // Tắt đèn LED
  delay(1000); // Chờ 1 giây
}

Trong ví dụ trên, chúng ta sử dụng chân 13 làm chân điều khiển cho đèn LED. Trong hàm setup(), chúng ta đặt chân 13 là OUTPUT để điều khiển đèn LED. Trong hàm loop(), chúng ta sử dụng hàm digitalWrite() để bật và tắt đèn LED, sau đó sử dụng hàm delay() để tạo ra độ trễ 1 giây giữa các lần bật và tắt đèn LED.

Lưu ý và cảnh báo

Trong quá trình chờ, Arduino không thực hiện bất kỳ hoạt động nào khác và đơn giản là đếm số mili giây. Sau khi kết thúc thời gian chờ, chương trình tiếp tục thực thi từ lệnh tiếp theo sau hàm delay().

Hàm delay() thường được sử dụng để tạo ra các độ trễ, đợi giữa các lần đọc cảm biến, thực hiện các hành động theo khoảng thời gian cụ thể, và làm cho chương trình chạy ở tốc độ được điều chỉnh. Tuy nhiên, cần cẩn trọng khi sử dụng hàm delay() trong các ứng dụng yêu cầu phản hồi nhanh hoặc cần thực hiện nhiều tác vụ đồng thời, vì nó có thể làm chương trình bị treo (unresponsive) trong thời gian chờ. Trong các trường hợp như vậy, người lập trình thường sử dụng hàm ngắn không chặn (non-blocking) hoặc cơ chế hẹn giờ (timers) để thay thế hàm delay().

Leave a Reply

Your email address will not be published. Required fields are marked *