Arduino

технологии

Математические функции

Функция min(x, y)

Описание

Возвращает наименьшее из двух чисел, поддерживает все числовые типы данных.

Синтаксис

min(x, y)

Параметры

x - первое число

y - второе число

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

Меньшее из двух чисел

Пример
void setup()
{
  int a = 5;
  int b = 7;
  int c = min(a, b); // переменной c будет присвоено значение 5
}

void loop()
{
}
Примечания

Следует избегать использования функций внутри функции, например min(a++, b);, так как из-за внутренней реализации она может вернуть неверный результат.

Функция max(x, y)

Описание

Возвращает наибольшее из двух чисел, поддерживает все числовые типы данных.

Синтаксис

max(x, y)

Параметры

x - первое число

y - второе число

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

Наибольшее из двух чисел

Пример
void setup()
{
  int a = 5;
  int b = 7;
  int c = max(a, b); // переменной c будет присвоено значение 7
}

void loop()
{
}
Примечания

Следует избегать использования функций внутри функции, например max(a++, b);, так как из-за внутренней реализации она может вернуть неверный результат.

Функция abs()

Описание

Возвращает модуль число (абсолютное значение числа).

Синтаксис

abs(x)

Параметры

x - число

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

Вернет x, если x - положительное число или 0, иначе вернет -x

Пример
void setup()
{
  int x;
  int a;
  
  Serial.begin(9600);  
  
  x = 17;
  a = abs(x);
  Serial.println(a); // будет напечатано 17

  x = -19;
  a = abs(x);
  Serial.println(a); // будет напечатано 19
}

void loop()
{
}
Примечания

Следует избегать использования функций внутри функции, например abs(a++);, так как из-за внутренней реализации она может вернуть неверный результат.

Функция constrain(x, a, b)

Описание

Функция проверяет, входит ли число x в диапазон [a..b]. Если x меньше, чем a, то функция вернет a, если x больше, чем b, то вернет b. Иначе вернет x. Поддерживает все числовые типы.

Синтаксис

constrain(x, a, b)

Параметры

x - проверяемое число

a - нижняя граница диапазона

b - верхняя граница диапазона

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

Если x входит в диапазон [a..b], то возвращает x, если оно меньше нижней границы, то вернется a, если же оно больше верхней границы, то вернется b.

Пример
void setup()
{
  int a;
  int x = 5;
  int y = 10;
  int res;
  
  Serial.begin(9600);
  
  a = 3;
  res = constrain(a, x, y);
  Serial.println(res); // выведет 5

  a = 12;
  res = constrain(a, x, y);
  Serial.println(res); // выведет 10

  a = 7;
  res = constrain(a, x, y);
  Serial.println(res); // выведет 7
}

void loop()
{
}
Примечания

Следует избегать использования функций внутри функции, например constrain(Serial.parseInt(), minimumValue, maximumValue);, так как из-за внутренней реализации она может вернуть неверный результат.

Функция map(value, fromLow, fromHigh, toLow, toHigh)

Описание

Функция пропорционально переносит число из одного диапазона в другой. Причем число не обязательно должно быть ограничено рамками первого интервала. Также верхняя граница интервала может быть меньше нижний границы.

Синтаксис

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

Параметры

value - число, которое следует пропорциональное перенести из первого интервала во второй

fromLow - нижняя граница текущего интервала

fromHigh - верхняя граница текущего интервала

toLow - нижняя граница целевого интервала

toHigh - верхняя граница целевого интервала

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

Число, пропорционально перенесенное из одного интервала в другой

Пример
void setup()
{  
  int res;
  Serial.begin(9600);
  
  res = map(2, 1, 10, 10, 100);
  Serial.println(res); // будет напечатано 20 (пропорциональное увеличение на 10)
  
    
  res = map(15, 0, 100, 100, 0);
  Serial.println(res); // будет напечатано 85 ("переворот" значения)  
}

void loop()
{
}
Примечания

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

Функция pow(base, exponent)

Описание

Функция возвращает результат операции возведения числа в степень. И параметры, и результат - числа с плавающей точкой.

Синтаксис

pow(base, exponent)

Параметры

base - число

exponent - степень

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

Результат возведения в степень

Пример
void setup()
{  
  int res;
  Serial.begin(9600);
  
  res = pow(2, 3);
  Serial.println(res); // будет напечатано 8
}

void loop()
{
}

Функция sq(x)

Описание

Вычисляет квадрат числа: результат умножения числа самого на себя.

Синтаксис

sq(x)

Параметры

x - число, квадрат которого требуется вычислить

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

Квадрат числа

Пример
void setup()
{  
  int res;
  Serial.begin(9600);
  
  res = sq(2);
  Serial.println(res); // будет напечатано 4
}

void loop()
{
}
Примечания

Функция sqrt(x)

Описание

Вычисляет квадратный корень из числа.

Синтаксис

sqrt(x)

Параметры

x - число, квадратный корень из которого требует вычислить

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

Квадратный корень

Пример
void setup()
{  
  int res;
  Serial.begin(9600);
  
  res = sqrt(9);
  Serial.println(res); // будет напечатано 3
}

void loop()
{
}