Serial.print() срещу Serial.println() в Arduino

Serial Print Sresu Serial Println V Arduino



Arduino е популярна микроконтролерна платка, която обикновено се използва за проекти „Направи си сам“, роботика и IoT устройства. Една от основните характеристики на Arduino е да обменя данни с компютри чрез серийна комуникация.

Serial.print() и Serial.println() са две от най-често използваните команди за серийна комуникация в Arduino. Тази статия ще разгледа разликите между Serial.print() и Serial.println() и как те влияят на вашия Arduino проект.

Съдържание







Какво е серийна комуникация

Преди да се потопим в разликите между Serial.print() и Serial.println() , нека първо разберем какво серийна комуникация е. Серийна комуникация е процес на предаване и получаване на данни. Използването на този Arduino може да прехвърля един бит данни наведнъж, със серийния комуникационен протокол. В Arduino използваме серийния обект за обмен на данни с компютър чрез USB порт.



Серийна комуникация е от съществено значение за отстраняване на грешки и наблюдение на поведението на проект на Arduino. Можете да го използвате за отпечатване на показанията на сензора, код за отстраняване на грешки или показване на съобщения на екрана на компютъра.



Serial.print()

Serial.print() е функция, която изпраща данни към серийния порт в непрекъснат поток. Тя ви позволява да изпращате данни като низ, знак или числова стойност. Например даденият код изпраща низ ' Здравей свят! ” към сериен порт на Arduino:





Сериен.печат ( 'Здравей свят!' ) ;

Serial.print() не добавя прекъсвания на редове или връщане на каретка в края на данните, така че данните се отпечатват непрекъснато на един и същ ред.

Serial.println()

Serial.println() е подобен на Serial.print() , но добавя знак за нов ред (\n) в края на данните. Това ни показва това всеки път Serial.println() бъде извикана функция, следващият оператор за печат ще започне на нов ред. Например даденият код изпраща низа „ Здравей свят! ” и добавя нов ред:



Serial.println ( 'Здравей свят!' ) ;

Това ще отпечата „ Здравей свят! ” на серийния терминал на Arduino.

Разлика между Serial.print() и Serial.println()

Основната разлика между Serial.print() и Serial.println() е това Serial.print() изпраща данни в непрекъснат поток, докато Serial.println() изпраща данни с нов ред в края.

Сега ще разгледаме примерния код, който обяснява работата на двете функции.

Serial.print() Пример

Следва кодът, който обяснява използването на Serial.print() :

void настройка ( ) {
Serial.begin ( 9600 ) ; // инициализирайте серийна комуникация при 9600 скорост на предаване
}

празен цикъл ( ) {
int randomValue = случаен ( 0 , 1023 ) ; // генериране на случайна стойност между 0 и 1023

Сериен.печат ( „Случайна стойност:“ ) ; // отпечатайте етикета
Сериен.печат ( randomValue ) ; // отпечатайте произволната стойност на нов ред

забавяне ( 2000 г ) ; // изчакайте за 500 милисекунди, преди да отпечатате отново
}

Този код инициализира серийната комуникация със скорост на предаване от 9600 бода във функцията setup(). След това функцията loop() генерира произволна цяло число между 0 и 1023 с помощта на функцията random() и я съхранява в името на променливата randomValue .

The Serial.print() функцията след това се използва за отпечатване на етикета „ Случайна стойност: ” към серийния монитор, последвано от действителната произволна стойност, която се отпечатва на същия ред без символ за нов ред, използвайки Serial.print() .

The забавяне () се използва за спиране на изпълнението на цикъла за 2000 милисекунди (2 секунди).

Изход
В изхода можем да видим, че всички стойности са отпечатани на един ред без прекъсване на реда.

Serial.println() Пример

Даденият код демонстрира използването на Serial.println() функция в Arduino.

void настройка ( ) {
Serial.begin ( 9600 ) ; // инициализирайте серийна комуникация при 9600 скорост на предаване
}

празен цикъл ( ) {
int randomValue = случаен ( 0 , 1023 ) ; // генериране на случайна стойност между 0 и 1023

Сериен.печат ( „Случайна стойност:“ ) ; // отпечатайте етикета
Serial.println ( randomValue ) ; // отпечатайте произволната стойност на нов ред

забавяне ( 2000 г ) ; // изчакайте за 500 милисекунди, преди да отпечатате отново
}

Кодът за Serial.println() е подобен на горния Serial.print() код. Единствената разлика тук са произволните стойности, които се генерират и отпечатват с нов ред, който липсва в Serial.print() код.

Изход
Всички стойности се отпечатват на нов ред, както сме използвали Serial.print() вместо Serial.println() :

Заключение

Серийна комуникация е съществен аспект от програмирането на Arduino. The Serial.print() и Serial.println() функциите са полезни за показване на данни на серийния терминал Arduino. Разбирането на разликата между тях и правилното им използване може да ви помогне да отстраните грешки в кода си и да комуникирате с външни устройства.