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

Serial Print Vs Serial Println A Arduino



L'Arduino és una placa de microcontroladors popular que s'utilitza habitualment per a projectes de bricolatge, robòtica i dispositius IoT. Una de les característiques essencials d'Arduino és intercanviar dades amb ordinadors mitjançant comunicació sèrie.

Serial.print() i Serial.println() són dues de les ordres més utilitzades per a la comunicació en sèrie a Arduino. Aquest article tractarà les diferències entre Serial.print() i Serial.println() i com afecten el vostre projecte Arduino.

Taula de continguts







Què és la comunicació en sèrie

Abans de submergir-nos en les diferències entre Serial.print() i Serial.println() , primer entenem què comunicació en sèrie és. Comunicació en sèrie és el procés de transmissió i recepció de dades. Amb aquest Arduino es pot transferir un bit de dades alhora, amb el protocol de comunicació sèrie. A Arduino, utilitzem l'objecte sèrie per intercanviar dades amb un ordinador mitjançant un port USB.



Comunicació en sèrie és essencial per depurar i supervisar el comportament d'un projecte Arduino. Podeu utilitzar-lo per imprimir lectures del sensor, codi de depuració o mostrar missatges a la pantalla d'un ordinador.



Serial.print()

Serial.print() és una funció que envia dades al port sèrie en un flux continu. Permet enviar dades com a cadena, caràcter o valor numèric. Per exemple, el codi donat envia una cadena ' Hola món! ” al port sèrie Arduino:





Impressió.sèria ( 'Hola món!' ) ;

Serial.print() no afegeix cap salt de línia ni retorns de carro al final de les dades, de manera que les dades s'imprimeixen contínuament a la mateixa línia.

Serial.println()

Serial.println() és semblant a Serial.print() , però afegeix un caràcter de salt de línia (\n) al final de les dades. Això ens ho demostra cada cop Serial.println() es crida a la funció, la següent instrucció d'impressió començarà en una nova línia. Per exemple, el codi donat envia la cadena ' Hola món! ” i afegeix un salt de línia:



Serial.println ( 'Hola món!' ) ;

Això imprimirà ' Hola món! ” al terminal sèrie d'Arduino.

Diferència entre Serial.print() i Serial.println()

La diferència principal entre Serial.print() i Serial.println() és alló Serial.print() envia dades en un flux continu, mentre Serial.println() envia dades amb un salt de línia al final.

Ara tractarem el codi d'exemple que explica el funcionament d'aquestes dues funcions.

Serial.print() Exemple

A continuació es mostra el codi que explica l'ús de Serial.print() :

configuració de buit ( ) {
Serial.begin ( 9600 ) ; // inicialitzar la comunicació en sèrie a 9600 velocitat de transmissió
}

bucle buit ( ) {
int randomValue = aleatori ( 0 , 1023 ) ; // generar un valor aleatori entre 0 i 1023

Impressió.sèria ( 'Valor aleatori:' ) ; // imprimir l'etiqueta
Impressió.sèria ( valor aleatori ) ; // imprimiu el valor aleatori en una línia nova

retard ( 2000 ) ; // espera per 500 mil·lisegons abans de tornar a imprimir
}

Aquest codi inicialitza la comunicació en sèrie amb una velocitat de transmissió de 9600 a la funció setup(). Aleshores, la funció loop() genera un valor enter aleatori entre 0 i 1023 utilitzant la funció random() i l'emmagatzema al nom de la variable valor aleatori .

El Serial.print() A continuació, s'utilitza la funció per imprimir l'etiqueta ' Valor aleatori: ” al monitor en sèrie, seguit del valor aleatori real, que s'imprimeix a la mateixa línia sense un caràcter de línia nova utilitzant Serial.print() .

El retard() La funció s'utilitza per aturar l'execució del bucle durant 2000 mil·lisegons (2 segons).

Sortida
A la sortida, podem veure que tots els valors s'imprimeixen en una sola línia sense cap salt de línia.

Serial.println() Exemple

El codi donat demostra l'ús de la Serial.println() funció a Arduino.

configuració de buit ( ) {
Serial.begin ( 9600 ) ; // inicialitzar la comunicació en sèrie a 9600 velocitat de transmissió
}

bucle buit ( ) {
int randomValue = aleatori ( 0 , 1023 ) ; // generar un valor aleatori entre 0 i 1023

Impressió.sèria ( 'Valor aleatori:' ) ; // imprimir l'etiqueta
Serial.println ( valor aleatori ) ; // imprimiu el valor aleatori en una línia nova

retard ( 2000 ) ; // espera per 500 mil·lisegons abans de tornar a imprimir
}

El codi per Serial.println() és similar a l'anterior Serial.print() codi. L'única diferència aquí són els valors aleatoris que es generen i s'imprimeixen amb un salt de línia que falta al fitxer Serial.print() codi.

Sortida
Tots els valors s'imprimeixen en una línia nova tal com hem utilitzat Serial.print() en lloc de Serial.println() :

Conclusió

Comunicació en sèrie és un aspecte essencial de la programació d'Arduino. El Serial.print() i Serial.println() Les funcions són útils per mostrar dades al terminal sèrie Arduino. Comprendre la diferència entre ells i utilitzar-los adequadament us pot ajudar a depurar el vostre codi i a comunicar-vos amb dispositius externs.