Guardian Angel Icon 3D Orthodox Wood Carved.
Virgin Mary of Perpetual Help Wooden Carved icon Chriatian gift.
Guardian Angel
ICON WOOD JESUS CHRIST GOD THE LORD ALMIGHTY
Orthodox Wood Carved.
St Andrew the Apostle Icon 3D
Our Lady 3D Orthodox Wood Carved Icon.
Orthodox Wood Carved Icon
Guardian Angel
Guardian Angel

Плата расширения L293D, ИК-датчик VS1838B, TFT LCD, Модем M590E GSM GPRS, "монитор TFT LCD, датчик движения HC-SR501, ИК-пульт дистанционного управления, Радиомодуль NRF24L01, SD Card Module, Звуковой модуль, 5-axis stepper motor driver, Шаговый двигатель, Модем M590E GSM GPRS, 5-axis stepper motor driver, Часы реального времени DS 3231/DS 1307, терморегулятор W1209 DC, Релейный модуль, датчик движения HC-SR501, Модуль Wi-Fi ESP8266-12E, датчик движения HC-SR501, Передатчик и приемник в диапазоне RF 433 Mhz, Блок питания, L293D, Микросхема контроллера коллекторного электродвигателя, ИК-пульт дистанционного управления, Датчики контроля температуры, Радиомодуль NRF24L01, OKI 120A2, Rotary Encoder, SD Card Module, Беспроводной пульт дистанционного управления, Микросхема контроллера коллекторного электродвигателя, Модуль Bluetooth HC-06,, Модем M590E GSM GPRS, Часы реального времени DS 3231/DS 1307, Mini 360 на схеме LM2596, MP3-TF-16P, L293D, Модуль LCD монитора, Инфракрасные датчики расстояния, Часы реального времени, USB Host Shield, HC-SR501, Cветочувствительный датчик сопротивления, блок питания Mini 360 на схеме LM2596, ЖК-дисплей TFT дисплей, Контроллер L298N, HC-SR501, Модуль MP3 Player WTV020, GSM GPRS, Сервоприводы, Модем M590E GSM GPRS, Часы реального времени DS 3231/DS 1307, Модуль Wi-Fi ESP8266-12E, Инфракрасные датчики расстояния, Card Module, Ультразвуковые дальномеры HC-SR04, Блок питания, Карта памяти SD, Mini 360, Ethernet shield, L293D, блок питания Mini 360 на схеме LM2596, Радиомодуль, датчик температуры DS18B20, ИК-пульт дистанционного управления, USB конвертер UART, ИК-пульт, Антена для модуля WiFi, Ethernet shield, Модуль блока питания XL6009, Микросхема контроллера коллекторного электродвигателя, Модуль качества воздуха MQ-135, Микросхема контроллера коллекторного электродвигателя, ИК-пульт дистанционного управления, SD Card Module, Радиомодуль NRF24L01, двигатель OKI, 5-axis stepper motor driver, L293D, TB6560, Драйвер шагового двигателя TB6600, Шаговый двигатель, Модуль камеры, Блок питания, L293D, блок питания Mini 360 на схеме LM2596, 5axis mach3 interface, Карта памяти SD, Ethernet shield, Контроллер L298N, датчик движения HC-SR501, Модуль Wi-Fi ESP8266-12E, Модуль LCD монитора LCD1602, Шаговый двигатель OKI 120A2, Шаговый двигатель, Шаговый двигатель.

 

Данные

Типы данных

Компилятор Arduino определяет следующие типы данных:

boolean;

char;

byte;

int;

unsigned int;

long;

unsigned long;

float;

double;

string;

массив (array);

void.

Рассмотрим типы данных более подробно.

boolean

Логический (булевый) тип данных — boolean. Может принимать одно из двух значений: true или false. Данные типа boolean занимают в памяти один байт.

char

Переменная типа char занимает 1 байт памяти и может хранить один алфавитно-цифровой символ (литеру). При объявлении литеры используются одиночные кавычки: 'A' (двойные кавычки используются при объявлении строки символов — тип string: "ABC").

Символ хранится в памяти как число, соответствующее коду символа в таблице кодировки символов ASCII. Так как символ хранится как число, в памяти над ним возможно производить арифметические действия (например, 'A' + 1 будет 66, т. к. ASCII код для 'A' — 65).

Тип char знаковый тип, т. е. число (код), хранящийся в памяти, может принимать значения от –128 до 127. Если необходима знаковая однобайтовая переменная, используйте тип byte.

Пример:

char myChar = 'A';

char myChar = 65; // Варианты эквивалентны

 

byte

Хранит 8-битовое числовое значение без десятичной точки. Имеет диапазон от 0 до 255.

Пример:

byte someVariable=150; // объявление переменной someVariable,

// имеющей тип byte

int

Тип данных int (от англ. integer — целое число) — один из наиболее часто используемых типов данных для хранения чисел. int занимает 2 байта памяти и может хранить числа от –32 768 до 32 767.

Для размещения отрицательных значений int использует так называемый дополнительный код представления числа. Старший бит указывает на отрицательный знак числа, остальные биты инвертируются с добавлением 1.

Arduino-компилятор сам заботится о размещении в памяти и представлении отрицательных чисел, поэтому арифметические действия над целыми числами производятся как обычно.

Когда переменная типа int вследствие арифметической операции достигает своего максимального значения, она "перескакивает" на самое минимальное значение и наоборот .

int x;

x = -32,768;

x = x - 1; // x теперь равно 32,767 x = 32,767;

x = x + 1; // x теперь равно -32,768

unsigned int

Тип данных unsigned int — беззнаковое целое число, так же как и тип int (знаковое), занимает в памяти 2 байта. Но в отличие от int, тип unsigned int может хранить только положительные целые числа в диапазоне от 0 до 65 535.

Отличие кроется в том, как unsigned int использует старший бит, иногда называемый знаковым битом. Если старший бит равен 1, то для типа int компилятор Arduino считает, что это число отрицательное, а остальные 15 битов несут информацию о модуле целого числа в дополнительном коде представления числа, в то время как unsigned int использует все 16 битов для хранения модуля числа.

Когда переменная типа unsigned int вследствие арифметической операции достигает своего максимального значения, она "перескакивает" на самое минимальное значение и наоборот.

unsigned int x; x = 0;

x = x - 1; // x теперь равна 65535

x = x + 1; // x теперь 0

long

Тип данных long используется для хранения целых чисел в расширенном диапазоне от –2 147 483 648 до 2 147 483 647. long занимает 4 байта в памяти. Пример:

long var1 = -178000;

unsigned long

Unsigned long используется для хранения положительных целых чисел в диапазоне от 0 до 4 294 967 295 и занимает 32 бита (4 байта) в памяти. Пример вывода в мил- лисекундах (мс) с начала выполнения программы приведен

void loop()

{

Serial.print("Time: ");

time = millis();

//выводит время, прошедшее с момента начала выполнения программы Serial.println(time);

function1();

}

float

Тип данных float служит для хранения чисел с плавающей запятой. Этот тип часто используется для операций с данными, считываемыми с аналоговых входов. Диапазон значений — от –3,4028235E+38 до 3,4028235E+38. Переменная типа float занимает 32 бита (4 байта) в памяти.

Тип float имеет точность 6–7 знаков, имеются в виду все знаки, а не только мантисса. Обычно для увеличения точности используют другой тип — double, но на платформе Arduino double и float имеют одинаковую точность.

double

Тип данных double, в отличие от большинства языков программирования, имеет ту же точность, что и тип float и занимает также 4 байта памяти.

Тип double поддерживается в Arduino для совместимости кода с другими платформами.

string — текстовые строки

Текстовые строки в Arduino объявляются как массив (array) типа char (символов, литер), оканчивающийся символом "конца строки". Возможны следующие варианты объявления текстовых строк;

 объявить массив символов без присваивания значений;

 объявить массив символов и присвоить значения всем элементам, кроме последнего, компилятор Arduino автоматически добавит символ конца строки;

 явно объявить завершающий символ;

 инициализировать массив строковой константой в двойных кавычках. Компилятор автоматически задаст требуемый размер на массив, равный количеству символов плюс завершающий символ;

 инициализировать массив с явным заданием размера и присвоением строковой константы;

 инициализировать массив с явным заданием дополнительного размера (с запасом), фактически превышающего размер строковой константы при начальном присвоении.

приведены варианты объявления и присвоения строк.

char Str1[15];

char Str2[8] = {'a','r','d','u','i','n','o'};

char Str3[8] = {'a','r','d','u','i','n','o','\0'};

char Str4[ ] = "arduino";

char Str5[8] = "arduino";

char Str6[15] = "arduino";

Обычно строки оканчиваются нулевым символом (код 0 в ASCII). Это позволяет функциям (таким как Serial.print()) выявлять окончание строки. В противном случае могут считаться байты памяти, не принадлежащие переменной.

Массив символов, выделяемый под строку, должен иметь один дополнительный элемент для символа конца строки. Если объявить строку без символа окончания строки, то это приведет к некорректной работе функций, оперирующих строками.

Строки всегда объявляются внутри двойных кавычек ("Abc").

При работе с большими объемами текстовой информации бывает удобно использо- вать массивы строк. Так как строки сами по себе массивы, массив строк будет двумерным массивом.

В примере, приведенном, символ звездочки после объявления типа "char*" указывает на то, что это массив указателей. Это необходимо для задания двумерного массива.

char* myStrings[]={"string 1", "string 2", "string 3","string 4",

"string 5","string 6"};

void setup()

{Serial.begin(9600);}

void loop()

{

for (int i = 0; i < 6; i++){ Serial.println(myStrings[i]);

delay(500);

}

}

 

Вверх