Функція map(value, fromLow, fromHigh, toLow, toHigh)
map(value, fromLow, fromHigh, toLow, toHigh)
Відображає значення з одного діапазону в інший. Тобто значення з fromLow відображатиметься в toLow, а значення з fromHigh в toHigh, проміжні значення в проміжні значення тощо.
Не обмежує значення діапазоном, тому що значення поза діапазоном іноді навмисні та корисні. Функція constrain() може бути використана до чи після цієї функції, якщо обмеження діапазонів є бажаним.
Зауважте, що “нижні межі” будь-якого діапазону можуть бути більшими чи меншими за “верхні межі”, тому функція map() може використовуватися, щоб перевернути діапазон чисел, наприклад
y = map(x, 1, 50, 50, 1);Ця функція також обробляє від'ємні числа, так що цей приклад теж дійсний і працює добре:
y = map(x, 1, 50, 50, -100);Функція map() використовує цілочисельні обчислення, тому не створюватиме дробів, коли може здатися, що вона повинна це зробити. Дробові залишки відкидаються, а не округлюються чи усереднюються.
Параметри
значення: число для відображення
fromLow: нижня межа поточного діапазону значення
fromHigh: верхня межа поточного діапазону значення
toLow: нижня межа цільового діапазону значення
toHigh: верхня межа цільового діапазону значення
Повертає
Відображене значення
Приклад
/* Відобразити на аналоговому значення 8 бітів (від 0 до 255) */
void setup() {}
void loop()
{
int val = analogRead(0);
val = map(val, 0, 1023, 0, 255);
analogWrite(9, val);
}Додаток
Для прихильників математики нижче вся функція.
long map(long x, long in_min, long in_max, long out_min, long out_max)
{
return (x - in_min) * (out_max - out_min) / (in_max - in_min) + out_min;
}Повернутись до головної

Коментарі 0