Сериал.принт() против Сериал.принтлн() у Ардуину

Serial Print Protiv Serial Println U Arduinu



Ардуино је популарна плоча микроконтролера која се обично користи за „уради сам“ пројекте, роботику и ИоТ уређаје. Једна од битних карактеристика Ардуина је размена података са рачунарима путем серијске комуникације.

Сериал.принт() и Сериал.принтлн() су две најчешће коришћене команде за серијску комуникацију у Ардуину. Овај чланак ће покрити разлике између Сериал.принт() и Сериал.принтлн() и како утичу на ваш Ардуино пројекат.

Преглед садржаја







Шта је серијска комуникација

Пре него што заронимо у разлике између Сериал.принт() и Сериал.принтлн() , хајде да прво разумемо шта серијска комуникација је. Серијска комуникација је процес преноса и пријема података. Коришћењем овог Ардуина може се преносити један по један бит података, уз серијски комуникациони протокол. У Ардуину користимо серијски објекат за размену података са рачунаром помоћу УСБ порта.



Серијска комуникација је од суштинског значаја за отклањање грешака и праћење понашања Ардуино пројекта. Можете га користити за штампање очитавања сензора, кода за отклањање грешака или за приказ порука на екрану рачунара.



Сериал.принт()

Сериал.принт() је функција која шаље податке на серијски порт у континуираном току. Омогућава вам да пошаљете податке као стринг, карактер или нумеричку вредност. На пример, дати код шаље стринг „ Здраво Свете! ” на Ардуино серијски порт:





Сериал.принт ( 'Здраво Свете!' ) ;

Сериал.принт() не додаје никакве преломе реда или повратне ознаке на крају података, тако да се подаци штампају непрекидно у истом реду.

Сериал.принтлн()

Сериал.принтлн() је сличан Сериал.принт() , али додаје знак за прелом реда (\н) на крају података. То нам показује сваки пут Сериал.принтлн() функција, следећи исказ за штампање ће почети у новом реду. На пример, дати код шаље стринг „ Здраво Свете! ” и додаје прелом реда:



Сериал.принтлн ( 'Здраво Свете!' ) ;

Ово ће одштампати „ Здраво Свете! ” на серијском терминалу Ардуина.

Разлика између Сериал.принт() и Сериал.принтлн()

Примарна разлика између Сериал.принт() и Сериал.принтлн() је ли то Сериал.принт() шаље податке у континуираном току, док Сериал.принтлн() шаље податке са преломом реда на крају.

Сада ћемо покрити пример кода који објашњава рад обе ове функције.

Пример Сериал.принт().

Следи код који објашњава употребу Сериал.принт() :

празнина подешавања ( ) {
Сериал.бегин ( 9600 ) ; // иницијализовати серијску комуникацију на 9600 број бауда
}

празнина петља ( ) {
инт рандомВалуе = насумично ( 0 , 1023 ) ; // генерисати случајну вредност између 0 и 1023

Сериал.принт ( 'Случајна вредност: ' ) ; // одштампати етикету
Сериал.принт ( рандомВалуе ) ; // одштампати случајну вредност у новом реду

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

Овај код иницијализује серијску комуникацију са брзином преноса од 9600 у функцији сетуп(). Функција лооп() затим генерише насумичну целобројну вредност између 0 и 1023 користећи функцију рандом() и чува је у имену променљиве рандомВалуе .

Тхе Сериал.принт() функција се затим користи за штампање етикете „ Случајна вредност: ” на серијски монитор, након чега следи стварна насумична вредност, која се штампа у истој линији без знака новог реда користећи Сериал.принт() .

Тхе кашњење() функција се користи за паузирање извршавања петље на 2000 милисекунди (2 секунде).

Излаз
У излазу можемо видети да су све вредности одштампане у једном реду без икаквог прелома реда.

Пример Сериал.принтлн().

Дати код показује употребу Сериал.принтлн() функција у Ардуину.

празнина подешавања ( ) {
Сериал.бегин ( 9600 ) ; // иницијализовати серијску комуникацију на 9600 број бауда
}

празнина петља ( ) {
инт рандомВалуе = насумично ( 0 , 1023 ) ; // генерисати случајну вредност између 0 и 1023

Сериал.принт ( 'Случајна вредност: ' ) ; // одштампати етикету
Сериал.принтлн ( рандомВалуе ) ; // одштампати случајну вредност у новом реду

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

Код за Сериал.принтлн() је сличан горе наведеном Сериал.принт() код. Једина разлика овде су насумичне вредности које се генеришу и штампају са преломом реда који недостаје у Сериал.принт() код.

Излаз
Све вредности се штампају у новом реду као што смо користили Сериал.принт() уместо Сериал.принтлн() :

Закључак

Серијска комуникација је суштински аспект Ардуино програмирања. Тхе Сериал.принт() и Сериал.принтлн() функције су корисне за приказивање података на Ардуино серијском терминалу. Разумевање разлике између њих и њихово правилно коришћење може вам помоћи да отклоните грешке у коду и комуницирате са спољним уређајима.