Συνάρτηση Serial.readString() Arduino

Synartese Serial Readstring Arduino



Για τον προγραμματισμό της πλακέτας μικροελεγκτή χρησιμοποιείται προγραμματισμός Arduino. Μία από τις κύριες λειτουργίες του προγραμματισμού Arduino είναι η συνάρτηση Serial.readString(). Σε αυτό το άρθρο, θα εξετάσουμε τις λεπτομέρειες αυτής της λειτουργίας, τις περιπτώσεις χρήσης της και πώς μπορεί να εφαρμοστεί στον προγραμματισμό Arduino.

Κατανόηση της συνάρτησης Serial.readString().

Η συνάρτηση Serial.readString() είναι μέρος της Σειριακής Βιβλιοθήκης Arduino, η οποία επιτρέπει την επικοινωνία μεταξύ του μικροελεγκτή και του υπολογιστή ή άλλων εξωτερικών συσκευών.

Αυτή η λειτουργία επιτρέπει στον μικροελεγκτή να διαβάζει μια σειρά χαρακτήρων που αποστέλλονται από μια σειριακή σύνδεση. Η συνάρτηση διαβάζει δεδομένα από το σειριακό buffer και επιστρέφει τα δεδομένα με τη μορφή ενός αντικειμένου συμβολοσειράς.







Αυτή η συνάρτηση κληρονομείται από την κλάση Stream.



Σύνταξη

Η σύνταξη αυτής της συνάρτησης είναι η εξής:



Κατα συρροη. readString ( )

Παράμετροι

Αυτή η λειτουργία δεν λαμβάνει καμία παράμετρο. Διαβάζει μόνο το αντικείμενο σειριακής θύρας.





Επιστροφές

Επιστρέφει μια συμβολοσειρά που περιέχει τους χαρακτήρες που λαμβάνονται μέσω της σειριακής θύρας. Η συμβολοσειρά τελειώνει με τον τελευταίο χαρακτήρα που ελήφθη, ο οποίος είναι συχνά χαρακτήρας νέας γραμμής (\n). Εάν δεν υπάρχουν διαθέσιμοι χαρακτήρες στο σειριακό buffer, η συνάρτηση επιστρέφει μια κενή συμβολοσειρά (“”).

Σημείωση: Εάν ο χαρακτήρας τελικής γραμμής είναι διαθέσιμος στα δεδομένα, η λειτουργία δεν θα τερματιστεί νωρίς. Η συμβολοσειρά που επιστρέφεται μπορεί να περιέχει τους χαρακτήρες επιστροφής μεταφοράς.



Παράδειγμα κώδικα

Ο παρακάτω κώδικας δείχνει τη χρήση της συνάρτησης Serial.readString() στον προγραμματισμό Arduino:

Ο παρακάτω κώδικας δείχνει τη χρήση της συνάρτησης Serial.readString() στον προγραμματισμό Arduino:

κενός εγκατάσταση ( ) {
Κατα συρροη. αρχίζουν ( 9600 ) ;
}
κενός βρόχος ( ) {
Κατα συρροη. println ( 'Εισαγωγή δεδομένων:' ) ;
ενώ ( Κατα συρροη. διαθέσιμος ( ) == 0 ) { } //περιμένετε για διαθέσιμα δεδομένα
String teststr = Κατα συρροη. readString ( ) ; //διαβάστε μέχρι το χρονικό όριο
teststr. τακτοποίηση ( ) ; // αφαιρέστε οποιοδήποτε \r \n κενό διάστημα από το τέλος συμβολοσειράς
Κατα συρροη. Τυπώνω ( 'Εισαγωγή δεδομένων: ' ) ;
Κατα συρροη. println ( teststr ) ;
αν ( teststr == 'Γειά σου' ) {
Κατα συρροη. println ( 'Γεια και σε εσενα!' ) ;
} αλλού {
Κατα συρροη. println ( «Συγγνώμη, δεν κατάλαβα τη γνώμη σας». ) ;
}
}

Στο εγκατάσταση () Η λειτουργία σειριακής επικοινωνίας είναι ενεργοποιημένη χρησιμοποιώντας ρυθμό baud 9600.

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

Μόλις τα δεδομένα είναι διαθέσιμα, ο κώδικας διαβάζει τα δεδομένα ως συμβολοσειρά χρησιμοποιώντας τη συνάρτηση Serial.readString() και αφαιρεί τυχόν χαρακτήρες κενού διαστήματος στο τέλος της συμβολοσειράς χρησιμοποιώντας τη συνάρτηση trim().

Στη συνέχεια, ο κώδικας συγκρίνει τη συμβολοσειρά εισόδου με τη συμβολοσειρά 'γεια'. Αν η συμβολοσειρά εισόδου είναι 'Γειά σου' , ο κωδικός αποκρίνεται με εκτύπωση 'Γεια και σε εσενα!' στη σειριακή οθόνη. Διαφορετικά, τυπώνει 'Λυπάμαι, δεν κατάλαβα τη γνώμη σας'. στη σειριακή οθόνη. Στη συνέχεια, η συνάρτηση loop() επαναλαμβάνεται, ζητώντας από το χρήστη περισσότερες πληροφορίες.

Παραγωγή

Στην έξοδο μπορούμε να δούμε διαφορετικές συμβολοσειρές που διαβάζει ο κώδικας από τον χρήστη και τον αντιστοιχίζει με τη συμβολοσειρά 'γεια'.

συμπέρασμα

Η συνάρτηση Serial.readString() στο Arduino διαβάζει σειριακά δεδομένα που αποστέλλονται από έναν υπολογιστή ή άλλες συσκευές στην πλακέτα. Χρησιμοποιώντας αυτή τη λειτουργία, μπορούμε να διαβάσουμε και να συγκρίνουμε τα δεδομένα σειριακής συμβολοσειράς εισόδου για να δημιουργήσουμε αποκρίσεις εξόδου, όπως αισθητήρες ελέγχου και συσκευές υλικού.