Menu
CoddyTech

Làm đèn LED sáng dần

Thuộc phần Đầu ra trong hành trình Arduino của Coddy. Bài học 3 trên 24.

Một biến có thể lưu độ sáng. Mỗi lần loop() chạy, hãy ghi giá trị đó vào đèn LED, tăng thêm một chút rồi chờ một lát. Đèn LED sáng dần lên theo từng bước:

int brightness = 0;

void loop() {
  analogWrite(9, brightness);
  brightness = brightness + 5;
  if (brightness > 255) {
    brightness = 0;
  }
  delay(30);
}

Độ sáng được khai báo ở đầu sketch, giống như bộ đếm số lần nhấn, nên nó giữ nguyên giá trị từ lần chạy loop() này sang lần chạy tiếp theo. Nếu khai báo bên trong loop(), giá trị sẽ trở về 0 mỗi lần.

255 là giá trị lớn nhất mà analogWrite() nhận, nên if bắt đầu làm độ sáng tăng dần lại từ 0 khi độ sáng vượt quá giá trị đó.

Bước tăng và thời gian chờ quyết định tốc độ: khoảng 50 bước, mỗi bước chờ 30 ms, sẽ mất một giây rưỡi.

challenge icon

Thử thách

Dễ

Làm cho đèn LED ở chân 9 sáng dần lên, lặp đi lặp lại:

  • lưu độ sáng vào một biến được tạo phía trên setup(), bắt đầu từ 0
  • trong loop(), ghi giá trị đó bằng analogWrite(), tăng thêm 5 rồi chờ 30 ms
  • khi giá trị vượt quá 255, đặt lại về 0

Nhấn Chạy và quan sát đèn LED, sau đó nhấn Kiểm tra.

Tự làm thử

const int ledPin = 9;
// Tạo biến (variable) độ sáng ở đây, bắt đầu từ 0

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

void loop() {
  // Ghi giá trị độ sáng, tăng thêm 5, bắt đầu lại sau 255, rồi chờ 30 ms
}
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 Đầu ra

Tự luyện tập: Playground Arduino