Logo

Cлучайные товары

Набор резисторов 10Ω 22Ω 47Ω 100Ω 150Ω 200Ω 220Ω 270Ω 330Ω 470Ω 510Ω 680Ω 2.2K Ω 3.3K Ω 4.7K Ω 5.1K Ω 6.8K Ω 51KΩ 68KΩ 100KΩ 220KΩ 300KΩ 470KΩ 680KΩ 1MΩ
Мотор-Редуктор Металлический

Посмотреть товар в Магазине »

Мы в соц сетях


Подпишись на канал
Мы на facebook

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

Описание

Преобразовывает значение переменной из одного диапазона в другой. Т.е. значение переменной value, равное fromLow, будет преобразовано в число toLow, а значение fromHigh - в toHigh. Все промежуточные значения value масштабируются относительного нового диапазона [toLow; toHigh].

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

Обратите внимание, что нижние пределы указываемых диапазонов (fromLow, toLow) численно могут быть больше верхних пределов (fromHigh, toHigh). В этом случае функция map() может использоваться для создания обратного диапазона чисел, например:

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

Функция может обрабатывать отрицательные числа, поэтому этот пример

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

также работает корректно.

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

Параметры

value: переменная, значение которой необходимо преобразовать

fromLow: нижний предел текущего диапазона переменной value

fromHigh: верхний предел текущего диапазона переменной value

toLow: нижний предел нового диапазона переменной value

toHigh: верхний предел нового диапазона переменной value

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

Преобразованное значение.

Пример

/* Преобразование аналогового значения в 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;
}
Вернуться в раздел: Описание справочника языка Ардуино Дата публикации 16 мая , 2017

Яндекс.Метрика

Portal-PK (Портал ПК) © 2015 - 2017 MiniYiiCMS Заказать сайт: f-studio.biz
Обратная связь
Вопрос-Ответ