Справочник Arduino API

Справочник по языку программирования Arduino.

Сжатая версия Arduino Language Reference. Этот документ — краткая выжимка (TL;DR) по Arduino API.

Примечание

Обратите внимание: на момент 2024/01/15 эта статья всё ещё находится в работе.

Functions

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)

Записывает значение на пин с поддержкой ШИМ в 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()

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

int

int read()

Читает следующий байт из буфера последовательного порта.

int

void flush()

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

Ничего

int find(char *target)

Ищет целевую строку в буфере последовательного порта.

int

int findUntil(char *target, char *terminate)

Ищет целевую строку до тех пор, пока не будет найдена строка завершения.

int

int peek()

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

int

int readBytes(char *buffer, int length)

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

int

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

Читает символы из буфера до тех пор, пока не встретится терминатор.

int

String readString()

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

String

String readStringUntil(char terminator)

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

String

int parseInt()

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

int

float parseFloat()

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

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)

Ищет целевую строку в буфере последовательного порта.

int

int findUntil(char *target, char *terminate)

Ищет целевую строку до строки завершения.

int

void flush()

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

void

float parseFloat()

Читает символы и преобразует их в float.

float

int parseInt()

Читает символы и преобразует их в int.

int

int peek()

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

int

size_t print()

Печатает данные в последовательный порт.

size_t

size_t println()

Печатает данные с переводом строки.

size_t

int read()

Читает следующий байт из буфера.

int

int readBytes(char *buffer, size_t length)

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

int

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

Читает символы из буфера в буфер до терминатора.

int

String readString()

Читает символы в String до символа новой строки.

String

String readStringUntil(char terminator)

Читает символы в String до указанного терминатора.

String

void setTimeout(unsigned long timeout)

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

void

size_t write(uint8_t)

Записывает байт в последовательный порт.

size_t

void serialEvent()

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

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

Variables

Enums

Тип Enum

Перечисление

Описание

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

Логические константы true и false (1 и 0).

Conversion

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

Описание

(unsigned int)

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

(unsigned long)

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

byte()

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

char()

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

float()

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

int()

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

long()

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

word()

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

Data Types

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

Описание

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-битный беззнаковый тип данных.

Variable Scope & Qualifiers

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

Описание

const

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

scope

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

static

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

volatile

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

Utilities

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

Описание

PROGMEM

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

sizeof()

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

Structure

Sketch

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

Описание

void loop()

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

void setup()

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

Control Structure

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

Описание

break

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

continue

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

do...while

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

else

Часть оператора if-else.

for

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

goto

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

if

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

return

Завершает функцию и опционально возвращает значение.

switch...case

Оператор многоветвистого выбора.

while

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

Further Syntax

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

Описание

#define (define)

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

#include (include)

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

/* */ (block comment)

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

// (single line comment)

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

; (semicolon)

Терминатор оператора.

{} (curly braces)

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

Arithmetic Operators

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

Описание

% (remainder)

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

* (multiplication)

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

+ (addition)

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

- (subtraction)

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

/ (division)

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

= (assignment operator)

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

Comparison Operators

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

Описание

!= (not equal to)

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

< (less than)

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

<= (less than or equal to)

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

== (equal to)

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

> (greater than)

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

>= (greater than or equal to)

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

Boolean Operators

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

Описание

! (logical not)

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

&& (logical and)

Логический оператор AND, возвращает true, если оба операнда истинны.

|| (logical or)

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

Pointer Access Operators

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

Описание

& (reference operator)

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

* (dereference operator)

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

Bitwise Operators

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

Описание

& (bitwise and)

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

<< (bitshift left)

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

>> (bitshift right)

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

^ (bitwise xor)

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

| (bitwise or)

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

~ (bitwise not)

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

Compound Operators

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

Описание

%= (compound remainder)

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

&= (compound bitwise and)

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

*= (compound multiplication)

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

++ (increment)

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

+= (compound addition)

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

-- (decrement)

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

-= (compound subtraction)

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

/= (compound division)

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

^= (compound bitwise xor)

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

|= (compound bitwise or)

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

Совет

Документация Arduino распространяется по лицензии Creative Commons Attribution-Share Alike 4.0.