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.println(1.23456, 0) - выведет "1"
- Serial.println(1.23456, 2) - выведет "1.23"
- Serial.println(1.23456, 4) - выведет "1.2346"
Функции Serial.print() можно передавать и строки, записанные во флеш-память контроллера. Для этого их нужно заключить в конструкцию F(). Например:
- Serial.print(F(“Hello World”))
Для отправки отдельного байта используйте функцию Serial.write().
Синтаксис
Serial.print(val) Serial.print(val, format)
Параметры
val: значение, которое необходимо вывести - любой тип данных
format: определяет систему счисления (для целочисленных типов), а также количество десятичных знаков после запятой (для чисел с плавающей точкой).
Возвращаемые значения
size_t (long): функция print() возвращает количество выведенных байт. Считывание этого значения не обязательно.
Пример
/* Использования цикла FOR для обработки данных и вывода чисел в различных форматах. */ int x = 0; // переменная void setup() { Serial.begin(9600); // открываем последовательный порт на скорости 9600 бод } void loop() { // print labels 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.print("\t"); for(x=0; x< 64; x++){ // немного ASCII-графики, можете изменить код по своему вкусу // выводим значение в различных форматах: Serial.print(x); // выводим как десятичное число - то же, что и формат "DEC" Serial.print("\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(""); // выводим еще один символ возврата каретки }
Совет
Во всех версиях Ардуино, начиная с версии 1.0, последовательная передача данных осуществляется асинхронно, вследствие чего функция Serial.print() завершается до самой отправки данных.