Menu
CoddyTech

Ánh xạ thành phần trăm

Thuộc phần Đầu vào trong hành trình Arduino của Coddy. Bài học 10 trên 22.

Các giá trị đọc được từ 0 đến 1023 không có nhiều ý nghĩa với mọi người. Phần trăm từ 0 đến 100 dễ hiểu hơn. map() chuyển đổi một số từ phạm vi này sang phạm vi khác:

int percent = map(reading, 0, 1023, 0, 100);

Hàm này nhận năm số: giá trị, hai đầu thấp và cao của phạm vi ban đầu, cùng hai đầu thấp và cao của phạm vi mới. 0 trở thành 0, 1023 trở thành 100, còn một giá trị nằm ở một phần tư phạm vi sẽ chuyển thành một phần tư phạm vi mới: 256 trở thành 25.

map() hoạt động với số nguyên và bỏ phần lẻ, điều này phù hợp với giá trị phần trăm.

challenge icon

Thử thách

Dễ

Núm xoay được nối với A0. In ra mức xoay dưới dạng phần trăm:

  • đọc A0
  • chuyển số đo thành giá trị từ 0 đến 100 bằng map()
  • in ra phần trăm, sau đó chờ 100 ms

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

Tự làm thử

void setup() {
  Serial.begin(9600);
}

void loop() {
  int reading = analogRead(A0);
  // chuyển giá trị đọc được thành phần trăm bằng map(), in ra rồi đợi 100 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 vào

Tự luyện tập: Playground Arduino