portfolio website templates

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() возвращает количество выведенных байт. Считывание этого значения не обязательно.


Пример для всех кроме Arduino Mega

// для данных, поступающих через последовательный порт
int incomingByte = 0;
 
void setup() {
  // открываем последовательный порт и задаем скорость обмена 9600 бод
  Serial.begin(9600);
}
 
void loop() {
  // отправляем данные только после их получения:
  if (Serial.available() > 0) {
    // считываем входящий байт:
    incomingByte = Serial.read();
    // показываем, что именно мы получили:
    Serial.print("I received: ");
    Serial.println(incomingByte, DEC);
  }
}

Пример для  Arduino Mega

void setup() {
  Serial.begin(9600);
  Serial1.begin(9600);
}
 
void loop() {
  // считываем с порта номер 0, отправляем на порт 1:
  if (Serial.available()) {
    int inByte = Serial.read();
    Serial1.print(inByte, BYTE);
  }
  // считываем с порта номер 1, отправляем на порт 0:
  if (Serial1.available()) {
    int inByte = Serial1.read();
    Serial.print(inByte, BYTE);
  }
}

© Copyright 2020 BOSHON - Все права защищены