Menu
CoddyTech

Biểu đồ thanh bằng núm xoay

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

Một hàng đèn LED có thể hiển thị một con số dưới dạng thanh: càng nhiều đèn LED sáng thì con số càng lớn. Ở đây, con số được lấy từ núm xoay.

Trước tiên, chuyển giá trị đọc được thành số đèn LED cần sáng, từ 0 đến 5:

int count = map(analogRead(A0), 0, 1023, 0, 5);

Sau đó, duyệt qua từng đèn LED bằng vòng lặp for và quyết định cho từng đèn. Các đèn LED trước vị trí count sẽ sáng, còn lại sẽ tắt:

for (int i = 0; i < 5; i++) {
  if (i < count) {
    digitalWrite(ledPins[i], HIGH);
  } else {
    digitalWrite(ledPins[i], LOW);
  }
}

else rất quan trọng: khi bạn vặn núm xoay xuống, câu lệnh này sẽ tắt các đèn LED không còn nằm trong thanh nữa.

challenge icon

Thử thách

Trung bình

Núm xoay nối với A0 và các đèn LED nằm trong ledPins. Hãy tạo biểu đồ cột:

  • chuyển số đọc thành số lượng từ 0 đến 5 bằng map()
  • bật số đèn LED tương ứng, bắt đầu từ đèn đầu tiên trong mảng, rồi tắt các đèn còn lại
  • chờ 10 ms, rồi lặp lại

Nhấn Chạy và xoay núm, rồi nhấn Kiểm tra.

Tự làm thử

const int knobPin = A0;
int ledPins[] = {2, 3, 4, 5, 6};

void setup() {
  for (int i = 0; i < 5; i++) {
    pinMode(ledPins[i], OUTPUT);
  }
}

void loop() {
  // chuyển giá trị đọc được thành số lượng từ 0 đến 5
  // bật số đèn LED đầu tiên tương ứng với số lượng đó và tắt các đèn còn lại
}
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