Serial.print() vs Serial.println() w Arduino

Serial Print Vs Serial Println W Arduino



Arduino to popularna płytka mikrokontrolera, która jest powszechnie używana w projektach DIY, robotyce i urządzeniach IoT. Jedną z podstawowych funkcji Arduino jest wymiana danych z komputerami za pośrednictwem komunikacji szeregowej.

Serial.print() I Serial.println() to dwa najczęściej używane polecenia do komunikacji szeregowej w Arduino. W tym artykule omówimy różnice między Serial.print() I Serial.println() i jak wpływają one na Twój projekt Arduino.

Spis treści







Co to jest komunikacja szeregowa

Zanim zagłębimy się w różnice między Serial.print() I Serial.println() , najpierw zrozummy, co Komunikacja szeregowa Jest. Komunikacja szeregowa to proces przesyłania i odbierania danych. Za pomocą tego Arduino można przesyłać jeden bit danych na raz za pomocą protokołu komunikacji szeregowej. W Arduino używamy obiektu Serial do wymiany danych z komputerem za pomocą portu USB.



Komunikacja szeregowa jest niezbędny do debugowania i monitorowania zachowania projektu Arduino. Możesz go użyć do wydrukowania odczytów czujnika, kodu debugowania lub wyświetlenia komunikatów na ekranie komputera.



Serial.print()

Serial.print() to funkcja, która wysyła dane do portu szeregowego w ciągłym strumieniu. Umożliwia wysyłanie danych w postaci ciągu znaków, znaku lub wartości liczbowej. Na przykład podany kod wysyła ciąg znaków „ Witaj świecie! ” do portu szeregowego Arduino:





Wydruk.seryjny ( 'Witaj świecie!' ) ;

Serial.print() nie dodaje końca wiersza ani powrotu karetki na końcu danych, więc dane są drukowane w sposób ciągły w tym samym wierszu.

Serial.println()

Serial.println() jest podobne do Serial.print() , ale dodaje znak końca wiersza (\n) na końcu danych. Pokazuje nam to za każdym razem Serial.println() wywołana zostanie funkcja, następna instrukcja print rozpocznie się w nowym wierszu. Na przykład podany kod wysyła ciąg znaków „ Witaj świecie! ” i dodaje podział wiersza:



Serial.println ( 'Witaj świecie!' ) ;

Spowoduje to wydrukowanie „ Witaj świecie! ” na terminalu szeregowym Arduino.

Różnica między Serial.print() a Serial.println()

Podstawowa różnica między Serial.print() I Serial.println() czy to Serial.print() wysyła dane w ciągłym strumieniu, podczas gdy Serial.println() wysyła dane z podziałem linii na końcu.

Teraz omówimy przykładowy kod, który wyjaśnia działanie obu tych funkcji.

Serial.print() Przykład

Poniżej znajduje się kod wyjaśniający użycie Serial.print() :

unieważnić konfigurację ( ) {
Serial.początek ( 9600 ) ; // zainicjować komunikację szeregową o godz 9600 szybkość transmisji
}

pusta pętla ( ) {
int wartość losowa = losowo ( 0 , 1023 ) ; // wygenerować losową wartość pomiędzy 0 I 1023

Wydruk.seryjny ( 'Losowa wartość: ' ) ; // wydrukuj etykietę
Wydruk.seryjny ( losowaWartość ) ; // wypisz losową wartość w nowym wierszu

opóźnienie ( 2000 ) ; // Czekać Do 500 milisekund przed ponownym drukowaniem
}

Ten kod inicjuje komunikację szeregową z szybkością 9600 bodów w funkcji setup(). Następnie funkcja loop() generuje losową wartość całkowitą z przedziału od 0 do 1023 za pomocą funkcji random() i zapisuje ją w nazwie zmiennej losowaWartość .

The Serial.print() funkcja jest następnie używana do drukowania etykiety „ Wartość losowa: ” do monitora szeregowego, po którym następuje rzeczywista losowa wartość, która jest drukowana w tej samej linii bez użycia znaku nowej linii Serial.print() .

The opóźnienie() funkcja służy do wstrzymania wykonywania pętli na 2000 milisekund (2 sekundy).

Wyjście
Na wyjściu widzimy, że wszystkie wartości są drukowane w jednym wierszu bez podziału wiersza.

Serial.println() Przykład

Podany kod demonstruje użycie Serial.println() funkcja w Arduino.

unieważnić konfigurację ( ) {
Serial.początek ( 9600 ) ; // zainicjować komunikację szeregową o godz 9600 szybkość transmisji
}

pusta pętla ( ) {
int wartość losowa = losowo ( 0 , 1023 ) ; // wygenerować losową wartość pomiędzy 0 I 1023

Wydruk.seryjny ( 'Losowa wartość: ' ) ; // wydrukuj etykietę
Serial.println ( losowaWartość ) ; // wypisz losową wartość w nowym wierszu

opóźnienie ( 2000 ) ; // Czekać Do 500 milisekund przed ponownym drukowaniem
}

Kod dla Serial.println() jest podobny do powyższego Serial.print() kod. Jedyną różnicą są tutaj losowe wartości, które są generowane i drukowane z podziałem wiersza, którego brakuje w pliku Serial.print() kod.

Wyjście
Wszystkie wartości są drukowane w nowej linii, tak jak użyliśmy Serial.print() zamiast Serial.println() :

Wniosek

Komunikacja szeregowa jest istotnym aspektem programowania Arduino. The Serial.print() I Serial.println() funkcje są przydatne do wyświetlania danych na terminalu szeregowym Arduino. Zrozumienie różnicy między nimi i odpowiednie ich użycie może pomóc w debugowaniu kodu i komunikowaniu się z urządzeniami zewnętrznymi.