Menu
CoddyTech

Một nhịp nháy nhanh dần

Thuộc phần Mạch điện đầu tiên trong hành trình Arduino của Coddy. Bài học 17 trên 22.

delay(waitTime) chờ khoảng thời gian mà waitTime đang lưu tại thời điểm đó. Thay đổi biến này khi sketch đang chạy, nhịp nhấp nháy cũng sẽ thay đổi theo.

waitTime = waitTime - 100;   // Lần nhấp nháy tiếp theo ngắn hơn 100 ms

Đặt dòng lệnh đó ở cuối loop(), mỗi lần nhấp nháy sẽ ngắn hơn lần trước.

Quan sát điều gì xảy ra khi sketch chạy một lúc. Thời gian chờ giảm xuống 0, rồi xuống dưới 0. delay() không thể chờ trong khoảng thời gian âm: hàm này đọc -200 thành một con số khổng lồ, khoảng 49 ngày, khiến đèn LED trông như bị treo. Sketch phải tự quyết định khi nào dừng giảm thời gian chờ, và đó là nội dung của bài học tiếp theo.

challenge icon

Thử thách

Dễ

Làm cho đèn LED ở chân 13 nhấp nháy ngày càng nhanh:

  • ở đầu chương trình, tạo int waitTime = 1000;
  • trong loop(), nhấp nháy với delay(waitTime) cho cả hai lần chờ
  • ở cuối loop(), giảm waitTime đi 200

Nhấn Chạy và theo dõi cho đến khi chương trình bị treo, sau đó nhấn Kiểm tra.

Tự làm thử

// Tạo biến waitTime ở đây

void setup() {
  pinMode(13, OUTPUT);
}

void loop() {
  digitalWrite(13, HIGH);
  delay(1000);
  digitalWrite(13, LOW);
  delay(1000);
  // Giảm giá trị của waitTime
}
quiz iconTự kiểm tra

Bài học này có một bài trắc nghiệm ngắn. Bắt đầu bài học để trả lời và theo dõi tiến độ.

Tất cả bài học trong Mạch điện đầu tiên

Tự luyện tập: Playground Arduino