Á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.
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
}
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
2Đầu vào analog
Đọc giá trị núm xoayChuyển giá trị núm xoay thành vônÁnh xạ thành phần trămGiữ giá trị trong phạm viNgưỡng núm xoayĐèn ngủ tự độngChân công tắc cảm biến ánh sáng3Nhập liệu qua cổng nối tiếp
Đọc một ký tự qua cổng nối tiếpLệnh bằng từĐiều chỉnh tốc độ nhấp nháy qua cổng nối tiếpNhấp nháy theo lệnhTự luyện tập: Playground Arduino