Конструкции языка программирования Arduino
Arduino
Содержание
Программы для Arduino пишутся на языке Arduino C (C++ с фреймворком Wiring).
Директивы
#include
// Подключает указанный файл
#include <stdio.h>
#include "stdio.h"
#define, #undef
// Определяет идентификатор
#define LED_PIN 13
digitalWrite(LED_PIN, HIGH);
// Сбрасывает определение идентификатора
#undef LED_PIN
#ifdef, #ifndef
// Выполняет действие если идентификатор определен
#ifdef LED_PIN
digitalWrite(LED_PIN, HIGH);
#endif
// Выполняет действие если идентификатор не определен
#ifndef PRODUCTION
Serial.println(val);
#endif
#if, #elif, #else и #endif
// Конструкция ветвления с проверкой определения (не определения) идентификатора
#if defined(MOTOR_PIN)
// ...
#elif !defined(LED_PIN)
// ...
#else
// ...
#endif
Структура управления
if…else
if (val === 1) {
// ...
} else if (val === 2) {
// ...
} else {
// ...
}
Тернарный оператор ветвления
<условие> ? <если истина> : <если ложь>
digitalWrite(LED_BUILTIN, isOn ? HIGH : LOW);
switch…case
switch (value) {
case label1:
// ...
break;
case label2:
// ...
break;
default:
// ...
break;
}
break, continue
for (int i = 0; i < 10; i++) {
if (i > 5) {
// Прервать все итерации
break;
} else {
// Перейти к следующей итерации
continue;
}
}
for
for (int i = 0; i < 10; i++) {
// ...
}
while
while (condition) {
// ...
}
do…while
do {
// ...
} while (condition);
Комментарии в коде
/*
* Многострочный
* комментарий
*/
// Однострочный комментарий
Функции
Функции группируют части программ в блоки и позволяют их повторно использовать.
void flashlight(int pin) {
digitalWrite(pin, HIGH);
}
Массивы
Массивы представляют список типизированных данных. Доступ к элементам массива осуществляется по индексу (нумерация индексов начинается с 0).
// Массив строк
char* names[] = {
"Victor",
"Alex",
"Piter"
};
names[0]; // "Victor"
// Массив чисел
int numbers[] = {1, 2, 3, 4};
numbers[3]; // 4
Основные блоки программы на Arduino
void setup() {
// Настройка / инициализация
}
void loop() {
// Бесконечный цикл программы
}
Константы
#define LCD_PIN 10
const int BATTERY_COUNT = 3;
Типы данных
Тип | Размер (в байтах) | Диапазон значений | Описание |
---|---|---|---|
boolean | 1 | true или false (0 или 1) | Представляет логические значения |
char | 1 | -128…+128 | Используется для представления кодов символов ASCII (отрицательные значения не используются) |
byte | 1 | 0…255 | Представляет целое положительное значение |
int | 2 | -32 768…+32 767 | Представляет целое 16-битное значение со знаком |
unsigned int | 2 | 0…+65 535 | Представляет целое положительное 16-битное значение |
long | 4 | -2 147 483 648…+2 147 483 647 | Представляет целое 32-битное значение со знаком |
unsigned long | 4 | 0…4 294 967 295 | Представляет целое положительное 32-битное значение |
float / double | 4 | -3,4028235E+38…+3,4028235E+38 | Представляет вещественное 32-битное значение со знаком |