/
🤓

Конструкции языка программирования Arduino

Arduino
On this page

Программы для Arduino пишутся на языке Arduino C (C++ с фреймворком Wiring).

Директивы

#include

cpp
// Подключает указанный файл
#include <stdio.h>
#include "stdio.h"

#define, #undef

cpp
// Определяет идентификатор
#define LED_PIN 13
digitalWrite(LED_PIN, HIGH);
// Сбрасывает определение идентификатора
#undef LED_PIN

#ifdef, #ifndef

cpp
// Выполняет действие если идентификатор определен
#ifdef LED_PIN
digitalWrite(LED_PIN, HIGH);
#endif
// Выполняет действие если идентификатор не определен
#ifndef PRODUCTION
Serial.println(val);
#endif

#if, #elif, #else и #endif

cpp
// Конструкция ветвления с проверкой определения (не определения) идентификатора
#if defined(MOTOR_PIN)
// ...
#elif !defined(LED_PIN)
// ...
#else
// ...
#endif

Структура управления

if...else

cpp
if (val === 1) {
// ...
} else if (val === 2) {
// ...
} else {
// ...
}

Тернарный оператор ветвления

<условие> ? <если истина> : <если ложь>

cpp
digitalWrite(LED_BUILTIN, isOn ? HIGH : LOW);

switch...case

cpp
switch (value) {
case label1:
// ...
break;
case label2:
// ...
break;
default:
// ...
break;
}

break, continue

cpp
for (int i = 0; i < 10; i++) {
if (i > 5) {
// Прервать все итерации
break;
} else {
// Перейти к следующей итерации
continue;
}
}

for

cpp
for (int i = 0; i < 10; i++) {
// ...
}

while

cpp
while (condition) {
// ...
}

do...while

cpp
do {
// ...
} while (condition);

Комментарии в коде

cpp
/*
* Многострочный
* комментарий
*/
// Однострочный комментарий

Функции

Функции группируют части программ в блоки и позволяют их повторно использовать.

cpp
void flashlight(int pin) {
digitalWrite(pin, HIGH);
}

Массивы

Массивы представляют список типизированных данных. Доступ к элементам массива осуществляется по индексу (нумерация индексов начинается с 0).

cpp
// Массив строк
char* names[] = {
"Victor",
"Alex",
"Piter"
};
names[0]; // "Victor"
// Массив чисел
int numbers[] = {1, 2, 3, 4};
numbers[3]; // 4

Основные блоки программы на Arduino

cpp
void setup() {
// Настройка / инициализация
}
void loop() {
// Бесконечный цикл программы
}

Константы

cpp
#define LCD_PIN 10
const int BATTERY_COUNT = 3;

Типы данных

ТипРазмер (в байтах)Диапазон значенийОписание
boolean1true или false (0 или 1)Представляет логические значения
char1-128...+128Используется для представления кодов символов ASCII (отрицательные значения не используются)
byte10...255Представляет целое положительное значение
int2-32 768...+32 767Представляет целое 16-битное значение со знаком
unsigned int20...+65 535Представляет целое положительное 16-битное значение
long4-2 147 483 648...+2 147 483 647Представляет целое 32-битное значение со знаком
unsigned long40...4 294 967 295Представляет целое положительное 32-битное значение
float / double4-3,4028235E+38...+3,4028235E+38Представляет вещественное 32-битное значение со знаком
Edit this page
logo