Arduino Logic 101: Μάθημα 3.3 | Boolean Logic: Συνδυάζοντας συνθήκες (AND, OR, NOT)
Boolean Logic: Συνδυάζοντας συνθήκες (AND, OR, NOT)
Καλωσορίσατε στο πιο "εγκεφαλικό" μάθημα της Ενότητας 3! Στα προηγούμενα μαθήματα είδαμε πώς το Arduino παίρνει αποφάσεις με το if. Τι γίνεται όμως όταν μια απόφαση εξαρτάται από πολλά πράγματα ταυτόχρονα;
Στο βραβευμένο μας Bio-Robotic System, το ρομπότ δεν ανοίγει τα παράθυρα απλά επειδή "είναι μεσημέρι". Πρέπει να ισχύουν πολλές συνθήκες: Είναι το CO2 υψηλό; ΚΑΙ Είναι κάποιος μέσα στην αίθουσα; ΚΑΙ Είναι η εξωτερική θερμοκρασία κατάλληλη;
Αυτός ο τρόπος σκέψης ονομάζεται Λογική Boolean.
1. Οι Τρεις Πυλώνες της Λογικής
Στον προγραμματισμό, χρησιμοποιούμε τρεις βασικούς λογικούς τελεστές για να συνδέσουμε τις προτάσεις μας:
A. Ο τελεστής AND (&&) - "Το Απαιτητικό"
Για να είναι το αποτέλεσμα αληθές (true), πρέπει όλες οι συνθήκες να είναι αληθείς.
Παράδειγμα: Αν (Έχω μπαταρία && Πατήσω το κουμπί), τότε το ρομπότ κινείται.
Αν ένα από τα δύο λείπει, το ρομπότ μένει ακίνητο.
B. Ο τελεστής OR (||) - "Το Ελαστικό"
Για να είναι το αποτέλεσμα αληθές (true), αρκεί τουλάχιστον μία από τις συνθήκες να είναι αληθής.
Παράδειγμα: Αν (Το CO2 είναι > 1000 || Η υγρασία είναι > 70%), τότε άναψε την προειδοποιητική λυχνία.
Εδώ, αρκεί ένας από τους δύο κινδύνους για να ενεργοποιηθεί η ειδοποίηση.
Γ. Ο τελεστής NOT (!) - "Ο Αντίστροφος"
Αυτός ο τελεστής αντιστρέφει την κατάσταση. Το αληθές γίνεται ψευδές και το αντίστροφο.
Παράδειγμα: Αν (**!**Εμπόδιο), τότε προχώρα. (Δηλαδή: Αν δεν υπάρχει εμπόδιο).
2. Πίνακες Αληθείας (Truth Tables)
Για να μην μπερδεύεστε, δείτε πώς λειτουργούν οι συνδυασμοί:
| Συνθήκη Α | Συνθήκη Β | Α && Β (AND) | Α || Β (OR) |
| :--- | :--- | :--- | :--- |
| False | False | False | False |
| True | False | False | True |
| False | True | False | True |
| True | True | True | True |
3. Εφαρμογή στον Κώδικα Arduino
Ας δούμε πώς γράφεται αυτό στην πράξη. Φανταστείτε ένα σύστημα ασφαλείας για το εργαστήριο της Unique Tech:
// Ορισμός μεταβλητών
int co2Level = 1100;
bool motionDetected = true;
bool systemOverride = false;
void setup() {
Serial.begin(9600);
}
void loop() {
// Παράδειγμα AND: Ενεργοποίηση αερισμού αν το CO2 είναι υψηλό ΚΑΙ υπάρχει κόσμος
if (co2Level > 1000 && motionDetected == true) {
Serial.println("Ενεργοποίηση Αερισμού: Υψηλό CO2 και παρουσία ατόμων.");
}
// Παράδειγμα OR: Συναγερμός αν υπάρχει κίνηση Ή αν πατηθεί το κουμπί έκτακτης ανάγκης
if (motionDetected == true || systemOverride == true) {
Serial.println("Προσοχή: Δραστηριότητα στο εργαστήριο!");
}
delay(5000);
}
4. Logic Challenge 🧠
Ήρθε η ώρα για εξάσκηση! Σκεφτείτε τον αλγόριθμο για ένα έξυπνο ποτιστικό:
Θέλουμε το ρομπότ να ποτίζει μόνο αν η υγρασία του εδάφους είναι χαμηλή (<30%) ΚΑΙ δεν βρέχει εκείνη τη στιγμή.
Πώς θα το γράφατε σε if χρησιμοποιώντας τους τελεστές που μάθαμε;
(Γράψτε την απάντησή σας στα σχόλια!)
Γιατί είναι σημαντικό;
Στην Unique Tech, η Boolean Logic είναι το εργαλείο που μας επέτρεψε να κάνουμε το Bio-Robotic System "έξυπνο". Χωρίς αυτήν, το ρομπότ θα έπαιρνε σπασμωδικές αποφάσεις. Με τη λογική, το ρομπότ αποκτά κρίση.
Στο επόμενο μάθημα, μπαίνουμε στην Ενότητα 4, όπου θα μάθουμε πώς να κάνουμε το Arduino να εκτελεί χιλιάδες υπολογισμούς το δευτερόλεπτο χωρίς να κουράζεται, χρησιμοποιώντας τα Loops!
Keep Coding, Keep Innovating! 🚀
#UniqueTech #ArduinoLogic101 #BooleanLogic #STEMGreece #ProgrammingBasics #RoboticsKavala
Σχόλια
Δημοσίευση σχολίου