Параметры:
x: число для проверки
a: нижняя грань диапазона
b: верхняя грань диапазона
Возвращаемое значение:
x: если x лежит между a и b
a: если x меньше, чем a
b: если x больше, чем b
Пример:
sensVal = constrain(sensVal, 10, 150); // ограничиваем интервал значений сенсора между 10 и 150
map(value, fromLow, fromHigh, toLow, toHigh)
Описание:
Отображает число из одного диапазона в другой.
Код (\hardware\cores\arduino\WMath.cpp):
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;
}
Примечание:
Функция не проверяет – содержится ли число в необходимом диапазоне, поэтому можно вызвать функцию constrain() перед или после функции map().
Так же, «нижняя граница » диапазонов может быть больше или меньше, чем «верхняя граница», т.о. функция map() может быть использована, чтобы перевернуть диапазон чисел, например:
y = map(x, 1, 50, 50, 1);
функция так же может оперировать с отрицательными числами:
y = map(x, 1, 50, 50, -100);
Функция map() оперирует целыми числами, поэтому никаких десятичных значений не выдаётся. Дробные остатки отсекаются, а не округляются или усредняются.
Параметры:
value: число для отображения
fromLow: нижняя граница текущего диапазона числа value
fromHigh: верхняя граница текущего диапазона числа value
toLow: нижняя граница целевого диапазона
toHigh: верхняя граница целевого диапазона
Возвращаемое значение:
Целое число типа long
Пример:
/* отображает аналоговое значение к 8 битам (диапазон от 0 до 255) */
int val = analogRead(0);
val = map(val, 0, 1023, 0, 255);
analogWrite(9, val);
pow(base, exponent)
Описание:
Функция предназначена для возведения числа в заданную степень.
Комментарии (5)
RSS свернуть / развернутьvruzh
noonv
Serial.print() и Serial.println() в настоящее время ПОДДЕРЖИВАЮТ печать типа float.
vruzh
noonv
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.