#16 Η σειριακή οθόνη και η χρήση της Serial.print() - Arduino IDE


Συχνά στις κατασκευές μας θα χρειαστεί να στείλουμε ή να λάβουμε δεδομένα στο Arduino uno. Αυτή η επικοινωνία γίνεται μέσω της σειριακής θύρας του Arduino και πιο συγκεκριμένα μέσω των pins Rx και Tx που υπάρχουν πάνω σε αυτό.
Τα δεδομένα λαμβάνονται απ' το Arduino uno μέσω του pin Rx (Receive) και στέλνονται απ' αυτό μέσω του pin Tx (Transmit). Για να γίνει σωστά η επικοινωνία θα πρέπει το Rx και Tx του Arduino να συνδεθούν σταυρωτά με τα αντίστοιχα Rx και Tx της μονάδας που θέλουμε να γίνει η σειριακή σύνδεση (πχ GPS, Bluetooth module).


Η επικοινωνία μέσω του Η/Υ γίνεται μέσα απ' την σειριακή οθόνη (serial monitor) του Arduino IDE. Δεν χρειάζεται να κάνετε τίποτα με τα Rx και Tx, απλά συνδέστε το καλώδιο usb.



Για να επιτευχθεί η σωστή επικοινωνία θα πρέπει και οι δύο πλευρές, H/Y και Arduino, να έχουν τον ίδιο ρυθμό μετάδοσης δεδομένων (baud rate). Για εμάς πάντα ο ρυθμός μετάδοσης θα είναι τα 9600kbps.

Σε προγραμματιστικό επίπεδο, ώστε να μπορέσουμε να πούμε στο Arduino πως θα επικοινωνήσουμε με αυτό, η εντολή που χρησιμοποιούμε είναι η Serial.begin(9600); Η τιμή 9600 αναφέρεται στον ρυθμό μετάδοσης που είπαμε παραπάνω. Την εντολή αυτή την βάζουμε πάντα στο κομμάτι της void setup().

   void setup(){
        Serial.begin(9600);
   }

Για να μας εκτυπώσει το Arduino ένα μήνυμα στην σειριακή οθόνη, θα πρέπει μέσα στον κώδικα να κάνουμε χρήση της εντολής Serial.print("Hello World");. Αν θέλουμε το επόμενο μήνυμα να ξεκινάει στην επόμενη γραμμή τότε κάνουμε χρήση της println.

   void setup(){
        Serial.begin(9600);
        Serial.println("Hello World");
   }

Έστω ότι θέλουμε το Arduino να μας στέλνει εναλλάξ, ανά 2 δευτερόλεπτα, το μήνυμα "Blacκ" και "White" (δεν υποστηρίζονται ελληνικοί χαρακτήρες). Ο κώδικας που θα φορτώσουμε στο arduino uno είναι ο εξής:

  void setup(){
        Serial.begin(9600);
   }
  void loop(){
        Serial.println("Black");
        delay(2000);
        Serial.println("White");
        delay(2000);
   }

Στο επόμενο μάθημα μας θα δούμε πως μπορούμε να στείλουμε δεδομένα στο Arduino uno, εκείνο να τα επεξεργαστεί και να μας απαντήσει ανάλογα.

Συντάκτης Βασιλάκης Μιχάλης
Πηγή www.ardumotive.com