Вернуться к классу 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.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() завершается до самой отправки данных.

Смотрите также