Функція print()

Документація

Serial

print()

Виводить дані на серійний порт у вигляді тексту ASCII, який здатні прочитати люди. Ця команда може набувати багатьох форм. Числа виводяться, використовуючи символ ASCII для кожної цифри. Дані типу float так само друкуються як цифри 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(значення)
Serial.print(значення, формат)

Параметри
значення: значення, яке слід надрукувати — будь-який тип даних
формат: визначає число бази (для цілих типів даних) або число десяткових знаків (для float)

Повертає
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 chart, змінити відповідно

    // надрукувати у багатьох форматах:
    Serial.print(x);       // надрукувати як ASCII-закодований десятковий знак - так само, як // "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() повернеться перед передачею будь-яких символів.

Повернутись до головної

Коментарі 0

Тільки зареєстровані та авторизовані користувачі можуть залишати коментарі.