Переменная в Arduino IDE — это ячейка памяти с именем, которая содержит числовое или буквенное значение. С числовыми типами данных (переменными) можно выполнять все математические операции: умножение, деление, сложение, вычитание, преобразование в другой тип данных и т.д. Локальные и глобальные переменные в языке программирования Arduino записываются в программе в следующем виде: <тип> <имя> = <значение>;
СОДЕРЖАНИЕ
Необходимые компоненты:
- Arduino Uno / Arduino Nano / Arduino Mega
- светодиод и резистор
- макетная плата
- коннекторы
Дополнительные материалы на эту тему:
Если значение глобальной или локальной переменной не определено, присваивается значение «0». Переменные, которые не могут быть изменены в программе после объявления, называются константами. Чтобы определить константу, добавьте const перед типом данных Ардуино. В следующей таблице приведены виды данных Arduino, которые используют в языке C++ и при написании программы для микроконтроллера.
Таблица. Типы данных в Ардуино
| Тип | Занимаемый размер (байт) | Минимальное значение | Максимальное значение |
| boolean | 1 | false | true |
| byte | 1 | 0 | 255 |
| char | 1 | -128 | 127 |
| int, short | 2 | -32768 | 32767 |
| unsigned int | 2 | 0 | 65535 |
| long | 4 | -2147483648 | 2147483647 |
| unsigned long | 4 | 0 | 4294967295 |
| float, double | 4 | -3.4028235E+38 | 3.4028235E+38 |
При написании программы важно помнить, что переменная в скетче должна быть объявлена до обращения к ней, т.е. она должна быть выше по коду. В противном случае вы получите ошибку во время компиляции скетча — not declared in this scope. Также обратите внимание, что когда переменная инициализируется внутри цикла for или while — каждый раз, когда цикл начинается снова, переменная обнуляется (обновляется).
Преобразование типов данных в Ардуино

В языке программирования Arduino преобразование типов данных — это изменение типа переменной в другой тип. Например, вам необходимо преобразовать тип данных byte в тип данных int в своей программе. Для этого укажите в скобках перед преобразуемой переменной нужный тип переменной — результат вернет переменную с новым типом данных. Вот небольшой пример явного преобразования переменных в Arduino IDE:
byte x = 150; int y = (int)x;
или
float x = 15,4; int y = (int)x;
Локальные и глобальные переменные Ардуино

Глобальные и локальные переменные имеют разную видимость (время жизни). Локальная переменная в Arduino живет только внутри функции в которой ее инициализировали, если вы попытаетесь получить доступ к локальной переменной вне функции, вы получите ошибку. Например, в программе с мигающим светодиодом переменная объявляется внутри цикла for и, поэтому переменная не может быть использована вне цикла for.
Объявление локальной переменной Ардуино
#define LED 10
void setup() {
Serial.begin(9600);
pinMode(LED, OUTPUT);
}
void loop() {
for(int i = 0; i <= 255; i++) {
analogWrite(LED, i);
Serial.println(i);
delay(10);
}
for(int i = 255; i >= 0; i--) {
analogWrite(LED, i);
Serial.println(i);
delay(10);
}
}
Глобальная переменная в Arduino доступна в программе из любого места функции или подпрограммы. Время жизни такой переменной — от начала программы до ее конца. Глобальная переменная int i в следующем примере может быть использована из любой функции программы. Использование переменных при программировании означает, что вам не нужно хранить ее значение, а нужно ссылаться на участок памяти по заданному имени.
Объявление глобальной переменной Ардуино
#define LED 10
int i = 0;
void setup() {
Serial.begin(9600);
pinMode(LED, OUTPUT);
}
void loop() {
for(i = 0; i <= 255; i++) {
analogWrite(LED, i);
Serial.println(i);
delay(10);
}
for(i = 255; i >= 0; i--) {
analogWrite(LED, i);
Serial.println(i);
delay(10);
}
}
Формальная переменная Arduino, то есть параметр, переданный функции, ведет себя, как локальная переменная, но появляется в программе только, когда вызывается функция. Формальная переменная может быть прочитана и записана в своей функции, но когда функция завершается, переменная удаляется из памяти микроконтроллера. Для примера загрузите следующую программу и откройте монитор порта Arduino IDE.
Объявление формальной переменной Ардуино
void setup() {
Serial.begin(9600);
}
void loop() {
Func(10);
delay(500);
}
void Func(int var) {
var = var + 10;
Serial.println(var);
}
Заключение. Мы рассмотрели, какие типы переменных и данных существуют в языке программирования Arduino IDE. Знание типов переменных поможет вам правильно использовать объем памяти платы Arduino, что позволит микроконтроллеру работать намного быстрее и эффективнее. А также исключит вероятность появления ошибки компиляции, так как глобальные переменные используют много памяти Arduino Uno.
