🤓
Конструкции языка программирования Arduino
On this page
Программы для Arduino пишутся на языке Arduino C (C++ с фреймворком Wiring).
Директивы
#include
cpp
// Подключает указанный файл#include <stdio.h>#include "stdio.h"
#define, #undef
cpp
// Определяет идентификатор#define LED_PIN 13digitalWrite(LED_PIN, HIGH);// Сбрасывает определение идентификатора#undef LED_PIN
#ifdef, #ifndef
cpp
// Выполняет действие если идентификатор определен#ifdef LED_PINdigitalWrite(LED_PIN, HIGH);#endif// Выполняет действие если идентификатор не определен#ifndef PRODUCTIONSerial.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 10const 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-битное значение со знаком |