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 для угла, указанного в радианах. Вызов функции прост — каждая из этих функций требует в качестве параметра вызова значение угла в радианах.

  Цена: 2600.00 руб.    
  Цена: 21200.00 руб.    
  Цена: 98.00 руб.    
  Цена: 12800.00 руб.    

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

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

*