Προγραμματίζοντας το Arduino....
Η γλώσσα του Arduino βασίζεται στη γλώσσα Wiring, μια παραλλαγή της C/C++ για μικροελεγκτές αρχιτεκτονικής AVR, όπως ο Atmega και υποστηρίζει όλες τις βασικές δομές της C, καθώς και μερικά χαρακτηριστικά της C++. Το Arduino IDE, έρχεται με μια βιβλιοθήκη λογισμικού που ονομάζεται " Wiring", η οποία καθιστά πολλές κοινές λειτουργίες εισόδου/εξόδου πολύ ποιο εύκολες. Οι χρήστες πρέπει μόνο να ορίσουν δύο λειτουργίες για να κάνουν ένα πρόγραμμα κυκλικής εκτέλεσης:
Ένα τυπικό πρώτο πρόγραμμα για έναν μικροελεγκτή είναι να αναβοσβήνει απλά ένα LED. Στο περιβάλλον Arduino, ο χρήστης μπορεί να γράψει ένα πρόγραμμα σαν αυτό που παρουσιάζετε στην διπλανή στήλη. Ένα χαρακτηριστικό των περισσότερων πλακετών Arduino, είναι ότι έχουν ένα LED και μια αντίσταση που συνδέονται μεταξύ του ακροδέκτη 13 και της γείωσης. Ένα βολικό χαρακτηριστικό για πολλές απλές δοκιμές. Ο κώδικας στη μορφή που δίνεται, δεν θα αναγνωριστεί από έναν κανονικό μεταγλωττιστή C++ ως έγκυρο πρόγραμμα , όταν όμως ο χρήστης κάνει κλικ στο κουμπί "Upload" του Arduino IDE, ένα αντίγραφο του κώδικα θα γραφεί σε ένα προσωρινό αρχείο με ένα παραπάνω #include στη κορυφή και μια συνάρτηση main() στο τέλος, ώστε να δημιουργηθεί ένα έγκυρο C++ πρόγραμμα.
Το IDE του Arduino, χρησιμοποιεί το GNU toolchain και το AVR Libc για να μεταγλωττίζει προγράμματα και το avrdude για να φορτώνει προγράμματα στην πλατφόρμα. |
Λόγω λοιπόν της καταγωγής της από την C, η γλώσσα του Arduino χρησιμοποιεί τις ίδιες βασικές εντολές και συναρτήσεις, με την ίδια σύνταξη, τους ίδιους τύπους δεδομένων και τους ίδιους τελεστές, όπως και στην C. Πέρα όμως από αυτές, υπάρχουν κάποιες ειδικές εντολές, συναρτήσεις και σταθερές, που βοηθούν για την διαχείριση του ειδικού Hardware του Arduino.
Μερικές από αυτές επεξηγούνται στους παρακάτω πίνακες. |
Σταθερές:
Όρισμα | Τύπος | Παράμετροι | Περιγραφή |
---|---|---|---|
Low | Int | -- | Έχει την τιμή 0 & είναι αντίστοιχη του λογικού false. |
High | Int | -- | Έχει την τιμή 1 & είναι αντίστοιχη του λογικού true. |
Input | Int | -- | Έχει την τιμή 0 & είναι αντίστοιχη του λογικού false. |
Output | Int | -- | Έχει την τιμή 1 & είναι αντίστοιχη του λογικού true. |
Συναρτήσεις:
Όρισμα | Τύπος | Παράμετροι | Περιγραφή |
---|---|---|---|
pinMode | -- | (pin,mode) | Καθορίζει αν το συγκεκριμένο pin, θα είναι εισόδου ή εξόδου, ανάλογα με την τιμή που δίνεται στο mode (INPUT/OUTPUT) |
digitalWrite | -- | (pin,status) | Θέτει τη κατάσταση pinStatus (High η Low) στο συγκεκριμένο ψηφιακό pin. |
digitalRead | -- | (pin) | Επιστρέφει τη κατάσταση του συγκεκριμένου ψηφιακού pin (0 για Low & 1 για High), εφόσον αυτό είναι pin εισόδου |
analogRead | -- | (pin) | Επιστρέφει έναν ακέραιο από 0 έως 1023, ανάλογα με τη τάση που τροφοδοτείται το συγκεκριμένο pin αναλογικής εισόδου. |
analogWrite | -- | (pin,value) | Θέτει το συγκεκριμένο pin σε κατάσταση ψευδοαναλογικής εξόδου (PWM). Η παράμετρος value καθορίζει το πλάτος του παλμού σε σχέση με τη περίοδο του παραγώμενου σήματος,σε κλίμακα από 0 εως 255. |
delay | -- | (time) | Σταματά προσωρινά τη ροή του προγράμματος για όσο ορίζει η παράμετρος time, η οποία ορίζεται ως unsigned long (0-8192). |
Μέθοδοι Κλάσης:
Όρισμα | Τύπος | Παράμετροι | Περιγραφή |
---|---|---|---|
Serial.begin | -- | (baudrate) | Θέτει το ρυθμό μεταφοράς δεδομένων της σειριακής επικοινωνίας (σε baud). |
Serial.print | -- | (data) | Διοχετεύει τα δεδομένα data για αποστολή μέσω της σειριακής επικοινωνίας. Η παράμετρος data είναι είτε αριθμός είτε αλφαριθμητικό. |