Arduino библиотека Serial

Библиотека Serial — это стандартная библиотека, которая подключается в скетчи автоматически. Она используется для передачи данных через последовательный порт Arduino. В большинстве плат ардуино доступен 1 интерфейс Serial. Последовательный порт работает с двумя цифровыми пинами Ардуино 0-ой (RX) и 1-ый (TX). В Arduino Mega таких интерфейсов 3. Для доступа к интерфейсу связи необходимо использовать ключевой слово Serial (Serial1 и Serial2 для Arduino Mega).

Теперь рассмотрим доступные функции библиотеки Serial:

if(Serial)

Условие с проверкой готовности порта к работе. Используется такая конструкция довольно редко, потому что обычно интерфейс доступен.

Синтаксис, параметры, возвращаемые значения, пример

available()

Проверяет число байтов доступных для считывания. Данная функция показывает какое количество данных уже пришло и хранится в буфере обмена. Размер буфера последовательного порта 64 байта.

Синтаксис, параметры, возвращаемые значения, пример

Синтаксис

Serial.available()

Параметры

Нет

Возвращаемые значения

Число байт доступных для чтения

availableForWrite()

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

Синтаксис, параметры, возвращаемые значения, пример

Синтаксис

Serial.availableForWrite()

Параметры

Нет

Возвращаемые значения

Число байт доступных для записи

begin()

Данная функция устанавливает соединение на определенной скорости.

Синтаксис, параметры, возвращаемые значения, пример

Синтаксис

Serial.begin(speed, config)

Параметры

speed - Обязательный параметр. Скорость бит в секунду (бод). Доступные значения: 300, 600, 1200, 2400, 4800, 9600, 14400, 19200, 28800, 38400, 57600 или 115200

config - Необязательный параметр. Задает биты данных, биты четности и стоп-биты. Доступные значения: SERIAL_5N1, SERIAL_6N1, SERIAL_7N1, SERIAL_8N1 (это значение задано по умолчанию), SERIAL_5N2, SERIAL_6N2, SERIAL_7N2, SERIAL_8N2, SERIAL_5E1, SERIAL_6E1, SERIAL_7E1, SERIAL_8E1, SERIAL_5E2, SERIAL_6E2, SERIAL_7E2, SERIAL_8E2, SERIAL_5O1, SERIAL_6O1, SERIAL_7O1, SERIAL_8O1, SERIAL_5O2, SERIAL_6O2, SERIAL_7O2, SERIAL_8O2

Возвращаемые значения

Нет

end()

Отключает соединение через последовательный порт и освобождает пины RX и TX.

Синтаксис, параметры, возвращаемые значения, пример

Синтаксис

Serial.end();

Параметры

Нет

Возвращаемые значения

Нет

find()

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

Синтаксис, параметры, возвращаемые значения, пример

Синтаксис

Serial.find(needle)

Параметры

needle - Обязательный параметр. Строка которую нужно найти

Возвращаемые значения

true - Если строка найдена.
false - Если строка не найдена.

findUntil()

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

Синтаксис, параметры, возвращаемые значения, пример

Синтаксис

Serial.findUntil(needle, terminal);

Параметры

needle - Обязательный параметр. Строка которую нужно найти
terminal - Обязательный параметр. Терминальная строка которую нужно найти

Возвращаемые значения

true - Если строка найдена.
false - Если строка не найдена.

flush()

Очищает буфер обмена последовательного порта

Синтаксис, параметры, возвращаемые значения, пример

Синтаксис

Serial.flush();

Параметры

Нет

Возвращаемые значения

Нет

parseFloat()

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

Синтаксис, параметры, возвращаемые значения, пример

Синтаксис

Serial.parseFloat();

Параметры

Нет

Возвращаемые значения

Число с плавающей точкой (float)

parseInt()

Возвращает первое найденное в буфере обмена целое число. Все остальные символы игнорируются.

Синтаксис, параметры, возвращаемые значения, пример

Синтаксис

Serial.parseInt(skipChar);

Параметры

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

Возвращаемые значения

Целое число (long) или 0, если не найдено цифр.

peek()

Возвращает первый байт данных из буфера.

Синтаксис, параметры, возвращаемые значения, пример

Синтаксис

Serial.peek();

Параметры

Нет

Возвращаемые значения

Первый байт входящих последовательных данных (int). Если данных нет то вернет "-1"

print()

Функция отправляет данные в последовательный порт в виде ASCII-текста.

Синтаксис, параметры, возвращаемые значения, пример

Синтаксис

Serial.print(val, format);

Параметры

val - обязательный параметр. Данные, которые необходимо отправить.
format - Необязательный параметр. Форматирует отправляемые данные. Может принимать следующие значения:
BIN - Двоичный формат.
OCT - Восьмеричный формат.
DEC - Десятичный формат
HEX - Шестнадцатиричный формат.
0 - Округление числа до целых.
2 - Округление число до сотых.

Возвращаемые значения

Количество записанных байтов (long)

println()

Отправляет данные в виде ASCII-текста в последовательный порт с символом конца строки (\r) и символом новой строки (\n)

Синтаксис, параметры, возвращаемые значения, пример

Синтаксис

Serial.printIn(val, format)

Параметры

val - обязательный параметр. Данные, которые необходимо отправить.
format - Необязательный параметр. Форматирует отправляемые данные. Может принимать следующие значения:
BIN - Двоичный формат.
OCT - Восьмеричный формат.
DEC - Десятичный формат
HEX - Шестнадцатиричный формат.
0 - Округление числа до целых.
2 - Округление число до сотых.

Возвращаемые значения

Количество записанных байтов (long)

read()

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

Синтаксис, параметры, возвращаемые значения, пример

Синтаксис

Serial.read()

Параметры

Нет

Возвращаемые значения

Первый доступный байт (int).

readBytes()

Считывает символы из последовательного порта в буфер. Завершает свою работу, если сосчитает данные заданной длины или если выйдет время. Время указывается при помощи функции serial.setTimeout().

Возвращаемое значение — количество символов, помещенных в буфер. Если функция вернет значение «0», это значит, что нужных данных найдено не было.

Синтаксис, параметры, возвращаемые значения, пример

Синтаксис

Serial.readBytes(buffer, length);

Параметры

buffer — буфер, в который будут сохраняться входящие байты (char[] или byte[])
length — количество считанных байтов (int)

Возвращаемые значения

Байт

readBytesUntil()

Считывает символы из буфера последовательного порта в массив. Завершает свою работу, если обнаружит терминальный символ, если сосчитает данные заданной длины или если выйдет время. Время указывается с помощью функции Serial.setTimeout().

Синтаксис, параметры, возвращаемые значения, пример

Синтаксис

Serial.readBytesUntil(character, buffer, length);

Параметры

character — символ, который нужно найти (char)
buffer — буфер, в который будут сохранены входящие байты (char[] или byte[])
length — количество байтов, которые нужно сосчитать (int)

Возвращаемые значения

Байт.

readString()

Считывает данные из буфера последовательного порта в строку. Завершает свою работу, если выйдет время. Время указывается в функции Serial.setTimeout().

Синтаксис, параметры, возвращаемые значения, пример

Синтаксис

Serial.readString()

Параметры

Нет.

Возвращаемые значения

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

readStringUntil()

Считывает символы из буфера последовательного порта в строку. Завершает свою работу, если наткнется на терминальный символ или если выйдет время. Время указывается в функции Serial.setTimeout().

Синтаксис, параметры, возвращаемые значения, пример

Синтаксис

Serial.readStringUntil(terminalChar);

Параметры

terminalChar— искомый символ (char)

Возвращаемые значения

Строка, считанная из буфера последовательного порта (до символа, завершающего работу функции).

setTimeout()

Устанавливает время (в миллисекундах), в течение которого функции Serial.readBytesUntil(), Serial.readBytes(), Serial.parseInt() и Serial.parseFloat() должны будут ждать данных, входящих через последовательный порт.

Синтаксис, параметры, возвращаемые значения, пример

Синтаксис

Serial.setTimeout(time);

Параметры

time — время ожидания в миллисекундах (long).

Возвращаемые значения

Нет

write()

Передает через последовательный порт данные в двоичном виде. Данные передаются как байт или как серия байтов. Если вам нужно отправить символы, представляющие цифры какого-либо числа, используйте функцию print().

Синтаксис, параметры, возвращаемые значения, пример

Синтаксис

Serial.write(val, len)

Параметры

val — значение, строка или буфер для отправки.
len — размер буфера

Возвращаемые значения

Байт или количество отправленных байтов

serialEvent

Автоматически вызывается, когда есть доступные данные. Для захвата этих данных нужно воспользоваться функцией Serial.read().

Синтаксис, параметры, возвращаемые значения, пример

Синтаксис

void serialEvent(){
// statements
}

Параметры

statements — любые корректные функции, позволяющие делать что-то с поступившими данными.