#5 Γράφοντας προγράμματα στο Arduino IDE (Μέρος 2ο)


Φυσικά δεν μπορούμε να δούμε όλες τις συναρτήσεις που υπάρχουν, θα αναφερθούμε στις πιο σημαντικές - βασικές. Οι συναρτήσεις του Arduino αποτελούν βασικό παράγοντα στον προγραμματισμό του μικρο ελεγκτή μας καθώς αυτές συνδέουν πολύ εύκολα το Arduino uno με τα υπόλοιπα στοιχεία του κυκλώματος μας. (π.χ. led, κουμπιά/διακόπτες, οθόνη LCD, ηχείο).

pinMode(pin, mode) ;
Είναι πολύ σημαντικό να "πούμε" στο Arduino εάν ο ακροδέκτης/pin που έχουμε συνδέσει με το στοιχείο του κυκλώματος μας είναι είσοδος ή έξοδος, εάν δηλαδή θα λάβει ή θα στείλει κάποιο σήμα. Για παράδειγμα εάν έχουμε κάποιο led, θέλουμε να στείλουμε σήμα να ανάψει ή να σβήσει, άρα το pin που το έχουμε συνδέσει στο Arduino uno θα πρέπει να το δηλώσουμε ως έξοδο. Αντίστοιχα, εάν έχουμε ένα κουμπί/διακόπτη, θέλουμε να λάβουμε ένα σήμα στο Arduino uno όταν ενεργοποιηθεί για να κάνει κάποια λειτουργία, άρα το pin θα το δηλώσουμε ως είσοδο. π.χ. pinMode(5,INPUT); ή pinMode(2,OUTPUT);

digitalWrite(pin, value); 
Αφού έχουμε δηλώσει τον ρόλο του pin που μας ενδιαφέρει με την συνάρτηση pinMode πρέπει τώρα να πούμε στο Arduino τι να κάνει με αυτό. Ας δούμε τις λειτουργίες μέσα απο κάποια παραδείγματα. Έστω οτι έχουμε ένα led και θέλουμε να το ανάψουμε, όπως στην εικόνα παραπάνω, θα κάνουμε χρήση της συνάρτησης digitalWrite ως εξής: digitalWrite(2, HIGH); Εάν θέλουμε να το σβήσουμε τότε η συνάρτηση αλλάζει και γίνεται: digitalWrite(2, LOW); Με την τιμή HIGH δίνουμε λογικό '1' ή 5V ή Vcc και με την LOW λογικό '0' ή 0V ή GND.

όνομα_μεταβλητής=digitalRead(pin);
Με την digitalRead αντίστοιχα λέμε στο Arduino να διαβάσει μια τιμή. Η τιμή αυτή και εδώ μπορεί να είναι HIGH ή LOW. Έτσι για παράδειγμα εάν έχουμε ένα κουμπί, όπως στην εικόνα παραπάνω, το οποίο όταν τον πατάμε περνάει ρεύμα, τότε το διαβάζουμε ως εξής:
timi=digitalRead(5); και η τιμή που θα πάρει θα είναι HIGH. Μόλις σταματήσουμε να τον πατάμε η τιμή θα γίνει LOW.

analogWrite(pin, value);
Με την συνάρτηση digitalWrite είδαμε οτι μπορούμε να δώσουμε έξοδο με μόνο δυο τιμές, HIGH και LOW. Τι γίνεται όμως όταν θέλουμε να χαμηλώσουμε τον φωτισμό σε ένα led ή να περιστρέψουμε ένα DC μοτερ με λιγότερη ταχύτητα; Σαν σκέψη θα λέγαμε να δώσουμε λιγότερη τάση, π.χ. 2.5V αντί για 5V στο μοτέρ μας για να περιστρέφετε με την μισή ταχύτητα, αλλά δεν γίνεται αυτό. Έτσι για να το πετύχουμε στο Arduino χρησιμοποιούμε την συνάρτηση analogWrite η οποία μπορεί να πάρει τιμές από 0 έως 255. Η λειτουργία αυτή λέγετε Pulse Width Modulation - PWM και στo Arduino uno μπορούμε να την χρησιμοποιήσουμε στα pin 3, 5, 6, 9, 10 και 11. Αυτό που κάνει είναι να στέλνει παλμούς, φανταστείτε το σαν έναν διακόπτη που ανοιγοκλείνει πολύ γρήγορα. Έτσι εάν θέλαμε να περιστρέψουμε ένα μοτέρ με την μισή ταχύτητα θα κάναμε χρήση της συνάρτησης ως εξής: analogWrite(3, 127); Η παρακάτω εικόνα θα σας βοηθήσει να καταλάβετε την λειτουργία των παλμών.


όνομα_μεταβλητής=analogRead(pin);
Την συνάρτηση analogRead την χρησιμοποιούμε όταν θέλουμε να διαβάσουμε μια αναλογική τιμή, π.χ. από ένα αισθητήρα θερμοκρασίας, αισθητήρα υπερήχων, αισθητήρα υπερύθρων. Οι τιμές που μπορεί να διαβάσει είναι από 0 έως 1023. Τα διαθέσιμα analog pins του Arduino uno είναι απ'το Α0 έως το Α5.
Αυτές είναι οι βασικές συναρτήσεις του Arduino, περισσότερες θα δούμε σε κατασκευές και επόμενα μαθήματα.
Συντάκτης: Βασιλάκης Μιχάλης
Πηγή: http://www.ardumotive.com/arduino-ide.html