Arduino API

Краткий справочник по языку программирования Arduino. Данный документ — это сжатая версия полного справочника Arduino API.

Обратите внимание: статья находится в процессе доработки.

Функции

Digital I/O

Метод и параметры

Описание

Возвращает

int digitalRead(int pin)

Считывает состояние цифрового пина.

int

void digitalWrite(int pin, int state)

Записывает состояние в цифровой пин.

Ничего

void pinMode(int pin, int mode) *

Задаёт режим работы пина.

Ничего

*Доступные режимы:

  • INPUT (0)

  • OUTPUT (1)

  • INPUT_PULLUP (2)

  • INPUT_PULLDOWN (3)

  • OUTPUT_OPENDRAIN (4)

Analog I/O

Метод и параметры

Описание

Возвращает

int analogRead(int pin)

Считывает значение аналогового пина в 10-битном разрешении (0–1023). *

int

void analogReadResolution(int resolution)

Устанавливает разрешение АЦП в битах.

Ничего

void analogReference(int reference)

Изменяет опорное напряжение для платы. **

Ничего

void analogWrite(int pin, int value)

Записывает значение на PWM-пин в 8-битном разрешении (0–255). **

Ничего

void analogWriteResolution(int resolution)

Устанавливает разрешение записи для платы.

Ничего

  • *Диапазон значений зависит от разрешения: 0–1023 при 10-битном, 0–4096 при 12-битном и т.д.

  • **Каждая плата/архитектура поддерживает определённый набор опорных напряжений.

  • ***Диапазон значений зависит от разрешения: по умолчанию 0–255 (8 бит).

Advanced I/O

Метод и параметры

Описание

Возвращает

void tone(int pin, int frequency, long duration)

Генерирует прямоугольный сигнал на указанном пине со скважностью 50%.

Ничего

void noTone(int pin)

Останавливает генерацию прямоугольного сигнала на указанном пине.

Ничего

long pulseIn(int pin, int state, long timeout)

Считывает импульс (HIGH или LOW) на пине и возвращает длительность импульса (в микросекундах).

long

long pulseInLong(int pin, int state, long timeout)

Возвращает длительность импульса (в микросекундах).

long

int shiftIn(int pin, int clockPin, int bitOrder) *

Побитово считывает байт данных и возвращает значение считанного бита.

byte

void shiftOut(int pin, int clockPin, int bitOrder, byte value) **

Побитово выводит байт данных.

Ничего

  • *Параметр bitOrder принимает значение MSBFIRST (1) или LSBFIRST (0) — старший или младший бит первым.

  • **Пин, используемый для shiftOut(), должен быть настроен как OUTPUT с помощью pinMode().

Time

Метод и параметры

Описание

Возвращает

void delay(long milliseconds)

Останавливает выполнение программы на указанное количество миллисекунд.

Ничего

void delayMicroseconds(int microseconds)

Останавливает выполнение программы на указанное количество микросекунд.

Ничего

long millis()

Возвращает количество миллисекунд, прошедших с момента запуска программы.

long

long micros()

Возвращает количество микросекунд, прошедших с момента запуска программы.

long

Math

Метод и параметры

Описание

Возвращает

int abs(int value)

Вычисляет абсолютное значение числа.

int

int constrain(int value, int min, int max)

Ограничивает число заданным диапазоном.

int

long map(long val, long min, long max, long newMin, long newMax)

Перемапирует число из одного диапазона в другой.

long

int max(int val1, int val2)

Возвращает большее из двух значений.

int

int min(int val1, int val2)

Возвращает меньшее из двух значений.

int

double pow(double base, double exponent)

Возводит основание в степень.

double

int sq(int value)

Вычисляет квадрат числа.

int

double sqrt(double value)

Вычисляет квадратный корень числа.

double

Trigonometry

Метод и параметры

Описание

Возвращает

cos(double angle)

Вычисляет косинус угла в радианах.

double

sin(double angle)

Вычисляет синус угла в радианах.

double

tan(double angle)

Вычисляет тангенс угла в радианах.

double

Characters

Метод и параметры

Описание

Возвращает

boolean isAlpha(char c)

Проверяет, является ли символ буквенным.

boolean

boolean isAlphaNumeric(char c)

Проверяет, является ли символ буквенно-цифровым.

boolean

boolean isAscii(char c)

Проверяет, является ли символ 7-битным ASCII-символом.

boolean

boolean isControl(char c)

Проверяет, является ли символ управляющим.

boolean

boolean isDigit(char c)

Проверяет, является ли символ цифрой (0–9).

boolean

boolean isGraph(char c)

Проверяет, является ли символ печатным, исключая пробел.

boolean

boolean isHexadecimalDigit(char c)

Проверяет, является ли символ шестнадцатеричной цифрой (0–9, A–F, a–f).

boolean

boolean isLowerCase(char c)

Проверяет, является ли символ строчной буквой.

boolean

boolean isPrintable(char c)

Проверяет, является ли символ печатным, включая пробел.

boolean

boolean isPunct(char c)

Проверяет, является ли символ знаком препинания.

boolean

boolean isSpace(char c)

Проверяет, является ли символ пробельным.

boolean

boolean isUpperCase(char c)

Проверяет, является ли символ заглавной буквой.

boolean

boolean isWhitespace(char c)

Проверяет, является ли символ пробельным согласно методу isSpaceChar().

boolean

Random Numbers

Метод и параметры

Описание

Возвращает

int random()

Генерирует псевдослучайное число от 0 до RAND_MAX.

int

void randomSeed(unsigned long seed)

Инициализирует генератор случайных чисел.

Ничего

Bits and Bytes

Метод и параметры

Описание

Возвращает

boolean bit(int value, int bitNumber)

Получает значение конкретного бита.

boolean

void bitClear(int &value, int bit)

Сбрасывает конкретный бит.

Ничего

boolean bitRead(int value, int bitNumber)

Считывает значение конкретного бита.

boolean

void bitSet(int &value, int bit)

Устанавливает конкретный бит.

Ничего

void bitWrite(int &value, int bit, int bitValue)

Записывает значение в конкретный бит.

Ничего

byte highByte(int value)

Возвращает старший байт значения типа int.

byte

byte lowByte(int value)

Возвращает младший байт значения типа int.

byte

External Interrupts

Метод и параметры

Описание

Возвращает

void attachInterrupt(int pin, void (*function)(void), int mode)

Подключает прерывание к указанному пину.

Ничего

void detachInterrupt(int pin)

Отключает прерывание от указанного пина.

Ничего

Interrupts

Метод и параметры

Описание

Возвращает

void interrupts()

Глобально включает прерывания.

Ничего

void noInterrupts()

Глобально отключает прерывания.

Ничего

Stream

Метод и параметры

Описание

Возвращает

int available()

Возвращает количество байт, доступных в буфере Serial.

int

int read()

Считывает следующий байт из буфера Serial.

int

void flush()

Ожидает завершения передачи исходящих данных.

Ничего

int find(char *target)

Ищет целевую строку в буфере Serial.

int

int findUntil(char *target, char *terminate)

Ищет целевую строку до обнаружения строки-терминатора.

int

int peek()

Возвращает следующий байт из буфера Serial, не извлекая его.

int

int readBytes(char *buffer, int length)

Считывает символы из буфера Serial в массив.

int

int readBytesUntil(char terminator, char *buffer, int length)

Считывает символы из буфера Serial в массив до обнаружения терминатора.

int

String readString()

Считывает символы из буфера Serial в строку String до символа новой строки.

String

String readStringUntil(char terminator)

Считывает символы из буфера Serial в строку String до указанного терминатора.

String

int parseInt()

Считывает символы из буфера Serial и преобразует их в целое число.

int

float parseFloat()

Считывает символы из буфера Serial и преобразует их в число с плавающей точкой.

float

void setTimeout(unsigned long timeout)

Задаёт максимальное время ожидания для find(), findUntil(), parseInt() и parseFloat().

Ничего

Serial

Метод и параметры

Описание

Возвращает

if(Serial)

Проверяет, доступен ли объект Serial.

boolean

int available()

Возвращает количество байт, доступных для чтения.

int

int availableForWrite()

Возвращает количество байт, доступных для записи.

int

void begin(unsigned long baudrate)

Инициализирует Serial-соединение с указанной скоростью передачи данных.

void

void end()

Завершает Serial-соединение.

void

int find(char *target)

Ищет целевую строку в буфере Serial.

int

int findUntil(char *target, char *terminate)

Ищет целевую строку до обнаружения строки-терминатора.

int

void flush()

Ожидает завершения передачи исходящих данных.

void

float parseFloat()

Считывает символы из буфера Serial и преобразует их в число с плавающей точкой.

float

int parseInt()

Считывает символы из буфера Serial и преобразует их в целое число.

int

int peek()

Возвращает следующий байт из буфера Serial, не извлекая его.

int

size_t print()

Выводит данные в Serial-порт.

size_t

size_t println()

Выводит данные в Serial-порт с символом новой строки.

size_t

int read()

Считывает следующий байт из буфера Serial.

int

int readBytes(char *buffer, size_t length)

Считывает символы из буфера Serial в массив.

int

int readBytesUntil(char terminator, char *buffer, size_t length)

Считывает символы из буфера Serial в массив до обнаружения терминатора.

int

String readString()

Считывает символы из буфера Serial в строку String до символа новой строки.

String

String readStringUntil(char terminator)

Считывает символы из буфера Serial в строку String до указанного терминатора.

String

void setTimeout(unsigned long timeout)

Задаёт максимальное время ожидания для find(), findUntil(), parseInt() и parseFloat().

void

size_t write(uint8_t)

Записывает байт в Serial-порт.

size_t

void serialEvent()

Вызывается, когда в буфере Serial появляются данные.

void

SPI

Метод и параметры

Описание

Возвращает

SPISettings(uint32_t clock, uint8_t bitOrder, uint8_t dataMode)

Создаёт объект SPISettings с указанными частотой, порядком бит и режимом данных.

SPISettings

void begin()

Инициализирует библиотеку SPI.

void

void beginTransaction(SPISettings settings)

Начинает SPI-транзакцию с указанными настройками.

void

void endTransaction()

Завершает текущую SPI-транзакцию.

void

void end()

Завершает работу библиотеки SPI.

void

void setBitOrder(uint8_t bitOrder)

Устанавливает порядок бит (MSBFIRST или LSBFIRST) для SPI-связи.

void

void setClockDivider(uint8_t divider)

Устанавливает делитель тактовой частоты для SPI-связи.

void

void setDataMode(uint8_t dataMode)

Устанавливает режим данных для SPI-связи.

void

byte transfer(byte value)

Передаёт байт по SPI.

byte

void usingInterrupt(int interruptNumber)

Указывает, какое прерывание использовать для SPI-транзакций.

void

I2C (Wire)

Метод и параметры

Описание

Возвращает

void begin()

Инициализирует библиотеку Wire.

void

void end()

Завершает работу библиотеки Wire.

void

int requestFrom(int address, int quantity)

Запрашивает данные у ведомого устройства с указанным адресом и количеством байт.

int

void beginTransmission(int address)

Начинает передачу данных ведомому устройству с указанным адресом.

void

int endTransmission()

Завершает передачу и возвращает статус.

int

size_t write(uint8_t data)

Записывает байт на шину I2C.

size_t

int available()

Возвращает количество байт, доступных для чтения.

int

int read()

Считывает байт с шины I2C.

int

void setClock(uint32_t frequency)

Устанавливает тактовую частоту I2C.

void

void onReceive(void (*function)(int))

Задаёт функцию, вызываемую при получении данных ведомым устройством.

void

void onRequest(void (*function)(void))

Задаёт функцию, вызываемую, когда ведущий запрашивает данные у ведомого.

void

void setWireTimeout(uint32_t timeout)

Устанавливает таймаут для операций I2C.

void

void clearWireTimeoutFlag()

Сбрасывает флаг таймаута.

void

bool getWireTimeoutFlag()

Возвращает состояние флага таймаута.

bool

Переменные

Перечисления (Enums)

Тип перечисления

Значения

Описание

PinStatus

HIGH / LOW

Логические значения HIGH и LOW (1 и 0).

PinMode

INPUT / OUTPUT / INPUT_PULLUP / INPUT_PULLDOWN / OUTPUT_OPENDRAIN

Константы для задания режима пина (0, 1, 2, 3, 4).

LED_BUILTIN

Константа, обозначающая встроенный светодиод. *

true / false

Булевы константы: истина и ложь (1 и 0).

Преобразование типов

Метод и параметры

Описание

(unsigned int)

Приведение к типу unsigned int.

(unsigned long)

Приведение к типу unsigned long.

byte()

Приведение к типу byte.

char()

Приведение к типу char.

float()

Приведение к типу float.

int()

Приведение к типу int.

long()

Приведение к типу long.

word()

Приведение к типу word.

Типы данных

Метод и параметры

Описание

array

Набор переменных одного типа.

bool

Булевый тип данных.

boolean

Булевый тип данных (синоним bool).

byte

8-битный беззнаковый тип данных.

char

8-битный символьный тип данных.

double

Число с плавающей точкой двойной точности.

float

Число с плавающей точкой одинарной точности.

int

Целочисленный тип данных.

long

Длинный целочисленный тип данных.

short

Короткий целочисленный тип данных.

size_t

Беззнаковый целочисленный тип данных.

string

Последовательность символов (не примитивный тип).

String()

Класс String в Arduino.

unsigned char

Беззнаковый 8-битный символьный тип данных.

unsigned int

Беззнаковый целочисленный тип данных.

unsigned long

Беззнаковый длинный целочисленный тип данных.

void

Обозначает отсутствие типа.

word

16-битный беззнаковый тип данных.

Область видимости и квалификаторы переменных

Метод и параметры

Описание

const

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

scope

Не является ключевым словом; обозначает область видимости переменной.

static

Квалификатор для объявления статических переменных.

volatile

Квалификатор для объявления волатильных переменных.

Утилиты

Метод и параметры

Описание

PROGMEM

Квалификатор для хранения данных в памяти программы.

sizeof()

Оператор для определения размера типа данных или переменной.

Структура

Скетч

Метод и параметры

Описание

void loop()

Основная функция для непрерывного выполнения кода.

void setup()

Функция инициализации, вызывается один раз при запуске.

Управляющие конструкции

Метод и параметры

Описание

break

Выходит из цикла или оператора switch.

continue

Пропускает оставшуюся часть итерации цикла.

do...while

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

else

Часть конструкции if-else.

for

Создаёт цикл с заданными инициализацией, условием и инкрементом.

goto

Передаёт управление помеченной инструкции.

if

Условный оператор для принятия решений.

return

Выходит из функции и опционально возвращает значение.

switch...case

Оператор множественного ветвления.

while

Создаёт цикл с заданным условием.

Дополнительный синтаксис

Метод и параметры

Описание

#define (define)

Макроопределение для подстановки кода.

#include (include)

Включает файл в исходный код.

/* */ (блочный комментарий)

Блочный комментарий для нескольких строк.

// (однострочный комментарий)

Однострочный комментарий.

; (точка с запятой)

Завершение оператора.

{} (фигурные скобки)

Блок кода, используемый с управляющими конструкциями.

Арифметические операторы

Метод и параметры

Описание

% (остаток)

Оператор деления с остатком (модуло).

* (умножение)

Оператор умножения.

+ (сложение)

Оператор сложения.

- (вычитание)

Оператор вычитания.

/ (деление)

Оператор деления.

= (оператор присваивания)

Оператор присваивания.

Операторы сравнения

Метод и параметры

Описание

!= (не равно)

Проверяет, не равны ли два значения.

< (меньше)

Проверяет, меньше ли левое значение правого.

<= (меньше или равно)

Проверяет, меньше ли левое значение правого или равно ему.

== (равно)

Проверяет, равны ли два значения.

> (больше)

Проверяет, больше ли левое значение правого.

>= (больше или равно)

Проверяет, больше ли левое значение правого или равно ему.

Булевы операторы

Метод и параметры

Описание

! (логическое НЕ)

Инвертирует логическое значение: истина становится ложью и наоборот.

&& (логическое И)

Оператор логического И, возвращает истину, если оба операнда истинны.

|| (логическое ИЛИ)

Оператор логического ИЛИ, возвращает истину, если хотя бы один операнд истинен.

Операторы доступа к указателям

Метод и параметры

Описание

& (оператор ссылки)

Возвращает адрес переменной в памяти.

* (оператор разыменования)

Обращается к значению, на которое указывает указатель.

Побитовые операторы

Метод и параметры

Описание

& (побитовое И)

Выполняет побитовую операцию AND.

<< (сдвиг влево)

Сдвигает биты влево.

>> (сдвиг вправо)

Сдвигает биты вправо.

^ (побитовое исключающее ИЛИ)

Выполняет побитовую операцию XOR (исключающее ИЛИ).

| (побитовое ИЛИ)

Выполняет побитовую операцию OR.

~ (побитовое НЕ)

Инвертирует все биты.

Составные операторы

Метод и параметры

Описание

%= (остаток с присваиванием)

Выполняет операцию деления с остатком и присваивает результат левому операнду.

&= (побитовое И с присваиванием)

Выполняет побитовую операцию AND и присваивает результат левому операнду.

*= (умножение с присваиванием)

Умножает левый операнд на правый и присваивает результат левому операнду.

++ (инкремент)

Увеличивает значение операнда на 1.

+= (сложение с присваиванием)

Прибавляет правый операнд к левому и присваивает результат левому операнду.

-- (декремент)

Уменьшает значение операнда на 1.

-= (вычитание с присваиванием)

Вычитает правый операнд из левого и присваивает результат левому операнду.

/= (деление с присваиванием)

Делит левый операнд на правый и присваивает результат левому операнду.

^= (побитовое XOR с присваиванием)

Выполняет побитовую операцию XOR и присваивает результат левому операнду.

|= (побитовое ИЛИ с присваиванием)

Выполняет побитовую операцию OR и присваивает результат левому операнду.