ΠΕΡΙΓΡΑΦΗ

Η γλώσσα του Arduino προέρχεται από τις γλώσσες Wiring και Processing. Η γλώσσα Wiring είναι μια παραλλαγή C/C++ για μικροελεγκτές αρχιτεκτονικής AVR όπως ο ATmega, και υποστηρίζει όλες τις βασικές δομές της C καθώς και μερικά χαρακτηριστικά της C++.

Στην ουσία χρησιμοποιεί κάποιες “έτοιμες” συναρτήσεις οι οποίες είναι γραμμένες σε C/C++ και συγκεκριμένα στον μεταγλωττιστή avr-g++ ( http://www.nongnu.org/avr-libc/user-manual/ ). Αυτό δεν μας εμποδίζει στο να γράφουμε τις εντολές κατευθείαν σε C/C++ (βλ. και άρθρα περιοδικών βιβλιογραφίας), αφού έτσι και αλλιώς ο κώδικας μεταφράζεται σε C πριν μεταγλωττιστεί και μεταφερθεί στο Αrduino. Ένα χρήσιμο κείμενο σχετικά με την όλη διαδικασία μπορείτε να διαβάσετε εδώ: Arduino Build Process – http://arduino.cc/en/Hacking/BuildProcess

Σε πλατφόρμα Λίνουξ ως compiler χρησιμοποιείται ο AVR gcc και ως βασική βιβλιοθήκη C χρησιμοποιείται η AVR libc. Γι’ αυτό και πρέπει να τις εγκαταστήσουμε στην αρχή.

Λόγω της καταγωγής της από την C, στην γλώσσα του Arduino μπορούμε να χρησιμοποιούμε ουσιαστικά τις ίδιες βασικές εντολές και συναρτήσεις, με την ίδια σύνταξη, τους ίδιους τύπων δεδομένων και τους ίδιους τελεστές όπως και στην C. Επιπλέον, υπάρχουν κάποιες ειδικές εντολές, συναρτήσεις και σταθερές που βοηθούν για την διαχείριση του ειδικού hardware του Arduino. Οι πιο σημαντικές από αυτές επεξηγούνται στον πίνακα που ακολουθεί:

Πίνακας 3-1

Όρισμα Είδος Τύπος Παράμετροι Περιγραφή
LOW Σταθερά int – Έχει τιμή 0 και είναι αντίστοιχη του λογικού 0 (ψευδές)
HIGH Σταθερά int – Έχει τιμή 1 και είναι αντίστοιχη του λογικού 1 (αληθές)
INPUT Σταθερά int – Έχει τιμή 0 και είναι αντίστοιχη του λογικού 0
OUTPUT Σταθερά int – Έχει τιμή 1 και είναι αντίστοιχη του λογικού 1
pinMode Εντολή – (pin,mode) Καθορίζει αν το συγκεκριμένο ψηφιακό pin θα είναι pin εισόδου ή pin εξόδου ανάλογα με την τιμή που δίνεται στην παράμετρο mode (INPUT ή OUTPUT αντίστοιχα)
digitalWrite Εντολή – (pin,pinstatus) Θέτει την κατάσταση pinstatus (HIGH ή LOW) στο συγκεκριμένο ψηφιακό pin
digitalRead Συνάρτηση int (pin) Επιστρέφει την κατάσταση του συγκεκρι-μένου ψηφιακού pin (0 για LOW, 1 για HIGH)

attachInterrupt

Εντολή –

(interrupt, function, management)

Θέτει σε λειτουργία το συγκεκριμένο interrupt, ώστε να ενεργοποιεί την συνάρτηση function, κάθε φορά που ικανοποιείται η συνθήκη που ορίζεται από την παράμετρο triggermode:
  • LOW (ενεργοποίηση όταν η κατάσταση του pin που αντιστοιχεί στο συγκεκρι- μένο interrupt γίνει LOW)
  • RISING (όταν από LOW γίνει HIGH)
  • FALLING (όταν από HIGH γίνει LOW)
  • CHANGE (όταν αλλάξει κατάσταση)
analogReference Εντολή – (type) Δέχεται τις τιμές DEFAULT, INTERNAL ή EXTERNAL ως παράμετρο (type) για να καθορίσει την τάση αναφοράς (Vref) των αναλογικών εισόδων (5V, 1,1V ή η εξωτερική τάση του pin AREF αντίστοιχα)
analogRead Συνάρτηση int (pin) Επιστρέφει έναν ακέραιο από 0 έως 1023, ανάλογα με την τάση που τροφοδοτείται το συγκεκριμένο pin αναλογικής εισόδου στην κλίμακα 0 ως Vref
analogWrite Εντολή – (pin, value) Θέτει το συγκεκριμένο ψηφιακό pin σε κατάσταση ψευδοαναλογικής εξόδου (PWM). Η παράμετρος value καθορίζει το πλάτος του παλμού σε σχέση με την περίοδο του παραγόμενου σήματος στην κλίμακα από 0 ως 255 (π.χ. Με value 127, το πλάτος του παλμού είναι ίσο με την ημιπερίοδο)

millis

Συνάρτηση

Unsigned long

() Μετρητής που επιστέφει το χρονικό διάστημα σε ms από την στιγμή που άρχισε η εκτελεστή του προγράμματος. Λόγω του τύπου μεταβλητής (unsigned long δηλ. 32 bit) θα υπερχειλίσει σε 2^32 ms (περίπου 50 ημέρες), οπότε ο μετρητής θα ξεκινήσει πάλι από το μηδέν

delay

Εντολή – (time) Σταματά προσωρινά την ροή του προγράμματος για time ms. Η παράμετρος time είναι unsigned long (από 0 ως 2^32). Σημειώστε ότι παρά την προσωρινή παύση, συναρτήσεις των οποίων η εκτέλεση ενεργο ποιείται από interrupt θα εκτελεστούν κανονικά κατά την διάρκεια μιας delay.

ΠΕΡΙΕΧΟΜΕΝΑ

ΕΙΣΗΓΗΤHΣ