В этой статье мы рассмотрим типы данных в Ардуино и как они используются в программировании. Типы данных важны для понимания, поскольку они определяют типы, которые могут хранить переменные.
Тип данных переменной определяется при объявлении переменной. Чтобы объявить тип данных переменной, напишите тип данных перед именем переменной:
int variable;
Это объявляет переменную как int
– целое число.
Используемый тип данных будет зависеть от размера и типа значения, которое будет храниться в переменной. А также определяет, какой объем памяти будет зарезервирован для переменной.
Тип данных int
Наиболее распространенным типом данных является целое число. Переменные, объявленные как int
, могут содержать целые числа, такие как 5, 22 или 1023. Чтобы объявить переменную с типом int
, объявите ее следующим образом:
int variable = 9;
В этом примере мы объявляем переменную целочисленного типа int
с именем variable и устанавливаем ее равной числу девять.
Целочисленные переменные используют два байта памяти, поэтому они могут содержать 216 различных чисел (до 65 536). Но тип данных int
может содержать положительные и отрицательные значения, поэтому диапазон фактически разделен между -32 768 и 32 767.
Существует также целочисленный тип данных без знака – unsigned int
. Без знака означает, что число может содержать только положительные числа и ноль. Целочисленные переменные без знака занимают два байта памяти. Но поскольку они содержат только положительные значения, они могут содержать целые числа от 0 до 65 535.
Чтобы объявить переменную unsigned int
, используйте этот код:
unsigned int variable = 8;
Тип данных long
Тип данных long
используется для хранения больших целых чисел. Переменные, объявленные как long
, используют четыре байта памяти, поэтому они могут содержать до 232 или 4 294 967 296 различных чисел. Но это число делится между положительными и отрицательными значениями (от -2 147 483 648 до 2 147 483 647).
Чтобы объявить переменную с типом данных long
, используйте этот код:
unsigned long variable = 4;
Тип данных float
Типы данных long
и int
могут хранить только целые числа. Но что делать, если вам нужно сохранить значение с десятичной точкой или дробью?
Используйте типы данных float
или double
. Переменные float
и double
могут хранить положительные и отрицательные дробные числа. Они оба делают одно и то же, поэтому ключевые слова взаимозаменяемы. Они также оба используют 4 байта памяти. Значения, которые они могут хранить варьируются от 3,4028235E+38 до -3,4028235E+38.
При объявлении переменной с float
или double
число должно быть записано с десятичной точкой, иначе оно будет рассматриваться как целое число.
Следует иметь в виду, что математические операции выполняются намного медленнее с числами с плавающей точкой и двойными числами по сравнению с целыми числами. Следовательно, ваша программа будет работать быстрее, если вы сможете использовать целые числа вместо чисел с плавающей точкой.
Чтобы объявить переменную как число с плавающей запятой float
, используйте этот код:
float variable = 8.123;
Логический тип данных boolean (true и false)
Иногда вам нужна переменная только для хранения двух значений. Например, когда вы считываете цифровой вывод или записываете состояние для светодиода, вам нужно сохранить только одно из двух значений: HIGH (оно же логическая 1, оно же – истина true) и LOW (оно же логический 0, оно же – ложь false).
boolean variable = HIGH; bool flag = 0;
Для этих типов переменных вы можете использовать логический тип данных. Логические переменные могут хранить только два возможных значения: true или false, HIGH или LOW и 1 или 0. Они используют только один байт памяти.
Тип данных char в Arduino
Используйте символьный тип данных char
, если ваша переменная должна содержать только одну букву, цифру или символ. Тип данных char
хранит символы ASCII, такие как a, b, c, 1, 2, 3, а также знаки *, % и $.
Символ ASCII может быть сохранен в переменной char
и занимает только один байт данных.
Каждому символу ASCII присвоен уникальный номер. Вы можете найти значение ASCII для каждого символа в следующей таблице:
Первый видимый символ в Ардуино начинается со значения 33, с символа ! и заканчивается значением 126, символом ~, поэтому символы после 126 в последовательном порту будут отображаться как ⸮
Таблица разбита на две колонки для каждого символа ASCII. Столбец “Значение” соответствует числовому значению каждого символа, а столбец “символ” показывает фактический символ.
char variable = 'f';
Чтобы сохранить символ ASCII в переменной char
, используйте одинарные кавычки вокруг символа при объявлении переменной. Например, чтобы сохранить символ доллара в переменной char
, вы можете использовать этот код:
char variable = '$';
Чтобы сохранить значение символа ASCII в переменной, используйте номер ASCII без кавычек. Например, это сохранит символ собаки @ в переменной variable:
char variable = 64;
Использование числовых значений ASCII в переменных char
позволяет выполнять арифметические действия с буквами. Это иногда используется для перемещения значения по алфавиту.
Тип данных byte
Тип данных byte
аналогичен типу данных unsigned char
. Он может хранить положительные целые числа от 0 до 255. Он использует только один байт памяти, поэтому это хороший способ сэкономить место в программе, если вам нужно хранить небольшие значения, такие как номера контактов платы Ардуино, например.
byte variable = 255;
Модификатор переменной const
Модификатор переменной const
не является типом данных, но он влияет на поведение переменной в программе Arduino. Ключевое слово const
делает переменную постоянной. Как только постоянная переменная объявлена и установлена равной значению, она не может быть изменена позже в программе.
Модификатор const
обычно используется для переменных, как номера выводов и математические константы. Значения, которые не будут изменяться в программе.
Объявление переменной как const
делает ее доступной только для чтения, поэтому она не использует SRAM, что уменьшает размер вашей программы.
const int variable = 255;
В большинстве случаев вам может сойти с рук объявление переменных в виде целых чисел. Но использование идеального типа данных сэкономит память и позволит вашим программам работать быстрее и эффективнее.
Например, если вы знаете, что переменная никогда не будет хранить значение больше 255, было бы разумно объявить ее как byte
вместо int
.
Возможно вам будет полезна статья про типы переменных, их объявление и использование математических операций над переменными.
Надеемся, эта статья помогла вам познакомиться с типами данных и тем, как они используются в программировании Arduino. Оставляйте комментарии ниже, если у вас есть какие-либо вопросы!
Документация
Компоненты
- Arduino NANO
- Arduino UNO
- Arduino MEGA