LAB #1. Типы данных и переменные в среде AW
Типы данных.
Имена переменных.

Память в Arduino: биты и байты

Основные понятия

Бит — минимальная единица информации в компьютере. Может принимать значения 0 или 1.

Байт — группа из 8 бит. Является основной единицей измерения памяти.

Типы памяти Arduino

SRAM (оперативная память) — используется для хранения переменных во время работы программы

Flash-память — хранит скетч (программу)

EEPROM — энергонезависимая память для долговременного хранения данных

Таблица размеров памяти для популярных плат Arduino

Плата SRAM (байт) Flash (КБ) EEPROM (байт)
Uno 2048 32 1024
Mega 8192 256 4096
Nano 2048 32 1024
Leonardo 2048 32 512

Распределение памяти

  • Переменные занимают память в SRAM
  • Константы хранятся во Flash-памяти
  • Глобальные переменные занимают память постоянно
  • Локальные переменные освобождают память после выхода из функции

Примеры использования памяти

// Пример использования памяти int a; // занимает 2 байта float b; // занимает 4 байта char c10; // занимает 10 байт String d; // динамическое выделение памяти

Правила именования переменных в Arduino

Основные правила

  • Имя переменной может содержать:
    • Латинские буквы (a-z, A-Z)
    • Цифры (0-9)
    • Символ подчеркивания (_)
  • Имя не может начинаться с цифры
  • Регистр букв имеет значение (myVar и MyVar - разные переменные)
  • Нельзя использовать зарезервированные слова языка

Примеры правильных имен

// Корректные варианты именования int sensor_value; float temperature2023; boolean isReady; String user_name; long counter_1;

Примеры неправильных имен

// Некорректные варианты: // 2sensor - начинается с цифры // my-var - дефис запрещен // int - зарезервированное слово // sensor value - пробел запрещен

Рекомендации по именованию

  • Используйте понятные и описательные имена
  • Применяйте стиль camelCase или snake_case
  • Избегайте однобуквенных имен (кроме счетчиков циклов)
  • Длина имени должна соответствовать сложности проекта

Примеры хороших практик

// Хорошие примеры именования int ledPinNumber; float sensorReadingValue; boolean buttonIsPressed; String userInputData; long millisCounter;

Типы данных в Arduino

Примеры объявления переменных

Пример 1: Целочисленные типы

// Объявление переменных разных целочисленных типов byte ledPin = 13; // занимает 1 байт int temperature = 23; // занимает 2 байта long counter = 100000; // занимает 4 байта

Пример 2: Типы с плавающей точкой

// Объявление переменных с плавающей точкой float pi = 3.14159; // занимает 4 байта float voltage = 5.5; // занимает 4 байта

Пример 3: Логические и символьные типы

// Объявление логических и символьных переменных boolean buttonState = true; // занимает 1 байт char key = 'A'; // занимает 1 байт char message[] = "Hello"; // массив символов

Пример 4: Строковый тип

// Объявление строковой переменной String name = "Arduino"; // динамическое выделение памяти

Пример 5: Массивы

// Объявление массивов int numbers[] = {1, 2, 3, 4, 5}; // массив целых чисел char letters[] = {'A', 'B', 'C'}; // массив символов float values[] = {1.1, 2.2, 3.3}; // массив чисел с плавающей точкой
Тип данных Размер Диапазон Пример использования
byte 1 байт 0 - 255
byte led = 255;
int (integer) 2 байта -32,768 - 32,767
int temp = -25;
unsigned int 2 байта 0 - 65,535
unsigned int age = 30;
long 4 байта -2,147,483,648 - 2,147,483,647
long dist = 1000000;
unsigned long 4 байта 0 - 4,294,967,295
float 4 байта -3.4028235E+38 - 3.4028235E+38
(точность: 6-7 знаков)
float pi = 3.1415;
double 4 байта Аналогичен float
char 1 байт -128 - 127
(один символ)
char grade = 'A';
boolean (bool) 1 байт true или false
bool flag = true;
String Зависит от длины строки Массив символов
String name = "Иван";