Arduino Μάθημα 1: Αναβόσβημα Led

Επισκόπηση

Σε αυτό το μάθημα θα μάθεις πως να κάνεις το λαμπάκι πάνω στον Arduino να αναβοσβήνει.
learn_arduino_overview.png

Υλικά

learn_arduino_uno_r3_web.jpg

Arduino Uno R3 1

learn_arduino_usbcable_MED.jpg

USB Lead – type A to B 1

The ‘L’ LED

Στον Arduino θα βρείτε στις δύο άκρες μια σειρά απο υποδοχές (pin header) οι οποίες χρησιμοποιούνται για την σύνδεση ηλεκτρονικών εξαρτημάτων ή συσκευών για την επέκταση των λειτουργιών του.

Παρόλα αυτά το Arduino έχει ένα λαμπάκι ενσωματωμένο πάνω στην πλακέτα και μπορούμε να το ελέγξουμε απο το πρόγραμμα. Θα βρείτε αυτό το led συνήθως με το χαρακτηριστικό γράμμα “L” Led.

Μπορείτε να διακρίνετε στην εικόνα παρακάτω το ενσωματωμένο λαμπάκι το οποίο είναι κυκλωμένο στην πλακέτα Arduino Uno & Leonardo αντίστοιχα.

learn_arduino_uno_r3_L_circled.jpg
learn_arduino_leonardo_plugged_L_circled.jpg

Φόρτωση του παραδείγματος’Blink’

Ίσως διαπιστώσετε ότι το “L” λαμπάκι πάνω στον Arduino αναβοσβήνει όταν συνδέσετε το καλώδιο USB. Αυτό συμβαίνει γιατί οι πλακέτες Arduino αποστέλλονται με φορτωμένο το παράδειγμα “Blink”. Με αυτό τον τρόπο η κατασκευάστρια εταιρεία ελέγχει τις πλακέτες προτού τις διαθέσει για πώληση.

Σε αυτό το μάθημα θα επαναπρογραμματίσουμε τον Arduino με το παράδειγμα “Blink” και στην συνέχεια θα αλλάξουμε την ταχύτητα που θα αναβοσβήνει το λαμπάκι.

Στο προηγούμενο μάθημα μάθατε πως να εγκαταστήσετε το πρόγραμμα Arduino IDE και πως να διαλέξετε την σωστή σειριακή θύρα. Τώρα ήρθε η ώρα να συνδέσετε τον Arduino στον υπολογιστή και να τον προγραμματίσετε.

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

Φορτώστε το παράδειγμα ‘Blink’ το οποίο θα βρείτε στο πρόγραμμα Arduino ακολουθώντας αυτή την διαδρομή File → Examples → 01.Basics

learn_arduino_opening_blink_example.jpg
Όταν ανοίξετε το παράδειγμα μεγιστοποιήστε την οθόνη για να βλέπετε ολόκληρο των κώδικα.
learn_arduino_ide_blink.jpg

Δημιουργήστε αντίγραφο του’Blink’

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

Για να αλλάξετε αυτό το παράδειγμα, θα πρέπει πρώτα να το αποθηκεύσετε ως νέο αρχείο.

Απο το μενού File στο πρόγραμμα Arduino επιλέξτε την επιλογή ‘Save As..’ και τέλος επιλέξτε το νέο όνομα του αρχείου. για παράδειγμα ‘MyBlink’.

learn_arduino_saving_blink_as_my_blink.jpg
Έχετε δημιουργήσει ένα αντίγραφο του ‘Blink’ μέσα στο sketchbook. Για να μπορέσετε στο μέλλον να ανοίξετε το δικό σας νέο αρχείο και να το επεξεργαστείτε, θα το βρείτε στο μενού File → Sketchbook..
learn_arduino_finding_sketch_in_sketchbook.jpg

Φόρτωση του MyBlink στην πλακέτα

Συνδέστε την πλακέτα Arduino στον υπολογιστή χρησιμοποιώντας ένα καλώδιο USB (κάθε μοντέλο Arduino μπορεί να χρησιμοποιεί διαφορετικό τύπο USB). Ελέγξετε αν οι ρυθμίσεις “Board Type” και “Serial Port” είναι σωστές.

Στο κάτω μέρος του προγράμματος μπορείτε να δείτε τις τρέχουσες ρυθμίσεις.

learn_arduino_bottom_of_ide_showing_board_port.jpg
Πατήστε το κουμπί ‘Upload’. Είναι το δεύτερο κουμπί απο τα αριστερά στην γραμμή εργαλείων του προγράμματος.
learn_arduino_upload_button.jpg
Στο κάτω μέρος του προγράμματος μπορείτε να δείτε την εξέλιξη της φόρτωσης και επίσης κάποια μηνύματα. Το πρώτο μήνυμα είναι το ‘Compiling Sketch..’. Αυτό μετατρέπει τον κώδικα σε μορφή ώστε να είναι συμβατό για να γίνει το φόρτωμα στην πλακέτα.
learn_arduino_upload_1_compiling.jpg
Εάν το πρόγραμμα δεν περιέχει σφάλματα θα δείτε στην συνέχεια το μήνυμα ‘Uploading’. Στο σημείο αυτό παρατηρήστε τα λαμπάκια πάνω στην πλακέτα έχουν αρχίσει και αναβοσβήνουν όσο το πρόγραμμα φορτώνετε.
learn_arduino_upload_2_uploading.jpg
Τέλος όταν ολοκληρωθεί η φόρτωση με επιτυχία θα δείτε το μήνυμα ‘Done’.
learn_arduino_upload_3_done.jpg
Απο κάτω στο παράθυρο διαλόγου θα δείτε το μήνυμα όπου εμφανίζει το μέγεθος του προγράμματος. π.χ. 1,084 bytes of the 32,256 bytes available. Εάν δείτε αυτό το μήνυμα σφάλμα μετά το ‘Compiling Sketch..’:
learn_arduino_upload_4_failed.jpg

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

Αν αντιμετωπίζετε αυτό το πρόβλημα μεταβείτε στο μάθημα 0 και ακολουθήστε τα βήματα εγκατάστασης απο την αρχή.

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

Πως δουλεύει το ‘Blink’

Αυτός είναι ο κώδικας για το αναβόσβημα του led.
  1. /*
  2. Blink
  3. Turns on an LED on for one second, then off for one second, repeatedly.
  4. This example code is in the public domain.
  5. */
  6. // Pin 13 has an LED connected on most Arduino boards.
  7. // give it a name:
  8. int led =13;
  9.  
  10. // the setup routine runs once when you press reset:
  11. void setup(){
  12. // initialize the digital pin as an output.
  13. pinMode(led, OUTPUT);
  14. }
  15.  
  16. // the loop routine runs over and over again forever:
  17. void loop(){
  18. digitalWrite(led, HIGH);// turn the LED on (HIGH is the voltage level)
  19. delay(1000);// wait for a second
  20. digitalWrite(led, LOW);// turn the LED off by making the voltage LOW
  21. delay(1000);// wait for a second
  22. }

Σε αυτό το παράδειγμα το μεγαλύτερο μέρος του αποτελείται απο σχόλια. Τα σχόλια δεν είναι μέρος του προγράμματος, είναι απλά σημειώσεις για το πως λειτουργεί το πρόγραμμα. Τα σχόλια χρησιμοποιούνται για να μας διευκολύνουν και να επεξηγούν τον κώδικα.

Οτιδήποτε ανάμεσα σε /* and */ στην αρχή του προγράμματος είναι σχόλια τα οποία περιγράφουν την λειτουργία του.

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

Η πρώτη ουσιαστική γραμμή του κώδικα είναι:

  1. int led =13;

Όπως αναφέρει και το σχόλιο απο πάνω, η γραμμή αυτή δίνει ένα όνομα στο pin όπου το λαμπάκι είναι συνδεδεμένο. Στις περισσότερες πλακέτες Arduino το ενσωματωμένο λαμπάκι είναι στο pin 13.

Στην συνέχεια υπάρχει η ενότητα ‘setup’. Όπως εξηγεί επίσης το σχόλιο το κομμάτι του προγράμματος ‘setup’ εκτελείται μόνο μια φορά στην αρχή ή όταν κάνουμε reset τον Arduino. Reset μπορεί να γίνει απο τον χρήστη πατώντας το κουμπί Reset στην πλακέτα, όταν για οποιαδήποτε λόγο διακοπή η τροφοδοσία και όταν φορτώνουμε ένα πρόγραμμα.

  1. void setup(){
  2. // initialize the digital pin as an output.
  3. pinMode(led, OUTPUT);
  4. }

Κάθε πρόγραμμα Arduino πρέπει να περιέχει την ενότητα ‘Setup’ και ανάμεσα στις αγκύλες {    } γράφουμε τις οδηγίες του προγράμματος.

Στο παράδειγμα αυτό έχουμε μόνο μια εντολή μέσα στην ενότητα ‘setup’, η οποία όπως εξηγεί και το σχόλιο δηλώνει ότι το Led pin λειτουργεί σαν έξοδος.

Η επόμενη ενότητα που πρέπει υποχρεωτικά να περιλαμβάνει το πρόγραμμα του Arduino ονομάζεται “loop”. Η διαφορά τους είναι ότι η function setup εκτελείται μόνο μια φορά όταν τροφοδοτείται η πλακέτα ή όταν γίνει reset στον Arduino, ενώ σε αντίθεση με την function loop όπου εκτελείται στην συνέχεια όταν ολοκληρωθεί η function setup και επαναλαμβάνεται συνέχεια απο την αρχή ως το τέλος της.

  1. void loop(){
  2. digitalWrite(led, HIGH);// turn the LED on (HIGH is the voltage level)
  3. delay(1000);// wait for a second
  4. digitalWrite(led, LOW);// turn the LED off by making the voltage LOW
  5. delay(1000);// wait for a second
  6. }
Στον παραπάνω κώδικα θα δείτε ότι μέσα στην function loop η πρώτη γραμμή που εκτελείται ανάβει το λαμπάκι με την εντολή “HIGH”, στην συνέχεια κάνει παύση του προγράμματος για 1000 milliseconds (1 δευτερόλεπτο) με την εντολή “delay”. Τέλος θα δείτε ότι επαναλαμβάνετε η εντολή “digitalWrite” όπως στην αρχή με την διαφορά ότι δίνει την τιμή “LOW”, άρα το λαμπάκι σβήνει και κάνει πάλι παύση του προγράμματος για 1000 milliseconds (1 δευτερόλεπτο). Με αυτές τις τέσσερις γραμμές κώδικα όπου εκτελούνται συνέχεια μέσα στην function “loop” επιτυγχάνουμε να αναβοσβήνουμε ένα λεντάκι με ρυθμό ενός δευτερολέπτου.

Αυξήστε τον ρυθμό αναβοσβησίματος

Για να κάνετε το λεντάκι σας να αναβοσβήνει γρηγορότερα θα πρέπει να αλλάξετε την “τιμή” της εντολής “delay” μέσα στην παρένθεση. Μπορείτε να δείτε και την εικόνα παρακάτω.
learn_arduino_ide_blink_delay_circled.jpg

Η τιμή αυτή αναφέρεται σε milliseconds, οπότε μπορείτε να δοκιμάσετε και να αλλάξετε την τιμή απο 1000 σε 500, το αποτέλεσμα θα είναι να αναβοσβήνει το λεντάκι πιο γρήγορα (ανά μισό δευτερόλεπτο). Αντίστοιχα θα μπορούσατε να το κάνετε να αναβοσβήνει πιο αργά αν αυξήσετε την τιμή (π.χ 2000 ανά δύο δευτερόλεπτα).

Μετά απο κάθε αλλαγή στο πρόγραμμα θα πρέπει να το φορτώσετε ξανά στην πλακέτα Arduino.

Tagged with: , , ,

Leave a Reply

Your email address will not be published. Required fields are marked *

*