Arduino Logic 101 – Μάθημα 2.1: Μεταβλητές & Τύποι Δεδομένων – Τα "κουτάκια" της μνήμης
Καλωσορίσατε στην Ενότητα 2! Αφού μάθαμε πώς να σχεδιάζουμε τη λογική μας, ήρθε η ώρα να δούμε πώς το Arduino αποθηκεύει τις πληροφορίες που χρειάζεται. Στον προγραμματισμό, αυτό το κάνουμε με τις Μεταβλητές (Variables).
Τι είναι μια Μεταβλητή;
Φανταστείτε τη μνήμη του Arduino σαν μια τεράστια αποθήκη γεμάτη με άδεια κουτιά.
Όνομα: Για να ξέρουμε τι έχει μέσα.
Τύπος: Για να ξέρουμε τι χωράει μέσα.
Τιμή: Το περιεχόμενο, το οποίο μπορεί να μεταβάλλεται (να αλλάζει) κατά τη διάρκεια του προγράμματος.
Όταν λέμε στο Arduino int distance = 20;, του λέμε ουσιαστικά: "Φτιάξε ένα κουτί για ακέραιους αριθμούς (int), ονόμασέ το 'distance' και βάλε μέσα τον αριθμό 20".
Οι Βασικοί Τύποι Δεδομένων
Στο Arduino (γλώσσα C++), πρέπει να διαλέξουμε τον σωστό τύπο ανάλογα με το τι θέλουμε να αποθηκεύσουμε:
int (Integer): Για ολόκληρους αριθμούς (π.χ. 10, -5). Ιδανικό για μετρητές.
float (Floating point): Για αριθμούς με δεκαδικά (π.χ. 25.5). Απαραίτητο για ακριβείς μετρήσεις αισθητήρων (θερμοκρασία, CO2).
bool (Boolean): Χωράει μόνο
true(Αληθές) ήfalse(Ψευδές). Ιδανικό για καταστάσεις On/Off.char (Character): Για έναν μόνο χαρακτήρα μέσα σε μονά εισαγωγικά (π.χ.
'A','!').
Τα Strings: Όταν το ρομπότ μιλάει
Ενώ το char χωράει μόνο ένα γράμμα, το String είναι μια ολόκληρη σειρά από χαρακτήρες (λέξεις ή προτάσεις). Τα Strings μπαίνουν πάντα μέσα σε διπλά εισαγωγικά.
Παράδειγμα:
String welcomeMessage = "Welcome to Unique Tech";
Προσοχή: Τα Strings καταλαμβάνουν πολύ περισσότερη μνήμη από τους άλλους τύπους. Στο Arduino, τα χρησιμοποιούμε κυρίως για να στέλνουμε μηνύματα σε οθόνες LCD ή στο κινητό μας μέσω Bluetooth.
Γιατί έχει σημασία ο Τύπος;
Αν προσπαθήσετε να βάλετε ένα δεκαδικό νούμερο (π.χ. 25.8) σε ένα κουτί int, το Arduino θα "πετάξει" το δεκαδικό μέρος και θα κρατήσει μόνο το 25. Αν προσπαθήσετε να βάλετε μια λέξη σε ένα int, ο κώδικας απλά θα εμφανίσει σφάλμα (error).
Πώς ονομάζουμε τις μεταβλητές μας (Clean Code)
Χρησιμοποιούμε το camelCase. Ξεκινάμε με μικρό γράμμα και κάθε νέα λέξη κολλάει με κεφαλαίο:
✅
airQualityValue❌
air_quality_value❌
x(πολύ ασαφές)
Παράδειγμα από το project MLA
Στο βραβευμένο μας σύστημα, χρησιμοποιούμε όλη την γκάμα:
float co2Level;(η μέτρηση αλλάζει συνεχώς)bool isVentilationOn;(αλλάζει από true σε false ανάλογα με την AI)String statusMessage;(αλλάζει ανάλογα με την κατάσταση του αέρα)
💡 Pro-Tip από το Εργαστήριο:
Πάντα να δίνετε στις μεταβλητές σας ονόματα που "βγάζουν νόημα". Αν διαβάσετε τον κώδικά σας μετά από ένα μήνα, το tempRoom θα σας πει αμέσως τι κάνει, ενώ το t θα σας κάνει να ξύνετε το κεφάλι σας!
Άσκηση για το σπίτι: Αν έπρεπε να φτιάξεις ένα σύστημα για ένα έξυπνο θερμοκήπιο, τι τύπο μεταβλητής θα χρησιμοποιούσες για:
Τη θερμοκρασία;
Το όνομα του φυτού;
Το αν η πόρτα είναι ανοιχτή;
Στο επόμενο μάθημα (2.2), θα δούμε πώς αυτές οι μεταβλητές γεμίζουν με "ζωντανά" δεδομένα από τους αισθητήρες μας!
📜 Άδεια Χρήσης & Πνευματικά Δικαιώματα
Το περιεχόμενο αυτής της ανάρτησης (κείμενα, οδηγίες και φωτογραφίες) αποτελεί πνευματική ιδιοκτησία της Unique Tech. Ο παρεχόμενος κώδικας διατίθεται υπό την άδεια MIT License.
Προϋπόθεση χρήσης: Επιτρέπεται η ελεύθερη χρήση και αναπαραγωγή, αρκεί να συμπεριλαμβάνεται η αρχική δήλωση πνευματικών δικαιωμάτων και η αναφορά στην Unique Tech ως αρχική πηγή. Για την πλήρη ανάλυση των δικαιωμάτων σας, διαβάστε τους
#UniqueTech #ArduinoLogic101 #Variables #Strings #CodingBasics #STEMGreece #CleanCode
Σχόλια
Δημοσίευση σχολίου