Trong bài viết này Điện Tử Tương Lai sẽ chia sẻ hàm map trong Arduino là gì, cú pháp và những lưu ý.
Mô tả map()
Ánh xạ lại một số từ phạm vi này sang phạm vi khác. Nghĩa là, một giá trị của fromLow sẽ được ánh xạ tới toLow, một giá trị của fromHigh đến toHigh, giá trị ở giữa đến giá trị ở giữa, ....
Không giới hạn các giá trị trong phạm vi, bởi vì các giá trị ngoài phạm vi đôi khi có mục đích và hữu ích. Hàm constraintin () có thể được sử dụng trước hoặc sau hàm này, nếu bạn muốn giới hạn cho các phạm vi.
Lưu ý rằng "giới hạn dưới" của một trong hai phạm vi có thể lớn hơn hoặc nhỏ hơn "giới hạn trên", vì vậy, hàm map() có thể được sử dụng để đảo ngược một phạm vi số, chẳng hạn
y = map(x, 1, 50, 50, 1);
Hàm cũng xử lý tốt các số âm, do đó, ví dụ này
y = map(x, 1, 50, 50, -100);
cũng hợp lệ và hoạt động tốt.
Hàm map() sử dụng phép toán số nguyên nên sẽ không tạo ra phân số. Phần dư của phân số bị cắt bớt và không được làm tròn hoặc tính trung bình.
Cú pháp
map(value, fromLow, fromHigh, toLow, toHigh)
Thông số
value: số để ánh xạ.
fromLow: giới hạn dưới của phạm vi hiện tại của giá trị.
fromHigh: giới hạn trên của phạm vi hiện tại của giá trị.
toLow: giới hạn dưới của phạm vi mục tiêu của giá trị.
toHigh: giới hạn trên của phạm vi mục tiêu của giá trị.
Return
Giá trị được ánh xạ.
Code mẫu
Phụ lục
Nếu nghiêng về mặt toán học, đây là toàn bộ hàm
Lưu ý
Như đã đề cập trước đó, hàm map() sử dụng phép toán số nguyên. Vì vậy, các phân số có thể bị chặn do điều này. Ví dụ: các phân số như 3/2, 4/3, 5/4 đều sẽ được trả về là 1 từ hàm map() , mặc dù các giá trị thực tế khác nhau. Vì vậy, nếu dự án của bạn yêu cầu tính toán chính xác (ví dụ: điện áp chính xác đến 3 chữ số thập phân), vui lòng xem xét tránh map() và tự thực hiện các tính toán theo cách thủ công trong code của bạn.
Hotline: 0979 466 469