Arduino Logic 101: Μάθημα 2.3
Σταθερές (Constants) και η Σημασία της Οργάνωσης
Καλωσορίσατε στο τελευταίο μάθημα της 2ης Ενότητας! Αφού είδαμε πώς οι μεταβλητές αποθηκεύουν πληροφορίες που αλλάζουν, ήρθε η ώρα να μιλήσουμε για τις Σταθερές. Μπορεί να ακούγεται παράδοξο να θέλουμε κάτι που "δεν αλλάζει" στον προγραμματισμό, αλλά οι σταθερές είναι οι "φύλακες άγγελοι" του κώδικά μας.
1. Τι είναι η Σταθερή (Constant);
Μια σταθερή είναι μια τιμή που ορίζεται στην αρχή του προγράμματος και απαγορεύεται να αλλάξει κατά τη διάρκεια της εκτέλεσης.
Παρομοίωση: Αν η μεταβλητή είναι ένας πίνακας που γράφουμε και σβήνουμε με μαρκαδόρο, η σταθερή είναι μια πινακίδα χαραγμένη σε μάρμαρο.
2. Γιατί να μην χρησιμοποιούμε απλές Μεταβλητές;
Θα μπορούσαμε να ορίσουμε το pin ενός LED ως int ledPin = 13;. Τι θα γινόταν όμως αν κατά λάθος, κάπου στις 500 γραμμές κώδικα, γράφαμε ledPin = 10;; Το Arduino θα προσπαθούσε να στείλει ρεύμα σε λάθος θύρα!
Τα πλεονεκτήματα των Σταθερών:
Ασφάλεια: Το Arduino IDE θα μας βγάλει σφάλμα αν προσπαθήσουμε να αλλάξουμε την τιμή τους κατά λάθος.
Αναγνωσιμότητα: Είναι πιο εύκολο να διαβάσεις
digitalWrite(LED_PIN, HIGH)παράdigitalWrite(13, HIGH).Εξοικονόμηση Μνήμης: Ο compiler βελτιστοποιεί τον κώδικα όταν ξέρει ότι μια τιμή δεν θα αλλάξει ποτέ.
3. Πώς τις ορίζουμε (Syntax)
Υπάρχουν δύο βασικοί τρόποι στο Arduino:
Α. Η λέξη κλειδί const (Προτεινόμενο)
Χρησιμοποιείται όπως οι μεταβλητές, αλλά προσθέτουμε τη λέξη const μπροστά.
const int SENSOR_THRESHOLD = 500;
const float PI_VALUE = 3.14159;
Β. Η οδηγία #define (Legacy/Macro)
Δεν καταλαμβάνει καθόλου μνήμη, καθώς ο υπολογιστής "αντικαθιστά" το όνομα με το νούμερο πριν στείλει τον κώδικα στο Arduino.
#define LED_PIN 13
// Προσοχή: Δεν βάζουμε ίσον (=) ούτε ερωτηματικό (;) στο τέλος
4. Η Σημασία της Οργάνωσης (Naming Conventions)
Στον επαγγελματικό κώδικα, ακολουθούμε κανόνες για να ξεχωρίζουμε τις σταθερές από τις μεταβλητές με μια ματιά:
ALL_CAPS: Γράφουμε τα ονόματα των σταθερών πάντα με κεφαλαία γράμματα.
Underscores: Αντί για κενά, χρησιμοποιούμε κάτω παύλα (π.χ.
MAX_SPEED).Σχόλια: Πάντα εξηγούμε τι αντιπροσωπεύει η σταθερή και (αν είναι δυνατόν) τις μονάδες μέτρησης.
5. Παράδειγμα Καλού vs Κακού Κώδικα
❌ Κακός Κώδικας (Magic Numbers):
void setup() {
pinMode(13, OUTPUT);
}
void loop() {
digitalWrite(13, HIGH);
delay(1000);
digitalWrite(13, LOW);
delay(1000);
}
Πρόβλημα: Τι είναι το 13; Τι αντιπροσωπεύει το 1000; Αν αλλάξω pin, πρέπει να το αλλάξω σε 2-3 σημεία.
✅ Οργανωμένος Κώδικας (Unique Tech Standard):
const int LED_SIGNAL_PIN = 13; // Η θύρα του LED
const int BLINK_DURATION = 1000; // Χρόνος σε milliseconds
void setup() {
pinMode(LED_SIGNAL_PIN, OUTPUT);
}
void loop() {
digitalWrite(LED_SIGNAL_PIN, HIGH);
delay(BLINK_DURATION);
digitalWrite(LED_SIGNAL_PIN, LOW);
delay(BLINK_DURATION);
}
📝 Challenge Μαθήματος 2.3
Φανταστείτε ότι σχεδιάζετε ένα έξυπνο θερμοκήπιο. Πρέπει να ορίσετε σταθερές για:
Την ιδανική θερμοκρασία (π.χ. 25 βαθμοί).
Την κρίσιμη υγρασία εδάφους (π.χ. 30%).
Το pin που ελέγχει την αντλία νερού (π.χ. pin 7).
Άσκηση: Γράψτε τις δηλώσεις αυτών των σταθερών χρησιμοποιώντας τον κανόνα ALL_CAPS και τη λέξη κλειδί const.
Συγχαρητήρια! Ολοκληρώσατε την Ενότητα 2. Τώρα που ξέρετε πώς να αποθηκεύετε και να οργανώνετε δεδομένα, είστε έτοιμοι να περάσετε στην Ενότητα 3, όπου θα μάθουμε πώς να δίνουμε στο Arduino την ικανότητα να "σκέφτεται" και να παίρνει αποφάσεις!
🚀 Επόμενο Μάθημα: 3.1 Η δύναμη του IF/ELSE
📜 Άδεια Χρήσης & Πνευματικά Δικαιώματα
Το περιεχόμενο αυτής της ανάρτησης (κείμενα, οδηγίες και φωτογραφίες) αποτελεί πνευματική ιδιοκτησία της Unique Tech. Ο παρεχόμενος κώδικας διατίθεται υπό την άδεια MIT License.
Προϋπόθεση χρήσης: Επιτρέπεται η ελεύθερη χρήση και αναπαραγωγή, αρκεί να συμπεριλαμβάνεται η αρχική δήλωση πνευματικών δικαιωμάτων και η αναφορά στην Unique Tech ως αρχική πηγή. Για την πλήρη ανάλυση των δικαιωμάτων σας, διαβάστε τους
#UniqueTech #ArduinoLogic101 #CodingStandards #Constants #CleanCode #STEMGreece
Σχόλια
Δημοσίευση σχολίου