Γνωριμία με το Arduino

Σχετικά έγγραφα
Εφαρμογές Σειριακής Επικοινωνίας

ΑΣΚΗΣΗ 1 (22 Νοεμβρίου 2017)

Μετρήσεις και συλλογή δεδομένων (Data acquisition) με μικροελεγκτές. Εισαγωγή στο Arduino. Ηλεκτρομηχανολογικός εξοπλισμός διεργασιών

ΕΡΓΑΣΤΗΡΙΟ 4 ΕΙΣΑΓΩΓΗ ΣΤΟN ARDUINO: ΨΗΦΙΑΚΗ ΕΙΣΟΔΟΣ/ΕΞΟΔΟΣ

Μηχανοτρονική. Τμήμα Μηχανικών Παραγωγής και Διοίκησης 7 ο Εξάμηνο,

Ενσωµατωµένα Συστήµατα

ΕΙΣΑΓΩΓΗ ΣΤΟ ARDUINO. Υποψήφιος Διδάκτωρ

Το κύκλωμα σε breadboard

ΕΦΑΡΜΟΓΕΣ ΤΗΛΕΠIΚΟΙΝΩΝΙΑΚΩΝ ΔΙΑΤΑΞΕΩΝ

Φύλλο εργασίας 6 - Θερμόμετρο εξωτερικού χώρου. Το κύκλωμα σε breadboard

Πλακέτα Arduino. 1ο ΕΠΑΛ Περάματος - 7ο ΕΚ Πειραιά

Έλεγχος με Μικροϋπολογιστές Εργαστήριο ενσωματωμένων συστημάτων

Εφαρμογές Αναλογικών Ε/Ε PWM (pulse Width Modulation)

Εφαρμογές Arduino Σεμινάριο Ηλεκτρονικού Τομέα

Έλεγχος με Μικροϋπολογιστές Εργαστήριο ενσωματωμένων συστημάτων

Η δυναμική του Arduino στο μάθημα της Τεχνολογίας. Φάσουρας Δημήτριος Ηλεκτρολόγος ΠΕ 17,03

Ενσωματωμένα Συστήματα

Φύλλο εργασίας 9 - Αυτόνομο ρομποτικό όχημα αποφυγής εμποδίων

Συλλογή & Επεξεργασία Δεδομένων Εργαστήριο 5. Ρυθμίζοντας τη Φορά Περιστροφής. Σύστημα Συλλογής & Επεξεργασίας Μετρήσεων

Εφαρμογές αναλογικών / Ψηφιακών

Έλεγχος με Μικροϋπολογιστές Εργαστήριο ενσωματωμένων συστημάτων

2017 Κατασκευάζω και Προγραμματίζω με τον μικροελεγκτή Arduino

Προγραμματισμο ς σε Arduino

ΜΙΚΡΟΕΛΕΓΚΤΗΣ PICAXE 18M2

Έλεγχος με Μικροϋπολογιστές Εργαστήριο ενσωματωμένων συστημάτων

ΣΤΟΙΧΕΙΑ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ ARDUINO

Φύλλο εργασίας 4 - Αυτόματο φωτάκι νυκτός

Φύλλο εργασίας 3 - Χριστουγεννιάτικα φωτάκια (σταδιακή αύξηση και μείωση φωτεινότητας ενός LED) Το κύκλωμα σε breadboard

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

Arduino Teachers Workshop

Συλλογή & Επεξεργασία Δεδομένων Εργαστήριο 2 USB και Σειριακή Επικοι- νωνία Σ Σειριακή Επικοινωνία

ΠΛΗΡΟΦΟΡΙΚH ΓΙΑ ΤΗΝ ΤEΧΝΗ Η ΕΞAΜΗΝΟ

διατίθεται με άδεια χρήσης GPL για πλατφόρμες Linux, MAC και Windows.

ΠΕΡΙΕΧΟΜΕΝΑ ΚΕΦΑΛΑΙΟ I: ΕΙΣΑΓΩΓΗ ΣΤΑ ΗΛΕΚΤΡΟΝΙΚΑ

Συλλογή & Επεξεργασία Δεδομένων Εργαστήριο 1. Arduino + LabVIEW: Μέτρηση Έντασης Φωτός με Φωτοαντίσταση. Σύστημα Συλλογής & Επεξεργασίας Μετρήσεων

Φύλλο εργασίας 7 - Δημιουργώ τα δικά μου χρώματα με το RGB LED

ΑΣΚΗΣΗ 2 (29 Νοεμβρίου 2016)

Κωνσταντίνος Γκαλονάκης. Arduino: Προγραμματισμός στην πράξη

ΕΝΟΤΗΤΑ 5 Αναλογικά σήματα

LFT169 - LFR169 ΠΟΜΠΟΣ ΚΑΙ ΔΕΚΤΗΣ ΨΗΦΙΑΚΩΝ ΚΑΙ ΑΝΑΛΟΓΙΚΩΝ ΣΗΜΑΤΩΝ

Αυτοματισμοί και Συστήματα Αυτομάτου Ελέγχου. Ενότητα 2

Έλεγχος με Μικροϋπολογιστές Εργαστήριο ενσωματωμένων συστημάτων

Έλεγχος κινητήρα συνεχούς ρεύματος με τρανζίστορ και Arduino

Εφαρμογές Arduino Σεμινάριο Ηλεκτρονικού Τομέα

ΣΥΣΚΕΥΗ ΜΕ ΦΩΤΟΒΟΛΤΑΪΚΗ ΚΥΨΕΛΗ ΜΕΤΑΤΡΟΠΕΑ DC σε AC ΚΑΙ ΤΡΟΦΟΔΟΤΙΚΟ UPS

ΔΡΑΣΤΗΡΙΟΤΗΤΑ ΕΙΣΑΓΩΓΗ ΣΤΟ ARDUINO- 01a

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

Εξαμηνιαία Εργασία 2013 Προγραμματίζοντας τον Arduino στη C Μέρος Α : Υλικά

ΕΝΟΤΗΤΑ 10: ΟΔΗΓΗΣΗ ΚΙΝΗΤΗΡΩΝ

Φύλλο εργασίας 4 - Δημιουργώ τα δικά μου χρώματα με το RGB LED

Ψηφιακά Αντικείμενα Μάθημα 1 Δραστηριότητα 2. Προγραμματισμός Φυσικών Συστημάτων. Συστήματα Πραγματικών Εφαρμογών. Νέα Ψηφιακά Αντικείμενα

Lab 1: Experimenting on Arduino & AI Sense

Ενσωματωμένα Συστήματα

Εκπαιδευτική Ρομποτική με ARDUINO. για εκπαιδευτικούς και μαθητές. 1o Μέρος: Απλά Κυκλώματα

για τις ρυθμίσεις LabView μέσα από το κανάλι και του καλωδίου USB.

«ΥΛΟΠΟΙΗΣΗ ΑΣΥΡΜΑΤΗΣ ΕΠΙΚΟΙΝΩΝΙΑΣ ΜΕ ΧΡΗΣΗ ΜΙΚΡΟΕΛΕΓΚΤΩΝ» ΒΥΣΑΝΣΙΩΤΗΣ ΣΤΑΥΡΟΣ Α.Μ ΚΑΡΒΟΥΝΙΔΟΥ ΑΓΓΕΛΙΚΗ Α.Μ

Ψηφιακά Αντικείμενα Μάθημα 1 Δραστηριότητα 1. Προγραμματισμός Φυσικών Συστημάτων. Νέα Ψηφιακά Αντικείμενα

Τεχνολογικό Εκπαιδευτικό Ίδρυμα Σερρών Σχολή Τεχνολογικών Εφαρμογών Τμήμα Πληροφορικής & Επικοινωνιών

Παράρτημα. Πραγματοποίηση μέτρησης τάσης, ρεύματος, ωμικής αντίστασης με χρήση του εργαστηριακού εξοπλισμού Άσκηση εξοικείωσης

4 Εισαγωγή στο Arduino

Απλή Δομή Επιλογής. Ο κώδικας. //με χρήση μεταβλητών. delay (3000);

Bread Online. Παναγιώτης Ιωαννίδης Επιβλέπων καθηγητής: Μηνάς Δασυγένης

ΔΙΔΑΚΤΙΚΟ ΣΕΝΑΡΙΟ ΔΗΜΙΟΥΡΓΙΑ ΣΥΣΤΗΜΑΤΟΣ ΔΙΕΞΑΓΩΓΗΣ ΠΑΙΧΝΙΔΙΟΥ ΕΡΩΤΗΣΕΩΝ/ΑΠΑΝΤΗΣΕΩΝ ΜΕ ΧΡΗΣΗ ARDUINO - QUIZ GAME ΦΥΛΛΟ ΕΡΓΑΣΙΑΣ 3

Συλλογή & Επεξεργασία Δεδομένων Εργαστήριο 3 Μέτρηση Θερμοκρασίας Σύστημα Ελέγχου Θερμοκρασίας. Σύστημα Συλλογής & Επεξεργασίας Μετρήσεων

Σκοπός. Προγραμματίζοντας τον Arduino ΙΙ Εντολή Εκχώρησης & Εντολές. Συλλογή & Επεξεργασία Δεδομένων. Πρόγραμμα. Εντολές Επεξεργασίας Δεδομένων

ΕΡΓΑΣΤΗΡΙΟ 6 ΟΔΗΓΗΣΗ ΑΠΕΙΚΟΝΙΣΕΩΝ SSD ΚΑΙ LCD

GSM INTD Εγχειρίδιο χρήσης GSM INTD0909

Arduino. δουλεύοντας με το... Υλικό αναφοράς και χρήσης της ανοιχτής πλατφόρμας

ΕΝΟΤΗΤΑ 7: ΑΙΣΘΗΤΗΡΕΣ ΥΠΕΡΥΘΡΩΝ

Συλλογή & Επεξεργασία Δεδομένων Εργαστήριο 4. Οδηγώντας έναν DC Κινητήρα. Το κύκλωμα της Λειτουργίας DC Κινητήρα

Συλλογή & Επεξεργασία Δεδομένων Εργαστήριο 8. Μετρώντας Επιτάχυνση με το Accelerόμετρο (ADXL 335) Σύστημα Συλλογής & Επεξεργασίας Μετρήσεων

Σχεδιασμός και Υλοποίηση οχήματος ελεγχόμενου μέσω Bluetooth

Έργο 1 LED που αναβοσβήνει (LED Flasher)

Project 5: Συνθέτοντας μουσική

Μέτρηση Θερμοκρασίας με τον αισθητήρα TMP36. Σύστημα Συλλογής & Επεξεργασίας Μετρήσεων. Βασική δομή ενός προγράμματος στο LabVIEW.

ΕΝΟΤΗΤΑ 3 ΕΚΦΡΑΣΕΙΣ, ΑΝΑΜΟΝΕΣ (DELAYS), ΗΧΟΙ

Τεχνολογικό+Eκπαιδευτικό+Ίδρυμα+Kρήτης+ TMHMA+MHXANOΛOΓIAΣ+ (

ΒΑΣΙΚΕΣ ΠΛΗΡΟΦΟΡΙΕΣ. Τίτλος Μαθήματος. Διαλέξεις - Θεωρητική Διδασκαλία, Εποπτευόμενο Εργαστήριο Επίδειξη, Μελέτες (Projects)

ΑΣΚΗΣΗ 0. Κύκλωμα - Όργανα

ΡΟΜΠΟΤΙΚΗ ΚΑΙ ΑΥΤΟΜΑΤΙΣΜΟΣ

ΣΥΝΔΕΣΗ ΣΕ ΣΕΙΡΑ ΕΠΩΝΥΜΟ: ΟΝΟΜΑ: ΑΜ: ΕΠΩΝΥΜΟ: ΟΝΟΜΑ: ΑΜ: ΕΠΩΝΥΜΟ: ΟΝΟΜΑ: ΑΜ: 1 ΣΚΟΠΟΣ 1 2 ΘΕΩΡΗΤΙΚΟ ΥΠΟΒΑΘΡΟ 1 3 ΕΞΟΠΛΙΣΜΟΣ 7 4 ΕΞΑΡΤΗΜΑΤΑ 7

Εξαμηνιαία Εργασία 2013 Προγραμματίζοντας τον Arduino στη C Μέρος Β : Επικοινωνία Υπολογιστή με Μικροελεγκτή

Παράρτημα Φύλλο εργασίας 1: Δραστηριότητα 1 : Να αναβοσβήνει η φωτοδίοδος ανά ένα δευτερόλεπτο. Μέλη της ομάδας :

ΑΣΚΗΣΗ 8 Tutorial by TeSLa Συνδεσμολογία κυκλώματος Διαδικασία Προγραμματισμού

Οδηγός Arduino για το μάθημα της Πληροφορικής

Ελεγκτής Σταδιακής Ανατολής/Δύσης Λαμπτήρων Ενυδρείου Sunrise/Sunset Aquarium Dim Controller

Μ.Π.Σ. «ΠΡΟΗΓΜΕΝΕΣ ΜΕΘΟΔΟΙ ΚΑΤΑΣΚΕΥΗΣ ΠΡΟΙΟΝΤΩΝ ΑΠΟ ΞΥΛΟ» Μάθημα: Σχεδίαση και Εφαρμογές Διαδραστικών Συστημάτων. Διδάσκοντας: Α.

Εμμανουήλ Πουλάκης. Προγραμματίζοντας με τον μικροελεγκτή Arduino

Άδεια Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άδεια

ΜΕΛΕΤΗ ΚΑΙ ΚΑΤΑΣΚΕΥΗ ΣΥΣΤΗΜΑΤΟΣ ΑΝΙΧΝΕΥΣΗΣ ΑΝΘΡΩΠΙΝΗΣ ΠΑΡΟΥΣΙΑΣ ΣΕ ΑΠΟΜΑΚΡΥΣΜΕΝΕΣ ΘΕΣΕΙΣ ΜΕ ΑΣΥΡΜΑΤΗ ΜΕΤΑΔΟΣΗ ΔΕΔΟΜΕΝΩΝ ΣΕ ΚΕΝΤΡΙΚΟ ΠΙΝΑΚΑ ΕΛΕΓΧΟΥ

Οδηγός χρήσης. Συνοπτικές οδηγίες. Προσοχή στη σωστή πολικότητα:

Κεφάλαιο 1.6: Συσκευές αποθήκευσης

ΝΟΜΟΣ ΤΟΥ OHM ΕΠΩΝΥΜΟ: ΟΝΟΜΑ: ΑΜ: ΕΠΩΝΥΜΟ: ΟΝΟΜΑ: ΑΜ: ΕΠΩΝΥΜΟ: ΟΝΟΜΑ: ΑΜ: 1 ΣΚΟΠΟΣ 1 2 ΘΕΩΡΗΤΙΚΟ ΥΠΟΒΑΘΡΟ 1 3 ΕΞΟΠΛΙΣΜΟΣ 5 4 ΕΞΑΡΤΗΜΑΤΑ 5

ΠΑΝΕΛΛΗΝΙΟΣ ΔΙΑΓΩΝΙΣΜΟΣ ΦΥΣΙΚΗΣ "ΑΡΙΣΤΟΤΕΛΗΣ" Γ Λυκείου Β Φάση: Πειραματικό μέρος : 14/04/2018 Q E-2

ΕΛΕΓΧΟΣ ΑΝΤΛΙΟΣΤΑΣΙΟΥ ΜΕ ΔΕΞΑΜΕΝΗ ΜΕΣΩ GSM CHECK IN TANK PUMPING THROUGH GSM

Κάμερα καταγραφικό Ρολόι χειρός

Εισαγωγή στην Open Source Πλατφόρμα Μικροελεγκτών Arduino

ΕΡΓΑΣΤΗΡΙΑΚΗ ΑΣΚΗΣΗ ΜΑΘΗΜΑ ΗΛΕΚΤΡΟΝΙΚΗΣ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΠΑΡΑΓΩΓΗΣ ΚΑΙ ΔΙΟΙΚΗΣΗΣ

ΚΕΦΑΛΑΙΟ 5 ΠΡΟΣΟΜΟΙΩΤΗΣ PLC SIMATIC S7-300

Ψηφιακά Ηλεκτρονικά. Προαιρετική εργασία

Transcript:

Γνωριμία με το Arduino Τι είναι το Arduino; Το arduino είναι ένας μικρός υπολογιστής σε μέγεθος παλάμης που περιλαμβάνει ένα μικροελεγκτή (για εκτέλεση εντολών) και ένα σύνολο εισόδων/εξόδων για επικοινωνία με εξωτερικά κυκλώματα. Ο προγραμματισμός του γίνεται σε γλώσσα τύπου C, που ονομάζεται Wiring. Με ποια φιλοσοφία κατασκευάστηκε; Πρόκειται για μια πλατφόρμα ανοικτής αρχιτεκτονικής της οποίας τα σχέδια παρέχονται δωρεάν και ελεύθερα στο διαδίκτυο, για οποιαδήποτε τροποποίηση. Συνδυάζει το μικρό κόστος με τις υψηλές δυνατότητες. Τι κόστος έχει; Το κόστος του Arduino ξεκινά από 7 ευρώ ανάλογα την έκδοση (εκδόσεις: UNO, nano). Στην αγορά μπορείτε να βρείτε και άλλες παραλλαγές με διαφορετικά χαρακτηριστικά (π.χ. Arduino Lilypad για ειδικές εφαρμογές). Τι εφαρμογές υποστηρίζει; Οι εφαρμογές που μπορούν να δημιουργηθούν με το Arduino είναι πραγματικά αμέτρητες. Μοναδικός περιορισμός είναι η φαντασία και οι δεξιότητες κάθε κατασκευαστή. Ανάλογα με την εφαρμογή, ίσως χρειαστούν επιπλέον εξαρτήματα και διατάξεις, όπως αισθητήρες, ολοκληρωμένα κυκλώματα, μοτέρ, έτοιμα shield (π.χ. GPS, Ethernet,WiFi,sound,camera,κλπ), ηλεκτρονικά εξαρτήματα, κα. Δομή πλατφόρμας Arduino Reset Button LED L LED TX LED RX AREF pin GND pin Ψηφιακά pin (0-13) Θύρα USB Power LED FTDI USB chip ρυθμιστής τάσης Μικροελεγκτής Atmega328 Υποδοχή εξωτερικής Τροφοδοσίας Pin τροφοδοσίας Αναλογικά Pin (0-5) Page 1

Η παραπάνω εικόνα λειτουργεί ως «χάρτης» της πλατφόρμας του arduino, τα βασικά μέρη του οποίου θα αναλυθούν στη συνέχεια. 1) Μικροελεγκτής (microcontroller) Το Arduino βασίζεται στον μικροελεγκτή Atmega328, ο οποίος διαθέτει μνήμη τριών τύπων: a. SRAM: 2kb μνήμης SRAM η οποία είναι η ωφέλιμη μνήμη που χρησιμοποιούν τα προγράμματα κατά την εκτέλεση, για την αποθήκευση μεταβλητών, πινάκων, κλπ. Η μνήμη αυτή χάνει τα δεδομένα της όταν διακοπεί της τροφοδοσίας ή την επανεκκίνηση του board (reset). b. EEPROM: 1kb μνήμης EEPROM, η οποία μπορεί να χρησιμοποιηθεί για εγγραφή/ανάγνωση δεδομένων ανά byte από τα προγράμματα κατά την εκτέλεση. Αντίθετα με την SRAM, η EEPROM δεν χάνει τα περιεχόμενα της με την απώλεια τροφοδοσίας ή την επανεκκίνηση της πλατφόρμας, οπότε είναι κάτι ανάλογο του σκληρού δίσκου. c. Flash: 32 kb μνήμης Flash, από τα οποία τα 2kb χρησιμοποιούνται από τον Bootloader, ο οποίος είναι αναγκαίος για την εγκατάσταση των δικών σας προγραμμάτων στο μικροελεγκτή μέσω της θύρας USB. Τα υπόλοιπα 30 kb της μνήμης Flash χρησιμοποιούνται στον υπολογιστή για την αποθήκευση των προγραμμάτων. Όπως και η μνήμη EEPROM, η Flash δεν χάνει τα δεδομένα της με την απώλεια τροφοδοσίας ή επανεκκίνηση του συστήματος. 2) Είσοδοι/έξοδοι a. Ψηφιακές είσοδοι/έξοδοι: Στην επάνω πλευρά του Arduino βρίσκονται 14 θηλυκά pin, αριθμημένα από το 0 έως το 13, τα οποία μπορούν να λειτουργήσουν ως ψηφιακές είσοδοι ή έξοδοι. Λειτουργούν σταθερά στα 5V και καθένα από αυτά μπορεί να παρέχει ή να δεχτεί το πολύ 40 ma. Στη περίπτωση που κάποιο από τα pin αυτά οριστεί ως ψηφιακή έξοδος, μπορεί να τεθεί από το πρόγραμμα ως HIGH ή LOW, έτσι το Arduino θα ξέρει αν πρέπει να διοχετεύσει ή όχι ρεύμα στο συγκεκριμένο pin (π.χ. ο έλεγχος ενός LED). Αντίθετα, εάν κάποιο από τα παραπάνω pin οριστεί ως ψηφιακή είσοδος, τότε με την κατάλληλη εντολή μπορεί να διαβαστεί η κατάστασή του, ανάλογα με το αν το εξάρτημα που είναι συνδεδεμένο διοχετεύει ή όχι ρεύμα στο pin (π.χ. ο έλεγχος ενός διακόπτη). Μερικά από αυτά τα 14 pin έχουν διπλή λειτουργία. Συγκεκριμένα: i. Pin 0, 1: λειτουργούν ως RX/TX αντίστοιχα. Χρησιμοποιούνται για την σειριακή επικοινωνία μέσω προγράμματος. Έστω ότι το πρόγραμμα στέλνει δεδομένα σειριακά, αυτά προωθούνται με τη σειρά τους στη θύρα USB αλλά και στο pin 0 για να τα διαβάσει ενδεχομένως μια άλλη συσκευή (π.χ. ένα δεύτερο arduino, στο αντίστοιχο pin 1). ii. Pin 2, 3: λειτουργούν και ως εξωτερικές διακοπές (interrupt). Μπορούν να ρυθμιστούν μέσα από το πρόγραμμα, ώστε να λειτουργούν αποκλειστικά ως ψηφιακές είσοδοι, οι οποίες να σταματούν την ροή του προγράμματος όταν δέχονται συγκεκριμένες αλλαγές και να εκτελείται μια συγκεκριμένη συνάρτηση. Τα εξωτερικά interrupts είναι ιδιαίτερα χρήσιμα σε εφαρμογές που απαιτούν συγχρονισμό μεγάλης ακρίβειας. Page 2

iii. Pin 3,5,6,9,10,11: Λειτουργούν και ως ψευδοαναλογικές έξοδοι με το σύστημα PWM (Pulse Width Modulation). Με την τεχνική PWM, στην ουσία στο pin παράγεται ένας συνεχόμενος παλμός που θα εναλλάσσεται με μεγάλη συχνότητα και για ίσους χρόνους μεταξύ των 0V και 5V. b. Αναλογικές Είσοδοι/Έξοδοι Στην κάτω πλευρά του Arduino με τη σήμανση Analog In, υπάρχουν ακόμα 6 pin, αριθμημένα από το 0 έως το 5. Το κάθε ένα από αυτά λειτουργεί ως αναλογική είσοδος/έξοδος, κάνοντας χρήση ενός ADC, ο οποίος είναι ενσωματωμένος στον μικροελεγκτή. 3) Τροφοδοσία Το Arduino μπορεί να τροφοδοτηθεί με ρεύμα είτε από τον υπολογιστή μέσω της σύνδεσης USB, είτε από την εξωτερική τροφοδοσία που παρέχεται μέσω μιας υποδοχής φις των 2.1mm (power jack), που βρίσκεται στη κάτω αριστερή γωνία του arduino. Η εξωτερική τροφοδοσία, πρέπει να είναι από 7 έως 12 V και μπορεί να προέρχεται από ένα κοινό μετασχηματιστή του εμπορίου, από μπαταρίες ή οποιαδήποτε άλλη πηγή DC. Στη κάτω πλευρά του Arduino, δίπλα από τα αναλογικά pin υπάρχει η περιοχή με την σήμανση Power, όπου υπάρχουν τα pin για την τροφοδοσία του Arduino. Συγκεκριμένα: a. Reset pin: Όταν αυτό το pin γειωθεί (σύνδεση με GND) έχει ως αποτέλεσμα την επανεκκίνηση του Arduino. b. 3V3 pin: Τροφοδοτεί τα εξαρτήματα που συνδέονται με το Arduino με τάση 3.3V. Η τάση αυτή παράγεται από τον ελεγκτή FTDI USB chip και έτσι η μέγιστη ένταση που μπορεί να παρέχει είναι μόλις 50 ma. c. 5V: Τροφοδοτεί τα εξαρτήματα με τάση 5V.Ανάλογο με τον τρόπο τροφοδοσίας η τάση αυτή προέρχεται είτε άμεσα μέσω της θύρας USB (5V) είτε άμεσα μέσω εξωτερικής τροφοδοσίας (7-12V), όπου η τάση πρώτα θα περάσει από έναν ρυθμιστή τάσης ώστε να προσαρμοστεί τα 5V. d. GNG: Λειτουργεί ως γείωση. e. Vin: Το pin αυτό έχει διπλό ρόλο. Σε συνδυασμό με το pin της γείωσης μπορεί να λειτουργήσει ως μέθοδος εξωτερικής τροφοδοσίας του Arduino. Αν όμως έχετε ήδη συνδεδεμένη την εξωτερική τροφοδοσία μέσω του φις (power Jack), μπορεί να το χρησιμοποιηθεί για να τροφοδοτήσει εξαρτήματα με τη πλήρη τάση που παρέχει η εξωτερική τροφοδοσία (7-12V), πριν αυτή περάσει από το ρυθμιστή τάσης. f. AREF: Το AREF επιτρέπει την τροφοδοσία του Arduino με την τάση αναφοράς. 4) Ενσωματωμένα κουμπιά και LED Πάνω στη πλακέτα του Arduino υπάρχει ένας διακόπτης micro switch και τέσσερα LED επιφανειακής στήριξης. Η λειτουργία του διακόπτη (ο οποίος φέρει τη σήμανση reset) είναι να κάνει επανεκκίνηση στο Arduino. Το LED με την σήμανση Power ενεργοποιείται μόλις το Arduino συνδεθεί με την τροφοδοσία. Τα LED με τις σημάνσεις RX/TX αντίστοιχα, χρησιμοποιούνται ως ένδειξη λειτουργίας του σειριακού interface του Arduino. Ανάβουν όταν το arduino στέλνει (TX) ή λαμβάνει (RX) δεδομένα. Page 3

Τέλος, υπάρχει και το LED με τη σήμανση L. Είναι συνδεδεμένο με τον ψηφιακό ακροδέκτη 13, στον οποίο εάν ανατεθεί η τιμή High το LED L ανάβει. 5) FTDI USB chip Το Arduino επικοινωνεί με το υπολογιστή σειριακά μέσω της θύρας USB. Το Arduino προωθεί την σειριακή επικοινωνία, μέσα από έναν ελεγκτή Serial-over-USB (FTDI USB chip), ώστε να επιτευχθεί η σύνδεση με τον υπολογιστή. Η σύνδεση αυτή χρησιμοποιείται για τη μεταφορά των προγραμμάτων στο Arduino αλλά και για την αμφίδρομη επικοινωνία του Arduino με τον υπολογιστή μέσω του προγράμματος κατά την εκτέλεσή του (Serial Monitor). Ανάπτυξη Εφαρμογών Το Arduino IDE παρέχει ό,τι χρειάζεται κάποιος για να διαχειριστεί το Arduino από τον υπολογιστή. Το Arduino IDE είναι βασισμένο στη γλώσσα προγραμματισμού JAVA και παρέχει: Πρακτικό περιβάλλον για τη συγγραφή των προγραμμάτων arduino, με συντακτική χρωματική σήμανση. Αρκετά έτοιμα παραδείγματα. Μερικές έτοιμες βιβλιοθήκες για την προέκταση της γλώσσας προγραμματισμού και για τον εύκολο χειρισμό εξαρτημάτων. Compiler για την μεταγλώττιση των προγραμμάτων. Serial monitor, για την παρακολούθηση της επικοινωνίας μέσω της σειριακής, καθώς είναι και πολύ χρήσιμο κατά την αποσφαλμάτωση των προγραμμάτων. Επιλογή upload για την φόρτωση του προγράμματος στο Arduino. Η ανάπτυξη των προγραμμάτων των εφαρμογών γίνεται στη γλώσσα Wiring C, η οποία είναι μια παραλλαγή της γλώσσας C/C++, για μικροελεγκτές αρχιτεκτονικής AVR, όπως ο Atmega. Υποστηρίζει όλες τις βασικές δομές της C καθώς και μερικά χαρακτηριστικά της C++. Ο compiler που χρησιμοποιεί είναι ο AVR gcc και η βασική βιβλιοθήκη της C που χρησιμοποιείται είναι η AVRlibc. Λόγω της καταγωγής της από την C, στη γλώσσα Wiring C χρησιμοποιούνται οι ίδιες βασικές εντολές και συναρτήσεις, με την ίδια σύνταξη, τους ίδιους τύπους δεδομένων και τους ίδιους τελεστές. Πέρα όμως από αυτές υπάρχουν κάποιες ειδικές εντολές, συναρτήσεις και σταθερές που βοηθούν για τη διαχείριση του ειδικού hardware του arduino. Επίσης, η δομή ενός προγράμματος arduino χωρίζεται σε δυο βασικά μέρη, με τη χρήση δύο βασικών συναρτήσεων, της setup() και της loop().η συνάρτηση setup() γράφεται στην αρχή του προγράμματος και χρησιμοποιείται για την αρχικοποίηση μεταβλητών, ακροδεκτών, βιβλιοθηκών, κλπ. Ακόμα, η setup() εκτελείται μόνο μια φορά κατά την εκκίνηση του προγράμματος ή την επανεκκίνηση του arduino. Η συνάρτηση loop(), από την άλλη κάνει ότι ακριβώς δηλώνει το όνομα της. Λειτουργεί ως ατέρμονος βρόγχος, επιτρέποντας στο πρόγραμμά μας να αλλάζει και ν ανταποκρίνεται. Η συνάρτηση loop() είναι πάντα ενεργή, με αποτέλεσμα οι εντολές που περιέχονται μέσα σε αυτή, να εκτελούνται για πάντα όσο υπάρχει τροφοδοσία στο Arduino. Page 4

Βασικές συναρτήσεις και σταθερές του Arduino Serial.begin(baudrate) Θέτει το ρυθμό μεταφοράς δεδομένων (baudrate) του σειριακού interface. Default baudrate=9600 Serial.print(data) / Διοχετεύει τα δεδομένα (data) για αποστολή μέσω του σειριακού Serial.println(data) interface. pinmode(pin,mode) Καθορίζει τους ακροδέκτες, ως είσοδο ή έξοδο, ανάλογα με την τιμή που δίνεται στο όρισμα mode (INPUT/OUTPUT). digitalwrite(pin,pinstatus) Ορίζει την κατάσταση του ψηφιακού ακροδέκτη, ανάλογα με την τιμή του pinstatus (HIGH/LOW). digitalread(pin) Επιστρέφει την κατάσταση του ακροδέκτη (pin). 0 για LOW/ 1 για HIGH, εφόσον αυτό είναι pin ψηφιακής εισόδου. analogwrite(pin,value) Θέτει το ψηφιακό pin σε κατάσταση ψευδοαναλογικής εξόδου (PWM). Η παράμετρος value καθορίζει το πλάτος του παλμού σε σχέση με την περίοδο του παραγόμενου σήματος στη κλίμακα 0 έως 255. analogread(pin) Επιστρέφει έναν ακέραιο από 0 έως 1023, ανάλογα με τη τάση που παρέχεται στον ακροδέκτη αναλογικής εισόδου. delay(time) Σταματάει προσωρινά τη ροή του προγράμματος για όσα millisecond ορίζει η παράμετρος time. Η πρώτη μου εφαρμογή Arduino Έλεγχος LED (Blink) Η πρώτη εφαρμογή που θα υλοποιήσει κάποιος στο Arduino είναι ο έλεγχος ενός απλού LED. Συγκεκριμένα, με αυτή την εφαρμογή προγραμματίζουμε το Arduino να ανάβει και να σβήνει το LED ανά 1 δευτερόλεπτο. Η λειτουργία αυτή θα επαναλαμβάνεται μέχρι να αποσυνδέσουμε το Arduino από την τροφοδοσία. Για την υλοποίηση της εφαρμογής θα χρειαστούν τα εξής υλικά: Arduino board Καλώδιο σύνδεσης USB Arduino IDE Καλώδια σύνδεσης (male-to-male) Αντιστάσεις 220Ω (x1) Breadboard LED (x1) Υπολογισμός Ρεύματος Σχεδόν ποτέ δεν συνδέουμε εξωτερικό κύκλωμα χωρίς αντίσταση. Έλλειψη αντίστασης = μέγιστο ρεύμα εξόδου = πιθανή καταστροφή σε Arduino και κύκλωμα. Επιλογή τιμής αντίστασης = επιθυμητό ρεύμα Page 5

Η δίοδος LED έχει θετικό και αρνητικό ακροδέκτη. Ρεύμα κανονικής λειτουργίας = 15-25mA Το επιθυμητό ρεύμα ρέει μόνο όταν η δίοδος είναι πολωμένη ορθά σε σχέση με την πηγή (έξοδοι Arduino). Vs = VR X + V F I F = V S VR X R X R X = (V s V F ) Is 1000 Π.χ. Υπολογισμός Ρεύματος R x = 150Ω, V F = 2V, V S = 5V (5 2) I F = = 0.02Α = 20mΑ 150Ω *Πολλαπλασιασμός με 1000 για την μετατροπή του 0.02 A σε 20mA. Π.χ. Υπολογισμός Αντίστασης I s = 20mA, V F = 2V, V S = 5V R X = (5 2)V 20mA 1000 = 3V 0.02A = 150Ω *Διαίρεση με 1000 για την μετατροπή του20ma σε 0.02A. Βήμα 1: Το πρώτο βήμα που πρέπει να γίνει πριν την υλοποίηση της εφαρμογής είναι να εγκατασταθεί το Arduino IDE, στο οποίο θα γραφεί το πρόγραμμα. Το Arduino IDE βρίσκετε στην κεντρική σελίδα του Arduino, https://www.arduino.cc. Βήμα 2: Έπειτα, είναι η σειρά για την κατασκευή του κυκλώματος. Το κύκλωμα θα κατασκευαστεί πάνω σε ένα εξάρτημα που λέγεται breadboard, η οποία διευκολύνει το χρήστη να κατασκευάζει κυκλώματα χωρίς να χρειάζεται να κάνει κολλήσεις. Η χρήση της είναι πολύ απλή, αρκεί να προσέξει κάποιος την σύνδεση ανάμεσα στις υποδοχές της. Οι υποδοχές αυτές συνδέονται ή αλλιώς βραχυκυκλώνουν είτε ανά κάθετες πεντάδες είτε με ένα κοινό δίαυλο (βλ. Figure 1 ). Όταν λέμε πως οι υποδοχές συνδέονται βραχυκυκλώνουν εννοούμε πως η περιοχή αυτή είναι κοινή. Συνδέονται κάθετα (ανά πεντάδες) Συνδέονται οριζόντια (κοινός δίαυλος) Δεν είναι συνδεδεμένα Δεν είναι συνδεδεμένα Figure 1: Δομή Breadboard - + - + Page 6

Θεωρητικό Κύκλωμα Πρακτικό Κύκλωμα Τοποθέτηση του LED και της αντίστασης στη breadboard. Προσοχή στη πολικότητα του LED (κοντό σκέλος = αρνητικός ακροδέκτης). Ο θετικός ακροδέκτης συνδέεται στην ψηφιακή έξοδο 13 του Arduino ενώ ο αρνητικός στον αντίστοιχο του GND. Βήμα 3: Σύνδεση του Arduino με τον υπολογιστή μέσω USB. Βήμα 4: Ανοίξτε το Arduino IDE και γράψτε τον κώδικα της εφαρμογής. Πρόγραμμα(Κώδικας) /* Blink Ανάβει το LED για ένα δευτερόλεπτο και μετά το σβήνει για ένα δευτερόλεπτο(επαναληπτική διαδικασία). /*Ο ακροδέκτης 13 έχει ήδη ένα συνδεδεμένο LED (on board) στις περισσότερες πλατφόρμες Arduino. int led=13; /*Η συνάρτηση setup() είναι μια από τις δύο βασικές συναρτήσεις που χρησιμοποιεί το Arduino. Εκτελείται μια φορά και χρησιμοποιείται για την αρχικοποίηση (π.χ. σταθερών) void setup(){ //αρχικοποίηση του ακροδέκτη 13 (έξοδος) pinmode(led,output); /*Η συνάρτηση loop() είναι πάντα ενεργή με αποτέλεσμα οι εντολές που περιέχονται να εκτελούνται για πάντα (άπειρος βρόγχος) όσο υπάρχει τροφοδοσία στο Arduino. void loop(){ Page 7

/*Το LED θα ανάβει με την εντολή digitalwrite(led,high). Έτσι, ο ακροδέκτης 13 τροφοδοτείται με 5V. Η πτώση στα άκρα του LED το κάνει να φωτοβολεί. digitalwrite(led,high); //ανάβει το LED /*Ανάμεσα στις καταστάσεις «Αναμμένο», «Σβηστό», απαιτείται αρκετός χρόνος ώστε να μπορεί κάποιος να παρατηρήσει την αλλαγή. Έτσι, με την συνάρτηση delay() «λέμε» στο Arduino να περιμένει για 1000ms (1 δευτερόλεπτο). Όταν εκτελείται η delay(), τίποτα άλλο δεν εξελίσσεται. delay(1000); //αναμονή για 1 δευτερόλεπτο //Το LED θα σβήνει με την εντολή digitalwrite(led,low). Έτσι, ο ακροδέκτης 13 επιστρέφει στα 0V digitalwrite(led,low); //σβήνει το LED delay(1000); //αναμονή για 1 δευτερόλεπτο Βήμα 5: Από το μενού Tools Board επιλέγετε τον τύπο του Arduino που διαθέτετε (π.χ. Arduino UNO). Επίσης, από το ίδιο μενού επιλέξτε στο Serial Port την θύρα του υπολογιστή στην οποία είναι συνδεδεμένο το Arduino. Βήμα 6: Από το μενού File κάνετε Upload τον κώδικα στο Arduino και παρατηρήστε το αποτέλεσμα. Εφαρμογή Μετά την υλοποίηση της εφαρμογής ελέγχου ενός LED μπορούμε με τον ίδιο τρόπο να ελέγξουμε περισσότερα του ενός LED. Το παράδειγμα που ακολουθεί μας δείχνει πως μπορούμε να ελέγξουμε πέντε LED. Αφού τοποθετήσουμε τα πέντε LED στην breadboard -ακριβώς με το ίδιο τρόπο που είδαμε στην εφαρμογή Blink- τα συνδέουμε με το Arduino. Θεωρητικό κύκλωμα Πρακτικό κύκλωμα Page 8

Έπειτα, υλοποιούμε τον κώδικα της εφαρμογής, ο οποίος είναι ο ίδιος με τον κώδικα της εφαρμογής Blink, με ελάχιστες διαφορές. /* Fade Ανάβει σταδιακά πέντε LED για ένα δευτερόλεπτο και μετά τα σβήνει σταδιακά για ένα δευτερόλεπτο(επαναληπτική διαδικασία). /*Στους ακροδέκτες 2,3,4,5,6 είναι συνδεδεμένα τα LED. Για να δηλώσουμε τους ακροδέκτες χρησιμοποιούμε πίνακα. int led[]={2,3,4,5,6; /*Η συνάρτηση setup() είναι μια από τις δύο βασικές συναρτήσεις που χρησιμοποιεί το Arduino. Εκτελείται μια φορά και χρησιμοποιείται για την αρχικοποίηση (π.χ. σταθερών) void setup(){ //αρχικοποίηση των ακροδεκτών 2,3,4,5,6 (έξοδος) for(int i=0; i<5; i++){ //για να αρχικοποιήσουμε τους ακροδέκτες που είναι συνδεδεμένα τα LED //χρησιμοποιούμε μια δομή επανάληψης, την for. Δηλαδή, η εντολή pinmode θα εκτελεστεί πέντε φορές (i<5), μια για κάθε θέση του πίνακα (ή μια για κάθε ακροδέκτη). pinmode(led[i],output); /*Η συνάρτηση loop() είναι πάντα ενεργή με αποτέλεσμα οι εντολές που περιέχονται να εκτελούνται για πάντα (άπειρος βρόγχος) όσο υπάρχει τροφοδοσία στο Arduino. void loop(){ /*Το LED θα ανάβει με την εντολή digitalwrite(led,high). Έτσι, ο ακροδέκτης 13 τροφοδοτείται με 5V. Η πτώση στα άκρα του LED το κάνει να φωτοβολεί. for(int i=0; i<5; i++){ //Ακριβώς με το ίδιο τρόπο που αρχικοποιήσαμε τα LED, έτσι θα τα ανάψουμε και θα τα σβήσουμε. digitalwrite(led[i],high); //ανάβουν τα LED /*Ανάμεσα στις καταστάσεις «Αναμμένο», «Σβηστό», απαιτείται αρκετός χρόνος ώστε να μπορεί κάποιος να παρατηρήσει την αλλαγή. Έτσι, με την συνάρτηση delay() «λέμε» στο Arduino να περιμένει για 1000ms (1 δευτερόλεπτο). Όταν εκτελείται η delay(), τίποτα άλλο δεν εξελίσσεται. delay(1000); //αναμονή για 1 δευτερόλεπτο //Το LED θα σβήνει με την εντολή digitalwrite(led,low). Έτσι, οι ακροδέκτες επιστρέφουν στα 0V digitalwrite(led[i],low); //σβήνουν τα LED delay(1000); //αναμονή για 1 δευτερόλεπτο Page 9