Menu
CoddyTech

Núm điều chỉnh độ sáng

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

Núm xoay cung cấp cho analogRead() một số từ 0 đến 1023, còn analogWrite() cần giá trị từ 0 đến 255. Hai phạm vi này không khớp nhau, nên hãy chuyển đổi phạm vi này sang phạm vi kia bằng map():

int reading = analogRead(A0);
int brightness = map(reading, 0, 1023, 0, 255);
analogWrite(9, brightness);

Khi vặn núm xuống hết, giá trị là 0 và LED tắt; khi vặn núm lên hết, giá trị là 1023, được chuyển thành 255 và LED sáng hết mức. Mỗi vị trí ở giữa sẽ cho độ sáng ở mức tương ứng.

Ghi trực tiếp giá trị đọc được vào LED sẽ không hoạt động: analogWrite() chỉ nhận giá trị từ 0 đến 255, nên giá trị đọc được như 600 sẽ cho độ sáng không đúng.

challenge icon

Thử thách

Dễ

Núm xoay nối với A0 và LED nối với chân 9. Hãy dùng núm xoay để điều chỉnh độ sáng:

  • đọc giá trị của núm xoay
  • chuyển giá trị đọc được thành khoảng từ 0 đến 255 bằng map()
  • ghi giá trị đó vào LED, rồi đợi 10 ms

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

Tự làm thử

const int knobPin = A0;
const int ledPin = 9;

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

void loop() {
  // Đọc giá trị của núm xoay, ánh xạ sang khoảng từ 0 đến 255 rồi gửi giá trị đó đến đèn LED
}
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