Перейти к содержанию

Типы данных Arduino, объявление переменных

Типы данных Arduino, объявление переменных

Переменная в Arduino IDE — это ячейка памяти с именем, которая содержит числовое или буквенное значение. С числовыми типами данных (переменными) можно выполнять все математические операции: умножение, деление, сложение, вычитание, преобразование в другой тип данных и т.д. Локальные и глобальные переменные в языке программирования Arduino записываются в программе в следующем виде: <тип> <имя> = <значение>;

Необходимые компоненты:

  • Arduino Uno / Arduino Nano / Arduino Mega
  • светодиод и резистор
  • макетная плата
  • коннекторы

Дополнительные материалы на эту тему:

  1. Массивы данных, чисел, строк в Ардуино
  2. Энергонезависимая память EEPROM Ардуино
  3. Ошибки компиляции для платы Ардуино Уно

Если значение глобальной или локальной переменной не определено, присваивается значение «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, объявление переменных

В языке программирования 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.

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *

newzaym
➜