Arduino – функции – математика

Математические функции в Arduino IDE облегчают выполнение сравнение и преобразование значений, полученных путем измерения или передачи данных. Разработчики Arduino IDE не советуют использовать инкремент и декремент в рамках математических функций, оправдывая это тем, что результат может быть не таким, как ожидалось ... Лично мы не заметили неисправность этого синтаксиса.

Функция min()

Функция min() возвращает меньшее значение из двух указанных в качестве параметров. Пример использования функции min():

int x;
x=min(100,200); //результат x=100
x=min(a,b) // если a<b, то x=a, если a>b, то x=b

В первом случае переменная х будет иметь значение 100, во втором, в зависимости от значений переменных a и b, переменной x будет присвоено меньшее значение.

Функция max()

Аналогично функции min(), функция max() возвращает большее значение из двух указанных в качестве параметров. Пример использования функции max():

int x;
x=max(100,200); //результат x=200
x=max(a,b) // если a>b, то x=a, если a<b, то x=b

Функция abs()

Функция abs() возвращает абсолютное значение указанного параметра. В случае, если заданным параметром является число больше или равно нулю, функция возвращает это же значение. В случае, если в качестве параметра мы зададим отрицательное число, функция вернет значение со знаком плюс. Несколько примеров применения функции abs():

int x=5;
int y=-3;
int z;
z=abs(x); //z=5
z=abs(y); //z=3
z=abs(0); //z=0
z=abs(-12); //z=12

Функция constrain()

Функция constrain() позволяет произвести преобразование значения для указанного диапазона. Синтаксис функции выглядит следующим образом:

constrain(x, a, b);
  • x - это значение, которое мы сравниваем;
  • a - это наименьшее значение из интервала;
  • b - это наибольшее значение из интервала.

Функция возвращает значение x, если x>a и x<b. Для х<а функция возвращает значение a, при x>b функция возвращает значение b. С помощью функции constrain() мы можем ограничить набор значений, полученных с аналогового входа для указанного интервала. Ниже пример использования функции constrain():

sensVal = constrain(sensVal, 10, 150);

//граница считанных значений 10…150

Функция map()

Функция map() позволяет пересчитать (масштабировать) значения из одного диапазона в другой. Это часто используется в ситуациях, когда мы хотим сделать пропорциональное управление. Например, на основе считанного входного напряжения мы контролируем сигнал ШИМ. Синтаксис функции map():

map(x,a1,a2,b1,b2);
  • x - это значение, которое должно быть пересчитано;
  • a1 и a2 - это граничные значения интервала, из которого следует пересчитать;
  • b1 и b2 - это предельные значения нового интервала.

Функция вернет значение от b1 до b2.
Ниже пример применения функции map():

#define analogPin A0;
#define digitalPin 9
void setup()
{
pinMode(analogPin,INPUT);
pinMode(digitalPin,OUTPUT);
}
void loop()
{
int val = analogRead(analogPin);
val = map(val, 0, 1023, 0, 255); //преобразование 10-битного числа в 8-битное
analogWrite(pwmPin, val);
}

В этом примере значение, считанное из 10-разрядного аналого-цифрового преобразователя, было преобразовано в 8-разрядное значение ШИМ.

Функция pow()

Функция pow() возвращает значение числа возведенного в степень. Синтаксис функции pow():

pow(x,y);

x - это число, возводимое в степень;
y - показатель степени (экспонента).
Примеры использования функции pow():

float x;
int a;
x = pow(2,3); //x=8.00
a = pow(2,3); //а=8
a = pow(3,2); //а=9

Функция sq()

Функция sq() позволяет вычислить квадрат заданного числа. Примеры использования функции sq():

int a=3;
int x;
x = sq(a); // x = 9
x = sq(2); // x = 4

Функция sqrt()

Функция sqrt() позволяет извлечь квадратный корень заданного числа. Примеры использования функции sqrt():

int a=16;
int x;
x = sqrt(a); // x = 4
x = sqrt(25); // x = 5

Функции sin(), cos(), tan()

Тригонометрические функции, содержащиеся в Arduino IDE, позволяют вычислить значения sin, cos, tg для угла, указанного в радианах. Вызов функции прост - каждая из этих функций требует в качестве параметра вызова значение угла в радианах.

редактор

Добавить комментарий

Ваш электронный адрес не будет опубликован.

*