СОДЕРЖАНИЕ ►
Микроконтроллер Arduino может манипулировать константами и переменными, которые мы рассматривали ранее. В этом уроке мы рассмотрим, как использовать математические операции и выполнять вычисления в скетче с разными типами переменных. В языке Arduino IDE, как и во всех языках программирования есть операторы, позволяющие выполнять математические и логические операции.
Арифметические операции в Ардуино
Для этого занятия потребуется:
- Arduino Uno / Arduino Nano / Arduino Mega
Порядок вычисления в языке программирования Arduino IDE подчиняется обычным правилам арифметики: сначала выполняется выражение в круглых скобках, затем умножение и деление, потом операции сложения и вычитания.
Символы математических функций Arduino IDE
В следующей таблице представлены наиболее популярные операторы сложения и вычитания, операторы умножения и деления, которые часто используются в скетче.
| название функции | символ | пример |
| присваивание | = | int x = 5; // возвращает 5 |
| сложение | + | int x = 5 + 2; // возвращает 7 |
| вычитание | — | int x = 5 - 2; // возвращает 3 |
| умножение | * | int x = 5 * 2; // возвращает 10 |
| деление | / | int x = 5 / 2; // возвращает 2 |
| остаток от деления | % | int x = 5 / 2; // возвращает 1 |
Внимание: не путайте символ присваивания = в языке Arduino IDE с символом сравнения ==, который используется в логических операторах if else
Составные операторы математических функций
В следующей таблице представлены символы составных операторов, в которые входят операторы, образованные из комбинаций арифметических и операторов сравнения. Эти операторы позволяют сделать программу для микроконтроллера более краткой.
| название функции | символ | пример |
| увеличение на единицу | ++ | x++ // равносильно x = x + 1 |
| уменьшение на единицу | — — | x-- // равносильно x = x - 1 |
| составное сложение | += | x += 2; // равносильно x = x + 2 |
| составное вычитание | -= | x -= 2; // равносильно x = x - 2 |
| составное умножение | *= | x *= 2; // равносильно x = x * 2 |
| составное деление | /= | x /= 2; // равносильно x = x / 2 |
| остаток от деления | %= | x %= 2; // равносильно x = x % 2 |
Функции abs(), max(), min() и sqrt()
max() Arduino принимает в качестве параметра два числа и возвращает наибольшее:
int x = max(23, 2); // возвращает 23
min() Arduino принимает в качестве параметра два числа и возвращает наименьшее:
int x = min(23, 2); // возвращает 2
Функция sqrt() Arduino позволяет получить квадратный корень числа в виде double:
float x = sqrt(25); // возвращает 5.00
abs() Arduino принимает параметр числа и возвращает положительное число:
int x = abs(-5); // возвращает 5 int x = abs(0); // возвращает 0 int x = abs(5); // возвращает 5
Тригонометрия: cos(), sin() и tan()
cos() принимает параметр угла в радианах и возвращает значение косинуса от 1 до -1:
float x = cos(90); // возвращает -0.45
sin() принимает параметр угла в радианах и возвращает значение синуса от 1 до -1:
float x = sin(90); // возвращает 0.89
Функция tan() Arduino принимает в качестве параметра угол в радианах и возвращает значение между минус бесконечностью и плюс бесконечностью:
float x = tan(0); // возвращает 0.00
Заключение. Помните, что целочисленные константы воспринимаются компилятором как тип int, следите за вхождением результата в диапазон допустимых значений. Арифметические операции часто используются в программировании при плавном включении светодиода с использованием цикла for() или while(), а также при вычислении температуры воздуха при подключении термистора к микроконтроллеру.










Ребята! Поправьте статью. Косинус угла 90 градусов всегда равен нулю. А синус этого же угла равен единице. А то что у вас выдает -0.45 и 0.89 это скорее всего потому, что угол нужно задавать не в градусах а в радианах.
Спасибо за сообщение.
Все верно, в тригонометрических функциях угол следует указывать в радианах. Уточнили информацию в статье