Arduino Logic 101 | Μάθημα 5.1: Serial Monitor: Μιλώντας απευθείας με το Arduino


Έχετε αναρωτηθεί ποτέ τι συμβαίνει μέσα στο "μυαλό" του Arduino όταν τρέχει ένα πρόγραμμα;

Όταν γράφουμε κώδικα, είναι πολύ εύκολο να κάνουμε κάποιο λογικό λάθος. Για παράδειγμα, το ρομπότ μας μπορεί να σταματάει ξαφνικά χωρίς να ξέρουμε το γιατί, ή ένας αισθητήρας να διαβάζει περίεργες τιμές. Χωρίς τα κατάλληλα εργαλεία, το να βρεις τι φταίει είναι σαν να προσπαθείς να λύσεις ένα παζλ στο σκοτάδι.

Εδώ έρχεται το Serial Monitor (Σειριακός Παρατηρητής)! Είναι το απόλυτο εργαλείο "επικοινωνίας" μας με το hardware. Μέσω αυτού, το Arduino μπορεί να μας "μιλήσει", να μας στείλει μηνύματα στην οθόνη του υπολογιστή μας και να μας πει ακριβώς τι κάνει (ή τι δεν κάνει) κάθε δευτερόλεπτο.

🔌 Πώς λειτουργεί η Σειριακή Επικοινωνία;

Όταν συνδέουμε το Arduino με τον υπολογιστή μας μέσω του καλωδίου USB, δημιουργείται μια γέφυρα επικοινωνίας. Αυτή η επικοινωνία ονομάζεται Σειριακή (Serial) επειδή τα δεδομένα μεταφέρονται το ένα πίσω από το άλλο (σε σειρά), σαν μια ουρά από ηλεκτρονικά "πακέτα".

Για να δούμε αυτά τα δεδομένα, ανοίγουμε το Arduino IDE και κάνουμε κλικ στο εικονίδιο με τον μεγεθυντικό φακό στην πάνω δεξιά γωνία (ή πατάμε Ctrl + Shift + M).

🛠️ Οι 3 Βασικές Εντολές που πρέπει να ξέρεις

Για να χρησιμοποιήσουμε το Serial Monitor, χρειαζόμαστε μόνο τρεις βασικές εντολές στη γλώσσα του Arduino:

1. Serial.begin(speed);

Αυτή η εντολή μπαίνει πάντα μέσα στη συνάρτηση void setup(). Λέει στο Arduino να ξεκινήσει τη σειριακή επικοινωνία και ορίζει την ταχύτητα μεταφοράς των δεδομένων.

  • Η πιο συνηθισμένη ταχύτητα είναι τα 9600 bps (bits per second). Αυτό ονομάζεται Baud Rate.

  • SOS: Η ταχύτητα που θα ορίσετε στον κώδικα πρέπει να είναι η ίδια με αυτή που είναι επιλεγμένη στο κάτω μέρος του παραθύρου του Serial Monitor, αλλιώς στην οθόνη σας θα εμφανιστούν ακαταλαβίστικα σύμβολα (ιερογλυφικά)!

2. Serial.print("text");

Στέλνει ένα μήνυμα ή μια τιμή μεταβλητής στο Serial Monitor, κρατώντας τον κέρσορα στην ίδια γραμμή.

3. Serial.println("text");

Κάνει ακριβώς το ίδιο με το print, αλλά στο τέλος αλλάζει γραμμή (το ln σημαίνει line). Είναι σαν να πατάμε το πλήκτρο "Enter" στον κειμενογράφο μας.

💻 Ο Κώδικας στην Πράξη

Ας δούμε ένα απλό παράδειγμα. Θέλουμε να φτιάξουμε ένα πρόγραμμα που να μετράει δευτερόλεπτα και να μας ενημερώνει για την κατάσταση της "μπαταρίας" ενός εικονικού ρομπότ.

// Ορισμός μιας εικονικής μεταβλητής για την μπαταρία
int batteryLevel = 100; 

void setup() {
  // Ξεκινάμε τη σειριακή επικοινωνία στα 9600 bps
  Serial.begin(9600); 
  
  // Στέλνουμε ένα καλωσόρισμα (θα εμφανιστεί μόνο μία φορά στην αρχή)
  Serial.println("=== Unique Tech System Initialized ===");
  Serial.println("Starting system diagnostics...");
  delay(1000); // Μικρή καθυστέρηση 1 δευτερολέπτου
}

void loop() {
  // Εκτύπωση της τρέχουσας κατάστασης της μπαταρίας
  Serial.print("Battery Level: ");
  Serial.print(batteryLevel);
  Serial.println("%");

  // Μείωση της μπαταρίας για να προσομοιώσουμε την κατανάλωση
  batteryLevel = batteryLevel - 5;

  // Έλεγχος αν η μπαταρία έπεσε πολύ χαμηλά
  if (batteryLevel <= 20) {
    Serial.println("⚠️ WARNING: Low Battery! Please recharge.");
  }

  // Αν η μπαταρία αδειάσει τελείως, την ξαναγεμίζουμε για το παράδειγμα
  if (batteryLevel <= 0) {
    Serial.println("🔄 Battery depleted. Recharging system...");
    batteryLevel = 100;
    Serial.println("System fully charged!");
  }

  delay(2000); // Περιμένουμε 2 δευτερόλεπτα πριν την επόμενη μέτρηση
}

💡 Πώς το χρησιμοποιήσαμε στο ACSTAC 2026;

Στο βιο-ρομποτικό σύστημα που κατασκευάσαμε, το Serial Monitor ήταν ο καλύτερός μας φίλος!

Όταν συνδέσαμε τον αισθητήρα SCD40, έπρεπε να είμαστε σίγουροι ότι οι μετρήσεις του CO2 σε πραγματικό χρόνο ήταν σωστές πριν τις στείλουμε στον αλγόριθμο Explainable AI (XAI) για ανάλυση. Γράφοντας απλές εντολές Serial.println(co2Value);, βλέπαμε live στην οθόνη του laptop μας πώς ανέβαιναν τα επίπεδα διοξειδίου του άνθρακα όταν πλησιάζαμε τον αισθητήρα, επιβεβαιώνοντας ότι όλα λειτουργούσαν ρολόι!

🧠 Η Πρόκληση της Εβδομάδας (Challenge!)

Τώρα είναι η σειρά σας! Ανοίξτε το Arduino IDE (ή έναν online προσομοιωτή όπως το Wokwi / Tinkercad αν δεν έχετε ακόμα το hardware) και δοκιμάστε το εξής:

Το Challenge: Φτιάξτε ένα πρόγραμμα που να ξεκινάει μια αντίστροφη μέτρηση από το 10 μέχρι το 0. Όταν φτάσει στο 0, να εκτυπώνει στο Serial Monitor το μήνυμα: "🚀 Launching Rocket!". Hint: Θα χρειαστείτε μια μεταβλητή, ένα loop ή μια δομή ελέγχου if που μάθαμε στις προηγούμενες ενότητες!

Γράψτε τον κώδικά σας ή τις απορίες σας στα σχόλια από κάτω. Η ομάδα της Unique Tech είναι εδώ για να σας βοηθήσει σε κάθε βήμα!

#UniqueTech #ArduinoLogic101 #SerialMonitor #Debugging #STEMGreece #ArduinoIDE #CodingForKids

Σχόλια

Δημοφιλείς αναρτήσεις από αυτό το ιστολόγιο

Πώς να "διαβάζεις" τον αέρα: Σύνδεση αισθητήρων μέσω I2C με Arduino

Γιατί νυστάζουμε στην τάξη; Η αλήθεια πίσω από το CO2 και η λύση της Unique Tech

Καλωσορίσατε στο Unique Tech Blog!