Οι σταθερές είναι προκαθορισμένες εκφράσεις στη γλώσσα του Arduino. Χρησιμοποιούνται για την ευκολότερη ανάγνωση των προγραμμάτων. Ταξινομούμε τις σταθερές στις ακόλουθες ομάδες:
Καθορισμός λογικών επιπέδων: αληθές και ψευδές (σταθερές της άλγεβρας Boole)
Υπάρχουν δύο σταθερές που χρησιμοποιούνται για να αντιπροσωπεύουν την αλήθεια και το ψεύδος στη γλώσσα του Arduino: το αληθές και το ψευδές.
Ψευδές
Το ψευδές είναι το ευκολότερο στον καθορισμό. Έτσι το ψευδές ορίζεται ως 0 (μηδέν).
Αληθές
Το αληθές ορίζεται συχνά ως 1, το οποίο είναι σωστό. Αλλά το αληθές έχει έναν ευρύτερο ορισμό. Έτσι ο κάθε ακέραιος ο οποίος είναι μη-μηδενικός, είναι αληθής, σύμφωνα με την έννοια της άλγεβρας Boole. Οπότε οι αριθμοί -1, 2 και -200 ορίζονται επίσης ως αληθείς σύμφωνα με την λογική της άλγεβρας Boole.
Σημειώστε ότι οι σταθερές αληθές και ψευδές, γράφονται με μικρά γράμματα σε αντίθεση με τα HIGH (υψηλή), LOW (χαμηλή), INPUT (είσοδος) και OUTPUT (έξοδος).
Καθορισμός επιπέδων ακροδεκτών: Υψηλή και χαμηλή
Κατά την ανάγνωση ή την εγγραφή σε έναν ψηφιακό ακροδέκτη, υπάρχουν μόνο δύο πιθανές τιμές που μπορούν να μπουν / εισαχθούν σε έναν ακροδέκτη. Είναι το HIGH (υψηλή) και το LOW (χαμηλή).
Υψηλή
Όταν αναφερόμαστε σε έναν ακροδέκτη, τότε η έννοια του HIGH (υψηλή) εξαρτάται ανάλογα με το αν ο ακροδέκτης έχει δηλωθεί ως INPUT (είσοδος) ή OUTPUT (έξοδος). Όταν ένας ακροδέκτης έχει δηλωθεί να λειτουργεί ως INPUT (είσοδος) με την χρήση της συνθήκης pinMode() και η ανάγνωσή του γίνεται με την χρήση της συνθήκης digitalRead(), τότε το Arduino (Atmega) θα το παρουσιάσει ως HIGH (υψηλή) εάν:
♦ η παρούσα τάση στον ακροδέκτη είναι μεγαλύτερη από τα 3 V (αφορά τις πλακέτες των 5 V).
♦ η παρούσα τάση στον ακροδέκτη είναι μεγαλύτερη από τα 2V (αφορά τις πλακέτες των 3.3V).
Ένας ακροδέκτης μπορεί επίσης να ρυθμιστεί σαν INPUT (είσοδος) με την χρήση της συνθήκης pinMode() και στη συνέχεια να γίνει HIGH (υψηλή) με την χρήση της συνθήκης digitalWrite(). Αυτό θα επιτρέψει στις εσωτερικές αντιστάσεις ανύψωσης των 20K, να αποδώσουν σε έναν ακροδέκτη εισόδου την τιμή HIGH (υψηλή) εκτός και αν είναι ήδη δηλωμένες σαν LOW (χαμηλή) από εξωτερικά κυκλώματα. Έτσι λειτουργεί και περιγράφεται παρακάτω με περισσότερες λεπτομέρειες το INPUT_PULLUP.
Όταν ένας ακροδέκτης έχει ρυθμιστεί ως OUTPUT (έξοδος) με την χρήση της συνθήκης pinMode() και οριστεί σε HIGH (υψηλή) με την χρήση της συνθήκης digitalWrite(), τότε ο ακροδέκτης βρίσκεται σε:
♠ 5 V (αφορά τις πλακέτες των 5 V).
♠ 3.3 V (αφορά τις πλακέτες των 3.3V).
Σε αυτή την κατάσταση μπορεί να λειτουργήσει ως πηγή ρεύματος. Δηλαδή για παράδειγμα να ανάψει ένα LED, το οποίο είναι συνδεδεμένο μέσω μιας αντίστασης σειράς στη γείωση.
Χαμηλή
Η έννοια του LOW (χαμηλή) έχει επίσης μια διαφορετική σημασία ανάλογα με το αν ένας ακροδέκτης έχει οριστεί ως INPUT (είσοδος) ή OUTPUT (έξοδος). Έτσι όταν ένας ακροδέκτης έχει ρυθμιστεί ως INPUT (είσοδος) με την χρήση της συνθήκης pinMode() και η ανάγνωσή του γίνεται με την χρήση της συνθήκης digitalRead(), τότε το Arduino (Atmega) θα το παρουσιάσει ως LOW (χαμηλή) εάν:
- η παρούσα τάση στον ακροδέκτη είναι μικρότερη από τα 3 V (αφορά τις πλακέτες των 5 V).
- η παρούσα τάση στον ακροδέκτη είναι μικρότερη από τα 2V (αφορά τις πλακέτες των 3.3V).
Όταν ένας ακροδέκτης έχει ρυθμιστεί ως OUTPUT (έξοδος) με την χρήση της συνθήκης pinMode() και οριστεί σε LOW (χαμηλή) με την χρήση της συνθήκης digitalWrite(), τότε ο ακροδέκτης βρίσκεται στα 0 volts. Δηλαδή και στις δύο πλακέτες των 5V και 3.3V αντίστοιχα. Σε αυτή την κατάσταση μπορεί να λειτουργήσει ως αποδέκτης ρεύματος. Δηλαδή για παράδειγμα να ανάψει ένα LED, το οποίο είναι συνδεδεμένο μέσω μιας αντίστασης σειράς στην παροχή τάσης των 5V ή 3.3V.
Καθορισμός καταστάσεων των ψηφιακών ακροδεκτών: INPUT (είσοδος), INPUT_PULLUP και OUTPUT (έξοδος)
Οι ψηφιακοί ακροδέκτες μπορούν να χρησιμοποιηθούν ως INPUT (είσοδος), INPUT_PULLUP ή OUTPUT (έξοδος). Μπορούμε να αλλάξουμε τον τρόπο λειτουργίας ενός ακροδέκτη με την χρήση της συνθήκης pinMode(). Αυτό θα έχει ως αποτέλεσμα την αλλαγή της ηλεκτρικής συμπεριφοράς του ακροδέκτη.
Καθορισμός των ακροδεκτών ως INPUT (είσοδος)
Οι ακροδέκτες στο Arduino (Atmega), καθορίζονται ως INPUT (είσοδος) με την χρήση της συνθήκης pinMode() και αυτό ορίζεται ως κατάσταση υψηλής αντίστασης. Έτσι ο καθορισμός των ακροδεκτών ως INPUT (είσοδος), έχει ως αποτέλεσμα οι ακροδέκτες να έχουν εξαιρετικά μικρές απαιτήσεις σχετικά με το κύκλωμα στο οποίο κάνουν δειγματοληψία που ισοδυναμεί με μια αντίσταση σειράς των 100 MΩ μπροστά από τον ακροδέκτη. Αυτό τους καθιστά εξαιρετικά χρήσιμους για την ανάγνωση ενός αισθητήρα.
Εάν έχετε καθορίσει τον ακροδέκτη σας ως INPUT (είσοδος) και αυτός χρησιμοποιείται για την ανάγνωση ενός διακόπτη, τότε όταν ο διακόπτης βρίσκεται στην κανονικά ανοικτή κατάσταση, ο ακροδέκτης εισόδου θα “επιπλέει”, καταλήγοντας σε απρόβλεπτα αποτελέσματα. Προκειμένου να εξασφαλιστεί η ορθή ανάγνωση όταν ένας διακόπτης είναι ανοικτός, πρέπει να χρησιμοποιηθεί μια αντίσταση ανύψωσης ή καθόδου. Ο σκοπός αυτής της αντίστασης είναι να θέτει τον ακροδέκτη σε μια γνωστή κατάσταση όταν ο διακόπτης είναι ανοικτός. Συνήθως επιλέγετε μια αντίσταση των 10 ΚΩ, καθώς είναι μια αρκετά χαμηλή τιμή για την αξιόπιστη πρόληψη μιας μεταβαλλόμενης εισόδου και την ίδια στιγμή μια αρκετά υψηλή τιμή έτσι ώστε να μην αντλήσει πάρα πολύ ρεύμα, όταν ο διακόπτης είναι κλειστός.
Εάν χρησιμοποιείται μια αντίσταση καθόδου, τότε ο ακροδέκτης εισόδου θα βρίσκεται στην κατάσταση LOW (χαμηλή), όταν ο διακόπτης είναι ανοικτός και στην κατάσταση HIGH (υψηλή), όταν ο διακόπτης είναι κλειστός.
Εάν χρησιμοποιείται μια αντίσταση ανύψωσης, τότε ο ακροδέκτης εισόδου θα βρίσκεται στην κατάσταση HIGH (υψηλή), όταν ο διακόπτης είναι ανοικτός και στην κατάσταση LOW (χαμηλή), όταν ο διακόπτης είναι κλειστός.
Καθορισμός των ακροδεκτών ως INPUT_PULLUP
Ο μικροελεγκτής Atmega του Arduino, διαθέτει εσωτερικές αντιστάσεις ανύψωσης στις οποίες μπορείτε να έχετε πρόσβαση. Δηλαδή πρόκειται για αντιστάσεις που συνδέονται με την εσωτερική τροφοδοσία. Αν προτιμάτε να χρησιμοποιήσετε αυτές αντί για τις εξωτερικές αντιστάσεις ανύψωσης, τότε μπορείτε να κάνετε την χρήση της συνθήκης INPUT_PULLUP στο pinMode().
Οι ακροδέκτες που καθορίζονται ως είσοδοι, είτε με το INPUT (είσοδος), είτε με το INPUT_PULLUP, μπορεί να ζημιωθούν ή να καταστραφούν εάν είναι συνδεδεμένοι με τάσεις μικρότερες της γείωσης (αρνητικές τάσεις) ή με θετική παροχή τάσης μεγαλύτερη των 3V ή των 5V.
Καθορισμός των ακροδεκτών ως OUTPUTS (έξοδοι)
Οι ακροδέκτες που καθορίζονται ως OUTPUT (έξοδος) με την χρήση της συνθήκης pinMode(), λέγεται ότι βρίσκονται σε μια κατάσταση χαμηλής αντίστασης. Αυτό σημαίνει ότι μπορούν να προσφέρουν ένα σημαντικό ποσό του ρεύματος σε άλλα κυκλώματα. Έτσι οι ακροδέκτες του Atmega, μπορούν να παρέχουν ή να απορροφούν ρεύματα από και προς άλλες συσκευές και κυκλώματα μέχρι τα 40 mA. Αυτό τους καθιστά χρήσιμους για την τροφοδοσία LEDs, επειδή τα LEDs τυπικά απαιτούν λιγότερο από τα 40 mA για να λειτουργήσουν. Οι τάσεις ρεύματος μεγαλύτερες των 40 mA (π.χ. οι κινητήρες), θα απαιτήσουν τρανζίστορ ή άλλα κυκλώματα διασύνδεσης.
Οι ακροδέκτες που καθορίζονται ως έξοδοι μπορεί να ζημιωθούν ή να καταστραφούν αν συνδέονται είτε με την γείωση είτε με τις θετικές παροχές ρεύματος.
Καθορισμός του ενσωματωμένου: LED_BUILTIN
Οι περισσότερες πλακέτες του Arduino έχουν συνδεδεμένο έναν ακροδέκτη στο ενσωματωμένο LED της πλακέτας το οποίο είναι συνδεδεμένο σε σειρά με μια αντίσταση. Η σταθερά LED_BUILTIN είναι ο αριθμός του ακροδέκτη στον οποίο είναι συνδεδεμένο το ενσωματωμένο LED της πλακέτας. Οι περισσότερες πλακέτες συνδέουν αυτό το LED μέσω του ψηφιακού ακροδέκτη νούμερο 13.
Επιστροφή στην σελίδα Παραπομπές Γλώσσας
