Serial.print() vs Serial.println() στο Arduino

Serial Print Vs Serial Println Sto Arduino



Το Arduino είναι μια δημοφιλής πλακέτα μικροελεγκτή που χρησιμοποιείται συνήθως για έργα DIY, ρομποτική και συσκευές IoT. Ένα από τα βασικά χαρακτηριστικά του Arduino είναι η ανταλλαγή δεδομένων με υπολογιστές μέσω σειριακής επικοινωνίας.

Serial.print() και Serial.println() είναι δύο από τις πιο συχνά χρησιμοποιούμενες εντολές για σειριακή επικοινωνία στο Arduino. Αυτό το άρθρο θα καλύψει τις διαφορές μεταξύ Serial.print() και Serial.println() και πώς επηρεάζουν το έργο σας στο Arduino.

Πίνακας περιεχομένων







Τι είναι η Σειριακή Επικοινωνία

Πριν βουτήξουμε στις διαφορές μεταξύ Serial.print() και Serial.println() , ας καταλάβουμε πρώτα τι σειριακή επικοινωνία είναι. Σειριακή επικοινωνία είναι η διαδικασία μετάδοσης και λήψης δεδομένων. Χρησιμοποιώντας αυτό το Arduino μπορείτε να μεταφέρετε ένα bit δεδομένων τη φορά, με το σειριακό πρωτόκολλο επικοινωνίας. Στο Arduino, χρησιμοποιούμε το αντικείμενο Serial για την ανταλλαγή δεδομένων με έναν υπολογιστή χρησιμοποιώντας μια θύρα 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() :

ρύθμιση κενού ( ) {
Serial.begin ( 9600 ) ; // αρχικοποίηση σειριακής επικοινωνίας στο 9600 ρυθμός baud
}

κενό βρόχο ( ) {
int randomValue = τυχαία ( 0 , 1023 ) ; // δημιουργούν μια τυχαία τιμή μεταξύ 0 και 1023

Σειρά.εκτύπωση ( 'Τυχαία τιμή:' ) ; // εκτυπώστε την ετικέτα
Σειρά.εκτύπωση ( τυχαία τιμή ) ; // εκτυπώστε την τυχαία τιμή σε μια νέα γραμμή

καθυστέρηση ( 2000 ) ; // Περίμενε Για 500 χιλιοστά του δευτερολέπτου πριν εκτυπώσετε ξανά
}

Αυτός ο κώδικας αρχικοποιεί τη σειριακή επικοινωνία με ρυθμό baud 9600 στη συνάρτηση setup(). Στη συνέχεια, η συνάρτηση loop() δημιουργεί μια τυχαία ακέραια τιμή μεταξύ 0 και 1023 χρησιμοποιώντας τη συνάρτηση random() και την αποθηκεύει στο όνομα της μεταβλητής τυχαία τιμή .

ο Serial.print() Στη συνέχεια, η λειτουργία χρησιμοποιείται για την εκτύπωση της ετικέτας ' Τυχαία τιμή: ' στη σειριακή οθόνη, ακολουθούμενη από την πραγματική τυχαία τιμή, η οποία εκτυπώνεται στην ίδια γραμμή χωρίς νέο χαρακτήρα γραμμής χρησιμοποιώντας Serial.print() .

ο καθυστέρηση() Η συνάρτηση χρησιμοποιείται για την παύση της εκτέλεσης του βρόχου για 2000 χιλιοστά του δευτερολέπτου (2 δευτερόλεπτα).

Παραγωγή
Στην έξοδο, μπορούμε να δούμε όλες τις τιμές να εκτυπώνονται σε μία γραμμή χωρίς καμία αλλαγή γραμμής.

Serial.println() Παράδειγμα

Ο κωδικός που δίνεται δείχνει τη χρήση του Serial.println() λειτουργία στο Arduino.

ρύθμιση κενού ( ) {
Serial.begin ( 9600 ) ; // αρχικοποίηση σειριακής επικοινωνίας στο 9600 ρυθμός baud
}

κενό βρόχο ( ) {
int randomValue = τυχαία ( 0 , 1023 ) ; // δημιουργούν μια τυχαία τιμή μεταξύ 0 και 1023

Σειρά.εκτύπωση ( 'Τυχαία τιμή:' ) ; // εκτυπώστε την ετικέτα
Serial.println ( τυχαία τιμή ) ; // εκτυπώστε την τυχαία τιμή σε μια νέα γραμμή

καθυστέρηση ( 2000 ) ; // Περίμενε Για 500 χιλιοστά του δευτερολέπτου πριν εκτυπώσετε ξανά
}

Ο κωδικός για Serial.println() είναι παρόμοια με τα παραπάνω Serial.print() κώδικας. Η μόνη διαφορά εδώ είναι οι Τυχαίες τιμές που δημιουργούνται και εκτυπώνονται με μια αλλαγή γραμμής που λείπει στο Serial.print() κώδικας.

Παραγωγή
Όλες οι τιμές εκτυπώνονται σε νέα γραμμή όπως έχουμε χρησιμοποιήσει Serial.print() αντί Serial.println() :

συμπέρασμα

Σειριακή επικοινωνία είναι μια ουσιαστική πτυχή του προγραμματισμού Arduino. ο Serial.print() και Serial.println() Οι λειτουργίες είναι χρήσιμες για την εμφάνιση δεδομένων στο σειριακό τερματικό Arduino. Η κατανόηση της διαφοράς μεταξύ τους και η κατάλληλη χρήση τους μπορεί να σας βοηθήσει να διορθώσετε τον κωδικό σας και να επικοινωνήσετε με εξωτερικές συσκευές.