Ψηφιακή Έξοδος
ΠΕΡΙΓΡΑΦΗ
Το Arduino Diecimila αποτελείται από δεκατρία ψηφιακά pin, τα οποία μπορούμε να τα χρησιμοποιήσουμε το κάθένα ξεχωριστά, είτε για είσοδο είτε για έξοδο. Μπορούμε να τα προγραμματίσουμε να συμπεριφέρονται όπως εμείς θέλουμε, αρκεί να κάνουμε τις σωστές δηλώσεις στον κώδικα που θα φορτώσουμε στην πλακέτα.
Η έξοδος του κάθε pin μπορεί να προγραμματιστεί να δίνει τιμές HIGH ή LOW. Λέγοντας HIGH ενώνουμε το δυαδικό ‘1’ και έχουμε τάση εξόδου 5V DC, ενώ το LOW είναι το δυαδικό ‘0’ και έχει τάση εξόδου 0V DC (ground). Παρακάτω θα δούμε ένα παράδειγμα για να μπορέσουμε να κατανοήσουμε τον προγραμματισμό των ψηφιακών pin του Arduino. Θα ενώσουμε ένα LED στη board και θα το προγραμματίσουμε να ανάβει και να σβήνει σε χρονικά διαστήματα ενός δευτερολέπτου.
Τα υλικά που θα χρειαστούμε στη πρώτη εφαρμογή είναι: 1 breadboard, 1 LED, 1 αντίσταση 220Ω (κόκκινο – κόκκινο – καφέ).
Η συνδεσμολογία που κάναμε φαίνεται στο παρακάτω σχήμα:

Για τη φυσική αναπαράσταση του κυκλώματος έγινε χρήση του προγράμματος Fritzing (http://fritzing.org/). Ας μελετήσουμε τώρα το πρόγραμμα που θα φορτώσουμε στο Arduino:
int LEDPin = 13;
void setup(){
pinMode(LEDPin, OUTPUT);
}
void loop(){
digitalWrite(LEDPin, HIGH);
delay(1000);
digitalWrite(LEDPin, LOW);
delay(1000);
}
Στη πρώτη γραμμή δηλώνουμε μια ακέραια μεταβλητή την LEDPin και της δίνουμε την αρχική τιμή 13, ο λόγος που έγινε αυτή η δήλωση είναι για να μας διευκολύνει αν δεν θυμόμαστε σε ποιο pin συνδέσαμε το LED. Στη συνάρτηση setup() η εντολή pinMode() χρησιμοποιείτε για να δηλώσουμε την χρήση του pin 13, δηλαδή αν θα το χρησιμοποιήσουμε σαν είσοδο ( input ) ή σαν έξοδο ( output ). Ας πάμε τώρα στη συνάρτηση loop() που όπως είπαμε ποιο πριν χρησιμοποιείτε για την επανάληψη του κώδικα, δίνοντάς μας τη ευκαιρία αν θέλουμε να ανανεώσουμε τις τιμές των μεταβλητών και να να κάνουμε το Arduino να ανταποκρίνεται στις αλλαγές αυτές. Εδώ συναντάμε την εντολή digitalWrite() που είναι υπεύθυνη στο να δώσει τιμές HIGH ή LOW στο pin που δηλώνουμε μέσα στις παρενθέσεις. Η εντολή delay() είναι υπεύθυνη για την παύση του προγράμματός μας για χρόνο που δηλώνουμε μέσα στις παρενθέσεις, το χρόνο αυτό τον καθορίζουμε σε microseconds (1000 ms = 1sec).

Εικόνα 3-2: Τα πλήκτρα του Arduino IDE
Αφού ελέγξουμε τον κώδικά για τυχόν λάθη πατώντας το κουμπί του συντακτικού ελέγχου (√), πατάμε το κουμπί “ανεβάσματος” (==>) για να γίνει η μεταγλώττιση και το ανέβασμα του δεκαεξαδικού αρχείου στο μικροελεγκτή. Αν όλα πήγαν καλά τότε θα δούμε το LED να αναβοσβήνει σε διαστήματα ενός δευτερολέπτου.