Arduino:Справочник языка Arduino/Функции/Математические функции/map(): различия между версиями

Материал из Онлайн справочника
Перейти к навигацииПерейти к поиску
Нет описания правки
Нет описания правки
 
Строка 67: Строка 67:
<references />
<references />


{{Навигационная таблица/Справочник языка Arduino}}
{{Навигационная таблица/Портал/Arduino}}
{{Навигационная таблица/Arduino библиотеки}}
 
{{Навигационная таблица/Arduino продукты}}
 
{{Навигационная таблица/Arduino/Примеры}}
 
{{Навигационная таблица/Телепорт}}
 


[[Категория:Справочник языка Arduino]]
[[Категория:Справочник языка Arduino]]

Текущая версия от 11:28, 8 июля 2023

Проверка/Оформление/Редактирование: Мякишев Е.А.


map(value, fromLow, fromHigh, toLow, toHigh)

Функция пропорционально переносит значение (value) из текущего диапазона значений (fromLow .. fromHigh) в новый диапазон (toLow .. toHigh), заданный параметрами.

Функция map() не ограничивает значение рамками диапазона, как это делает функция constrain(). constrain() может быть использован до или после вызова map(), если необходимо ограничить допустимые значения заданным диапазоном.

Обратите внимание, что "нижняя граница" может быть как меньше, так и больше "верхней границы". Это может быть использовано для того чтобы "перевернуть" диапазон":

y = map(x, 1, 50, 50, 1);

Возможно использование отрицательных значений:

y = map(x, 1, 50, 50, -100);

Функция map() оперирует целыми числами. При пропорциональном переносе дробная часть не округляется по правилами, а просто отбрасывается.

Параметры

value: значение для переноса
fromLow: нижняя граница текущего диапазона
fromHigh: верхняя граница текущего диапазона
toLow: нижняя граница нового диапазона, в который переноситься значение
toHigh: верхняя граница нового диапазона

Возвращаемое значение

Значение в новом диапазоне.

Пример

/* Переносим значение с аналогового входа (возможные значения от 0 до 1023) в 8 бит (0..255) */
void setup() {}
 
void loop()
{
  int val = analogRead(0);
  val = map(val, 0, 1023, 0, 255);
  analogWrite(9, val);
}

Дополнительно

Математически функция map() может быть записана так:

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;
}

См.также

Внешние ссылки