Τα βασικά για τον προγραμματισμό του Arduino

Τα βασικά για τον προγραμματισμό του Arduino

То Arduino IDE είναι ένα ολοκληρωμένο περιβάλλον ανάπτυξης το οποίο χρησιμοποιείται για την συγγραφή και την αποστολή του κώδικα υπολογιστή στην πλακέτα ανάπτυξης Arduino. Μπορείτε να ελέγχετε τις λειτουργίες της πλακέτας σας στέλνοντας ένα σύνολο οδηγιών στον μικροελεγκτή της πλακέτας μέσω του Arduino IDE. Το Arduino IDE χρησιμοποιεί μια απλοποιημένη έκδοση της C++, διευκολύνοντας την εκμάθηση προγραμματισμού.

Η δομή του προγράμματος για Arduino

Το λογισμικό του Arduino είναι ανοικτού κώδικα (open-source). Ο πηγαίος κώδικας για το περιβάλλον Java (Arduino IDE) έχει κυκλοφορήσει υπό την άδεια GPL και οι βιβλιοθήκες για τον μικροελεγκτή σε C/C++ υπό την άδεια LGPL.

Η πρώτη νέα ορολογία που συναντάμε είναι το πρόγραμμα του Arduino, που ονομάζεται “sketch” (σκίτσο).

Η δομή

Η βασική δομή ενός προγράμματος Arduino είναι πολύ απλή και αποτελείται από τουλάχιστον δύο μέρη: τις συναρτήσεις void setup() και void loop(). Και τα δύο μέρη (συναρτήσεις) είναι απαραίτητα για να λειτουργήσει το πρόγραμμα και βρίσκονται εντός αγκυλών { … }.

void setup()   // βάλε εδώ τον κώδικα αρχικοποίησης που τρέχει μια φορά:

{

}
void loop()    // βάλε εδώ τον κύριο κώδικα που τρέχει επανειλημμένα:

{

}

Τι κάνουν αυτές οι συναρτήσεις

  • setup() – Αυτή η συνάρτηση χρησιμοποιείται για αρχικοποίηση των δεδομένων, μεταβλητών κλπ. Εκτελείται μόνο μία φορά στην αρχή του προγράμματος. Συνήθως εδώ ορίζουμε τρόπους λειτουργίας ακίδων (pinMode) ή αρχικοποιούμε την σειριακή επικοινωνία.
  • loop() – Μετά την setup(), η loop() εκτελείται συνεχώς. Περιέχει τον κώδικα που θέλουμε να επαναλαμβάνεται – όπως ανάγνωση εισόδων, ενεργοποίηση εξόδων, έλεγχο αισθητήρων κ.λπ. Είναι ο βασικός τρόπος λειτουργίας όλων των προγραμμάτων στο Arduino.

Παραδείγματα

setup()

Η συνάρτηση setup() καλείται μια φορά όταν ξεκινά το πρόγραμμα. Εδώ αρχικοποιούμε, π.χ  μία ακίδα ως έξοδο:

void setup()

{

pinMode(pin, OUTPUT);  // ορίζει την ακίδα ως έξοδο

}

loop()

Αφού εκτελεστεί η setup(), η συνάρτηση loop() κάνει επανειλημμένα αυτό που λέει και το όνομά της — δηλαδή επανεκτέλεση:

void loop()

{

digitalWrite(pin, HIGH); // θέτει την έξοδο της ακίδας σε HIGH

}

Αυτό επιτρέπει στο πρόγραμμα να αλλάζει κατάσταση, να ανταποκρίνεται σε εισόδους και να ελέγχει την πλακέτα Arduino συνεχώς

Μεταβλητές (Variables)

Μια μεταβλητή είναι ένας τρόπος να δίνεις ένα όνομα σε μια αριθμητική τιμή και να την αποθηκεύεις για μελλοντική χρήση από το πρόγραμμα. Μια μεταβλητή πρέπει να δηλωθεί και προαιρετικά να της ανατεθεί μια τιμή που θέλεις να αποθηκευτεί.

Παρακάτω έχουμε ένα παράδειγμα κώδικα όπου δηλώνετε μια μεταβλητή με το όνομα inputVariable και μετά της εκχωρεί την τιμή που λαμβάνεται από την αναλογική είσοδο 2:

int inputVariable = 0;  // δηλώνει μια μεταβλητή και της εκχωρεί την τιμή 0
inputVariable = analogRead(2); // θέτει τη μεταβλητή στην τιμή της αναλογικής ακίδας 2

Δήλωση μεταβλητής (variable declaration)

Όλες οι μεταβλητές πρέπει να δηλώνονται πριν χρησιμοποιηθούν. Η δήλωση μιας μεταβλητής σημαίνει ότι ορίζεις:

  1. Τον τύπο της τιμής που θα κρατάει (π.χ. int, long, float, κ.λπ.)
  2. Ένα όνομα για τη μεταβλητή
  3. (Προαιρετικά) μια αρχική τιμή που θα κρατά μόλις ξεκινήσει το πρόγραμμα.

Αυτό πρέπει να γίνει μία φορά σε ένα πρόγραμμα, αλλά η τιμή της μεταβλητής μπορεί να αλλάξει οποιαδήποτε στιγμή με μαθηματικές πράξεις ή άλλες εντολές.

Παράδειγμα:

int inputVariable = 0;

Αυτό σημαίνει ότι η inputVariable είναι τύπου int (ακέραιος) και η αρχική της τιμή είναι μηδέν.

Εύρος μεταβλητής (variable scope)

Μια μεταβλητή μπορεί να δηλωθεί:

  • στην αρχή του προγράμματος, πριν από την void setup(), ή
  • τοπικά μέσα σε συναρτήσεις (void setup(), void loop()), ή
  • μέσα σε μπλοκ εντολών όπως ένα for — και αυτό επηρεάζει πού μπορεί να χρησιμοποιηθεί η μεταβλητή στο πρόγραμμα.

Καθολική μεταβλητή (Global variable)

Μια μεταβλητή που δηλώνεται στην αρχή του προγράμματος πριν από οποιαδήποτε συνάρτηση είναι ορατή και μπορεί να χρησιμοποιηθεί από κάθε συνάρτηση.

Τοπική μεταβλητή (Local variable)

Μια μεταβλητή που δηλώνεται μέσα σε μια συνάρτηση ή σε ένα μπλοκ εντολών είναι ορατή μόνο μέσα σε αυτό το μπλοκ/συνάρτηση.

Παράδειγμα:

int value // Καθολική μεταβλητή: “value” είναι ορατή σε κάθε συνάρτηση
void setup() { // δεν χρειάζεται τίποτα εδώ
}
void loop() {
for (int i = 0; i < 20;) { i++; } float f; // τοπική μεταβλητή: "f" είναι ορατή μόνο μέσα στη loop } [/code]