Serial.print()
Описание
Выводит данные в последовательный порт в виде читаемого человеком ASCII-текста. Эта команда может принимать множество форм. Числа выводятся с использованием ASCII-символа для каждой цифры. Числа с плавающей точкой выводятся аналогично ASCII-цифрам, по умолчанию — с двумя десятичными знаками. Байты отправляются как один символ. Символы и строки отправляются как есть. Например:
Serial.print(78)выдаёт «78»Serial.print(1.23456)выдаёт «1.23»Serial.print('N')выдаёт «N»Serial.print("Hello world.")выдаёт «Hello world.»
Необязательный второй параметр задаёт основание (формат) для использования; допустимые значения: BIN (двоичная, основание 2), OCT (восьмеричная, основание 8), DEC (десятичная, основание 10), HEX (шестнадцатеричная, основание 16). Для чисел с плавающей точкой этот параметр задаёт количество десятичных знаков. Например:
Serial.print(78, BIN)выдаёт «1001110»Serial.print(78, OCT)выдаёт «116»Serial.print(78, DEC)выдаёт «78»Serial.print(78, HEX)выдаёт «4E»Serial.print(1.23456, 0)выдаёт «1»Serial.print(1.23456, 2)выдаёт «1.23»Serial.print(1.23456, 4)выдаёт «1.2346»
Можно передавать в Serial.print() строки, расположенные во flash-памяти, обернув их в F(). Например:
Serial.print(F("Hello World"))
Чтобы отправить данные без преобразования в их символьное представление, используйте Serial.write().
Синтаксис
Используйте следующую функцию для вывода любых данных по последовательной связи:
Serial.print(val)Serial.print(val, format)
Параметры
Функция принимает следующие объекты и параметры:
Serial: объект последовательного порта. Список доступных последовательных портов для каждой платы см. на главной странице Serial.val: значение для вывода. Допустимые типы данных: любой тип данных.format: задаёт основание системы счисления (для целочисленных типов данных) или количество десятичных знаков (для типов с плавающей точкой).
Возвращаемое значение
Функция возвращает количество записанных байт, хотя чтение этого числа необязательно. Тип данных: size_t.
Пример кода
/*
Использует цикл for для вывода чисел в различных форматах.
*/
void setup() {
Serial.begin(9600); // открыть последовательный порт на 9600 бит/с:
}
void loop() {
// вывести подписи
Serial.print("NO FORMAT"); // выводит метку
Serial.print("\t"); // выводит табуляцию
Serial.print("DEC");
Serial.print("\t");
Serial.print("HEX");
Serial.print("\t");
Serial.print("OCT");
Serial.print("\t");
Serial.print("BIN");
Serial.println(); // возврат каретки после последней метки
for (int x = 0; x < 64; x++) { // только часть таблицы ASCII, измените под нужды
// вывести в нескольких форматах:
Serial.print(x); // вывести как ASCII-кодированное десятичное — то же, что "DEC"
Serial.print("\t\t"); // вывести две табуляции для соответствия длине метки
Serial.print(x, DEC); // вывести как ASCII-кодированное десятичное
Serial.print("\t"); // выводит табуляцию
Serial.print(x, HEX); // вывести как ASCII-кодированное шестнадцатеричное
Serial.print("\t"); // выводит табуляцию
Serial.print(x, OCT); // вывести как ASCII-кодированное восьмеричное
Serial.print("\t"); // выводит табуляцию
Serial.println(x, BIN); // вывести как ASCII-кодированное двоичное
// затем добавляет возврат каретки через "println"
delay(200); // задержка 200 миллисекунд
}
Serial.println(); // выводит ещё один возврат каретки
}
Примечания и предупреждения
Примечание
Информацию об асинхронности Serial.print() см. в разделе «Примечания и предупреждения» страницы справочника Serial.write().