Serial.print() versus Serial.println() in Arduino

Serial Print Versus Serial Println In Arduino



De Arduino is een populair microcontrollerbord dat vaak wordt gebruikt voor doe-het-zelfprojecten, robotica en IoT-apparaten. Een van de essentiële kenmerken van Arduino is het uitwisselen van gegevens met computers via seriële communicatie.

Serieel.print() En Serieel.println() zijn twee van de meest gebruikte commando's voor seriële communicatie in Arduino. Dit artikel behandelt de verschillen tussen Serieel.print() En Serieel.println() en hoe ze uw Arduino-project beïnvloeden.

Inhoudsopgave







Wat is seriële communicatie

Voordat we ingaan op de verschillen tussen Serieel.print() En Serieel.println() , laten we eerst begrijpen wat seriële communicatie is. Seriële communicatie is het proces van het verzenden en ontvangen van gegevens. Met behulp van deze Arduino kan één bit data tegelijk worden overgedragen, met het seriële communicatieprotocol. In Arduino gebruiken we het Serial-object om gegevens uit te wisselen met een pc via een USB-poort.



Seriële communicatie is essentieel voor het debuggen en bewaken van het gedrag van een Arduino-project. U kunt het gebruiken om sensormetingen af ​​te drukken, code te debuggen of berichten op een computerscherm weer te geven.



Serieel.print()

Serieel.print() is een functie die gegevens in een continue stroom naar de seriële poort stuurt. Hiermee kunt u gegevens verzenden als een tekenreeks, een teken of een numerieke waarde. De gegeven code stuurt bijvoorbeeld een string ' Hallo Wereld! 'naar Arduino seriële poort:





Serieel.afdrukken ( 'Hallo Wereld!' ) ;

Serieel.print() voegt geen regeleinden of regelterugloop toe aan het einde van de gegevens, zodat de gegevens doorlopend op dezelfde regel worden afgedrukt.

Serieel.println()

Serieel.println() is gelijkaardig aan Serieel.print() , maar het voegt een regeleindeteken (\n) toe aan het einde van de gegevens. Dit laat ons dat elke keer zien Serieel.println() functie wordt aangeroepen, begint het volgende printstatement op een nieuwe regel. De gegeven code stuurt bijvoorbeeld de string ' Hallo Wereld! ” en voegt een regeleinde toe:



Serial.println ( 'Hallo Wereld!' ) ;

Dit wordt afgedrukt ' Hallo Wereld! ” op de seriële terminal van Arduino.

Verschil tussen Serial.print() en Serial.println()

Het belangrijkste verschil tussen Serieel.print() En Serieel.println() is dat Serieel.print() verzendt gegevens in een continue stroom, terwijl Serieel.println() verzendt gegevens met een regeleinde aan het einde.

Nu zullen we de voorbeeldcode behandelen die deze beide functies uitlegt.

Serial.print() Voorbeeld

Hieronder volgt de code die het gebruik van uitlegt Serieel.print() :

ongeldige opstelling ( ) {
Serieel.begin ( 9600 ) ; // initialiseer seriële communicatie op 9600 baudsnelheid
}

lege lus ( ) {
int willekeurigeWaarde = willekeurig ( 0 , 1023 ) ; // genereer een willekeurige waarde tussen 0 En 1023

Serieel.afdrukken ( 'Willekeurige waarde: ' ) ; // druk het etiket af
Serieel.afdrukken ( willekeurigeWaarde ) ; // print de willekeurige waarde op een nieuwe regel

vertraging ( 2000 ) ; // wachten voor 500 milliseconden voordat er opnieuw wordt afgedrukt
}

Deze code initialiseert de seriële communicatie met een baudrate van 9600 in de setup() functie. De functie loop() genereert vervolgens een willekeurige integerwaarde tussen 0 en 1023 met behulp van de functie random() en slaat deze op in de naam van de variabele willekeurigeWaarde .

De Serieel.print() functie wordt vervolgens gebruikt om het label af te drukken ' Willekeurige waarde: ” naar de seriële monitor, gevolgd door de daadwerkelijke willekeurige waarde, die op dezelfde regel wordt afgedrukt zonder een nieuw regelteken te gebruiken Serieel.print() .

De vertraging() functie wordt gebruikt om de uitvoering van de lus gedurende 2000 milliseconden (2 seconden) te pauzeren.

Uitgang
In de uitvoer kunnen we zien dat alle waarden op één regel worden afgedrukt zonder regeleinde.

Serial.println() Voorbeeld

De gegeven code demonstreert het gebruik van de Serieel.println() functie in Arduino.

ongeldige opstelling ( ) {
Serieel.begin ( 9600 ) ; // initialiseer seriële communicatie op 9600 baudsnelheid
}

lege lus ( ) {
int willekeurigeWaarde = willekeurig ( 0 , 1023 ) ; // genereer een willekeurige waarde tussen 0 En 1023

Serieel.afdrukken ( 'Willekeurige waarde: ' ) ; // druk het etiket af
Serial.println ( willekeurigeWaarde ) ; // print de willekeurige waarde op een nieuwe regel

vertraging ( 2000 ) ; // wachten voor 500 milliseconden voordat er opnieuw wordt afgedrukt
}

De code voor Serieel.println() is vergelijkbaar met het bovenstaande Serieel.print() code. Het enige verschil hier zijn willekeurige waarden die worden gegenereerd en afgedrukt met een regeleinde dat ontbreekt in de Serieel.print() code.

Uitgang
Alle waarden worden op een nieuwe regel afgedrukt zoals we hebben gebruikt Serieel.print() in plaats van Serieel.println() :

Conclusie

Seriële communicatie is een essentieel aspect van Arduino-programmering. De Serieel.print() En Serieel.println() functies zijn handig voor het weergeven van gegevens op de Arduino seriële terminal. Als u het verschil tussen beide begrijpt en ze op de juiste manier gebruikt, kunt u uw code debuggen en communiceren met externe apparaten.