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

Σχετικά έγγραφα
ΑΣΚΗΣΗ 1 (22 Νοεμβρίου 2017)

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

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

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

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

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

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

Arduino Teachers Workshop

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Breadboard-Raster-Πλέγμα ηλεκτρονικού κυκλώματος πλέγμα

Εφαρμογές βασισμένες στο Arduino

Μάθημα 1 ΑΙΣΘΗΤΗΡΕΣ Ο Αισθητήρας Δύναμης. Επανεξέταση των βασικών εννοιών της C και του προγραμματισμού.

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

Lab 1: Experimenting on Arduino & AI Sense

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

USB_6008_terminal_31. PCI_6023E_terminal_68. PCI_6023E_terminal_67

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

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

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

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

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

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

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

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

ΘΕΜΑ : ΒΑΣΙΚΕΣ ΣΥΝΔΕΣΜΟΛΟΓΙΕΣ ΤΕΛΕΣΤΙΚΟΥ ΕΝΙΣΧΥΤΗ. ΔΙΑΡΚΕΙΑ: 1περίοδος

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

ΔΙΑΚΟΠΤΗΣ ΛΑΜΠΑΣ ΜΕ ΜΙΚΡΟΕΛΕΓΚΤΗ AVR AT90S2313

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

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

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

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

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

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

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

Workshops. Εισηγητής: Παλιούρας Αριστείδης

2ο Γυμνάσιο Καβάλας. Κατασκευές και προγραμματισμός με το scratch for Arduino (s4a)

Μαθαίνοντας το hardware του αναπτυξιακού

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

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

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

Εργαστηριακές σημειώσεις για το μάθημα: «Εισαγωγή στην Μηχατρονική»

Εγκατάσταση του Arduino IDE

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

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

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

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

Μετρολογικές Διατάξεις Μέτρησης Θερμοκρασίας Μετρολογικός Ενισχυτής τάσεων θερμοζεύγους Κ και η δοκιμή (testing).

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

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

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

Stagnoli ACNSEM3L - Ηλεκτρονικός πίνακας ελέγχου για φωτεινούς σηματοδότες

ΑΣΚΗΣΗ ΜHΧΑΤΡΟΝΙΚΗΣ. Τέλος όταν εισάγετε ένας σωστός συνδυασμός η ένδειξη του display να μηδενίζετε.

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

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

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

ΠΑΛΜΟΓΡΑΦΟΣ ΤΡΟΦΟ ΟΤΙΚΟ ΓΕΝΝΗΤΡΙΑ

ΚΕΦΑΛΑΙΟ 6 Διαφορικός ενισχυτής

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

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

Μάθημα 2 Δραστηριότητα 2: Δημιουργώντας το Μετεωρολογικό Σταθμό. Επανεξέταση των βασικών εννοιών της C και του προγραμματισμού.

2. Ο νόμος του Ohm. Σύμφωνα με το νόμο του Ohm, η τάση V στα άκρα ενός αγωγού με αντίσταση R που τον διαρρέει ρεύμα I δίνεται από τη σχέση: I R R I

ΚΥΚΛΩΜΑΤΑ AC-DC. ΚΕΦΑΛΑΙΟ 1ο ΒΑΣΙΚΑ ΚΥΚΛΩΜΑΤΑ ΚΑΙ ΕΞΑΡΤΗΜΑΤΑ - ΑΠΛΑ ΓΡΑΜΜΙΚΑ ΚΥΚΛΩΜΑΤΑ

Συλλογή & Επεξεργασία Δεδομένων Εξαμηνιαία ΡομποΚαθαριστής Μέρος Β : Το Πρόγραμμα. Σχεδίαση Συστήματος Πραγματικής Εφαρμογής (Prototyping).

Παραδείγµατα χρήσης του µικροελεγκτή Arduino Εφαρµογές για το εργαστήριο Μέρος 2 ο :Οδήγηση Κινητήρων DC(PM)

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

ΗΛΕΚΤΡΙΚΑ ΚΥΚΛΩΜΑΤΑ ΚΑΙ ΜΕΤΡΗΣΕΙΣ ΣΤΗΝ ΒΙΟΪΑΤΡΙΚΗ ΤΕΧΝΟΛΟΓΙΑ

G&K ELECTRONICS AVR ATMEGA DEVELOPMENT BOARD

Διπλωματική Εργασία του φοιτητή του Τμήματος Ηλεκτρολόγων Μηχανικών και Τεχνολογίας Υπολογιστών της Πολυτεχνικής Σχολής του Πανεπιστημίου Πατρών

1η ΕΡΓΑΣΤΗΡΙΑΚΗ ΑΣΚΗΣΗ:

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

ΜΕΤΡΗΣΗ ΤΑΣΗΣ ΣΦΑΛΜΑΤΑ

Συλλογή & Επεξεργασία Δεδομένων. Προγραμματίζοντας τον Arduino Μέρος Ι: Μεταβλητές, Εντολές Εισόδου & Εξόδου. Ολοκληρωμένο Περιβάλλον Ανάπτυξης (IDE)

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

Transcript:

ΕΙΣΑΓΩΓΗ ΣΤΟ ARDUINO Δημιουργός: Επιβλέπων: Μπακάλη Ιωάννα Πετεινάτος Ηλίας Υποψήφιος Διδάκτωρ 1

ΤΙ ΕΙΝΑΙ ΤΟ ARDUINO; Είναι ένας συνδυασμός Υλικού (πλακέτας, μικροελεγκτή, αντιστάσεων κτλ) και Λογισμικού (με την βοήθεια του οποίου προγραμματίζουμε τον μικροελεγκτή) όπου με την βοήθεια του μπορούμε να δημιουργήσουμε διάφορες κατασκευές του πραγματικού κόσμου. Χαρακτηριστικά παραδείγματα: Τα φανάρια στους δρόμους Ένα τηλεκατευθυνόμενο αυτοκινητάκι Συστήματα που ελέγχουν κίνηση, θερμοκρασία, υγρασία κτλ Drones Οθόνες με κυλιόμενα μηνύματα που βλέπετε σε μαγαζιά. 2

Η ΑΝΑΠΤΥΞΙΑΚH ΠΛΑΤΦOΡΜΑ ARDUINO O προγραμματισμός του μικροελγκτή στην πλατφόρμα Arduino γίνεται με τη γλώσσα Wiring C που αποτελεί μια παραλλαγή της γνωστής C++. Έτσι, ο προγραμματισμός μιας τέτοιας πλατφόρμας είναι φιλικότερος και επιτρέπει τη γρηγορότερη ανάπτυξη εφαρμογών χωρίς να προϋποθέτει τη λεπτομερή γνώση της αρχιτεκτονικής του μικροελεγκτή. 3

Η ΔΙΑΦΟΡΕΤΙΚΗ ΠΡΟΣΕΓΓΙΣΗ ΜΕ ΤΟ ARDUINO Επίπεδο 3 Wiring C Ανεξαρτησία από το υλικό Επίπεδο 2 Assembly Assembly Εξάρτηση από το υλικό Επίπεδο 1 Γλώσσα Μηχανής Γλώσσα Μηχανής Επίπεδο 0 Μικροελεγκτής (Υλικό) Μικροελεγκτής (Υλικό) Κλασικός προγραμματισμός Μικροελεγκτή Προγραμματισμός μικροελεγκτή με το Arduino 4

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

Το πρόγραμμα αναπτύσσεται στον υπολογιστή, ενώ η μεταφόρτωση του εκτελέσιμου κώδικα γίνεται μέσω της θύρας USB. Επιπλέον, οι μικροελεγκτές που τοποθετούνται στα Arduino είναι εφοδιασμένοι με ένα ειδικό λογισμικό που ονομάζεται bootloader και δίνει τη δυνατότητα του επαναπρογραμματισμού. Οι πιο προχωρημένοι έχουν πάντα τη δυνατότητα να προγραμματίσουν τον μικροελεγκτή του Arduino, όπως και κάθε άλλο μικροελεγκτή, αφαιρώντας τον bootloader ή και χρησιμοποιώντας άλλες διασυνδέσεις και κυκλώματα. 6

ΚΥΚΛΩΜΑΤΑ ΥΠΟΣΤΗΡΙΞΗΣ, BOARD & ΥΠΟΛΟΓΙΣΤΕΣ Υπολογιστής Μικροελεγκτής Μικροελεγκτής Συνιστώσες αρχιτεκτονικής Συνιστώσες αρχιτεκτονικής Κλασικός μικροελεγκτής bootloader Μικροελεγκτής στην πλατφόρμα Arduino Το σχήμα δείχνει τη διαφορά του κλασικού μικροελεγκτή από το «πακέτο» Arduino. 7

Το Arduino UNO που χρησιμοποιεί τον μικροελεγκτή ATmega328P, είναι η πιο δημοφιλής έκδοση Arduino. Σχεδόν όλες οι υπόλοιπες εκδόσεις βασίζονται στην ίδια φιλοσοφία. Το παρακάτω σχήμα παρουσιάζει σε διάγραμμα βαθμίδας τα βασικά χαρακτηριστικά και δυνατότητες που προσφέρονται μέσω της κάρτας. Πίσω 1 Πίσω 2 Vcc (DC IN) USB AREF Ψηφιακές είσοδοι/έξοδοι ATmega328P Αναλογικές είσοδοι Reset 5V 3.3V8

Vcc (DC IN) Εξωτερική τροφοδοσία για αυτόνομη λειτουργία χωρίς υπολογιστή. Η τροφοδοσία αυτή μπορεί να προέρχεται από τροφοδοτικό, μπαταρία ή άλλο παρόμοιο στοιχείο. USB Σύνδεση με υπολογιστή μέσω USB για μεταφόρτωση κώδικα και τροφοδοσία. Η επικοινωνία USB υποστηρίζεται από ειδικό ολοκληρωμένο κύκλωμα (IC), το οποίο λειτουργεί συμπληρωματικά με τον μικροελεγκτή. AREF Τάση αναφοράς, που καθορίζει την ακρίβεια της μέτρησης όταν γίνεται ανάγνωση από τις αναλογικές εισόδους. Reset Υποστήριξη κουμπιού αλλά και εισόδου reset που ελέγχεται από το πρόγραμμα ΣΧΗΜΑ 9

Digital I/O Ψηφιακές είσοδοι και έξοδοι, που αναγνωρίζουν τις στάθμες 0 ή 5V. Επιπλέον, με την τεχνική διαμόρφωσης εύρους παλμού PWM (Pulse Width Modulation) μπορούν να παραχθούν και ψευδοαναλογικά σήματα. Analog Inputs Ανάγνωση αναλογικών σημάτων 0 έως 5V με δυνατότητα αποτύπωσης σε 1024 στάθμες. 3.3V Τροφοδοσία εξωτερικών κυκλωμάτων στα 3.3V (π.χ. συνδεδεμένων αισθητήρων). 5V Τροφοδοσία εξωτερικών κυκλωμάτων στα 5V (π.χ. συνδεδεμένων αισθητήρων). ΣΧΗΜΑ 10

11

Όλες οι ακίδες αξιοποιούνται μέσω της κάρτας που φιλοξενεί τον μικροελεγκτή. Ο μικροελεγκτής μετά τον προγραμματισμό του μπορεί ακόμα και να αφαιρεθεί από την κάρτα και να τοποθετηθεί για αυτόνομη λειτουργία αφού πλαισιωθεί από τα κατάλληλα κυκλώματα. Η κάρτα δηλαδή μπορεί να χρησιμοποιείται μόνο για τον προγραμματισμό. Φυσικά υπάρχει και η δυνατότητα τοποθέτησης ολόκληρου του Arduino στο σημείο ενδιαφέροντος για την ολοκλήρωση της εφαρμογής. 12

ΣΥΣΤΗΜΑ ΑΝΑΠΤΥΞΗΣ ΕΦΑΡΜΟΓΩΝ ΜΕ ΜΙΚΡΟΕΛΕΓΚΤΕΣ ATMEL 13

ΜΙΚΡΟΕΛΕΓΚΤΕΣ ΤΗΣ ATMEL ΠΟΥ ΠΡΟΓΡΑΜΜΑΤΙΖΟΝΤΑΙ ΜΕ ΤΗΝ ΚΑΡΤΑ ΑΝΑΠΤΥΞΗΣ ΕΦΑΡΜΟΓΩΝ SDK 500 AT90S1200, AT90S2313, ATtiny2313, AT90S2323, AT90S2343, ATtiny12, ATtiny13, ATtiny22, ATtiny11, ATtiny28, AT90S4414, AT90S8515, ATmega161, ATmega8515, ATmega162, AT89S51, AT89S52, AT90S4434, AT90S8535, ATmega16, ATmega163,ATmega165, ATmega169, ATmega32,ATmega323, Amega8535, AT90S2333, AT90S4433, ATmega48, ATmega8, ATmega8, ATmega88, Amega168, ATtiny26, ATmega103, ATmega128, AT90CAN128, ATmega64 14

ARDUINO UNO 15

ARDUINO NANO 16

ARDUINO MEGA (ΑΤMEGA 1280) 17

ARDUINO MEGA 54 ψηφιακές εισόδους/εξόδους (από τις οποίες 14 έξοδοι PWM), 16 Αναλογικές εισόδους, 4 UARTs (hardware σειριακές πόρτες), 16 MHz κρυσταλλικό ταλαντωτή, Σύνδεση USB, σύνδεση τροφοδοσίας, Σύνδεση ICSP h, reset button. 18

ΡΑΣΤΕΡ, ΓΕΙΩΣΗ ΚΑΙ ΤΡΟΦΟΔΟΣΙΑ Tο ράστερ αποτελείται από πολλές μικρές τρυπούλες, στις οποίες συνδέονται τα ηλεκτρονικά στοιχεία. Υπάρχουν δύο τρόποι σύνδεσης των επιμέρους στοιχείων μεταξύ τους, σε σειρά και παράλληλα. Οι μεγάλες οριζόντιες γραμμές (κόκκινη και μπλε) δείχνουν τη σύνδεση των τρυπών κάτω από την επιφάνεια του ράστερ σε εκείνη την περιοχή. Όλες οι υπόλοιπες τρυπούλες ενώνονται ανά κάθετες πεντάδες. Αυτές αποτελούνε τους κόμβους ουσιαστικά του κυκλώματος μας και με αυτές υλοποιείται το κυρίως κύκλωμα που θέλουμε να κατασκευάσουμε. 19

20

21

22

ΛΟΓΙΣΜΙΚΟ (SOFTWARE) Όταν ανοίξουμε το πρόγραμμα βλέπουμε την ακόλουθη εικόνα: 23

ΛΟΓΙΣΜΙΚΟ (SOFTWARE) //Εδώ δηλώνουμε τυχόν βιβλιοθήκες void setup() { // put your setup code here, to run once: //Τμήμα 1 } void loop() { // put your main code here, to run repeatedly: //Τμήμα 2 } Ένα πρόγραμμα αποτελείται πάντα από δυο βασικά τμήματα (συναρτήσεις): Τμήμα 1 με ονομασία setup() Κάθε φορά που εκτελείται το πρόγραμμα το τμήμα αυτό εκτελείται μόνο μια φορά. Τμήμα 2 με ονομασία loop(): Κάθε φορά που εκτελείται το πρόγραμμα το τμήμα αυτό εκτελείται συνέχεια. Στο τμήμα 1 γράφουμε τα ονόματα των μεταβλητών καθώς και αρχικοποίηση αυτών. Στο τμήμα 2 βρίσκονται οι εντολές οι οποίες λένε στην κατασκευή μας πώς να λειτουργήσει. 24

ΛΟΓΙΣΜΙΚΟ (SOFTWARE) Πριν γράψουμε οποιοδήποτε πρόγραμμα πρέπει να κάνουμε δύο βασικά βήματα: (α) Να επιλέξουμε την έκδοση του arduino και (β) Να συνδέσουμε, δηλαδή να επιλέξουμε την σωστή θύρα επικοινωνίας, το arduino με τον υπολογιστή μας. 25

ΛΟΓΙΣΜΙΚΟ (SOFTWARE) Αφού έχουμε γράψει το πρόγραμμα, πρέπει να δούμε αν έχει συντακτικά λάθη. Γι αυτό πατάμε το πλήκτρο της επόμενης εικόνας Αν δεν υπάρχουν συντακτικά λάθη, τότε φορτώνουμε το πρόγραμμα στο arduino, πατώντας το ακόλουθο πλήκτρο. Αν όλα πάνε καλά, και το πρόγραμμα είναι σωστό, τότε η κατασκευή μας θα κάνει αυτά που τις είπαμε μέσω του προγράμματός μας. ΠΡΟΣΟΧΗ: κάθε φορά που θέλετε να κάνετε αλλαγή στο κύκλωμα σας, θα πρέπει να αποσυνδέετε το καλώδιο USB από τον υπολογιστή σας. 26

ΣΥΜΠΕΡΑΣΜΑΤΙΚΑ: 1. Το Arduino είναι ένα «πακέτο» που προσφέρει άμεση αξιοποίηση και προγραμματισμό ενός μικροελεγκτή. 2. Οι πόρτες επικοινωνίας και οι ακίδες του μικροελεγκτή προσφέρονται μέσω της κάρτας για εύκολες συνδέσεις. 3. Ο προγραμματισμός γίνεται μέσω της πόρτας USB. 4. Η ανάπτυξη του κώδικα γίνεται σε γλώσσα τύπου C (Wiring C). 27

ΒΑΣΙΚΑ ΗΛΕΚΤΡΟΝΙΚΑ ΕΞΑΡΤΗΜΑΤΑ 28

ΑΝΤΙΣΤΑΣΗ R 27 K R 27 K 29

R 4.7K ΔΙΑΚΟΠΤΗΣ ΩΘΗΣΗΣ (PUSH BUTTON) 5V Διακόπτης ώθησης V OUT 30

ΜΠΑΤΑΡΙΑ 31

ΠΟΤΕΝΣΙΟΜΕΤΡΟ 1 P Μεσαία λήψη 2 +5V Τάση 5V 4V 3V 2V P V OUT 1V 0V 0kΩ 2kΩ 4kΩ 6kΩ 8kΩ 10kΩ Αντίσταση 32

ΠΑΡΑΔΕΙΓΜΑΤΑ ΜΕ ΒΑΣΙΚΑ ΗΛΕΚΤΡΟΝΙΚΑ ΕΞΑΡΤΗΜΑΤΑ 33

ΠΑΡΑΔΕΙΓΜΑ 1: Να δημιουργηθεί ένα κύκλωμα που θα χρησιμοποιεί Arduino και θα ανάβει ένα LED 9 Κάρτα Arduino 220Ω GND 34

ΥΛΟΠΟΙΗΣΗ ΗΛΕΚΤΡΟΝΙΚΟΥ ΚΥΚΛΩΜΑΤΟΣ 35

ΛΟΓΙΚΟ ΔΙΑΓΡΑΜΜΑ ΠΡΟΓΡΑΜΜΑΤΟΣ Ακίδα 9 ΕΞΟΔΟΣ Ακίδα 9 = HIGH 36

Το πρόγραμμα σε γλώσσα wiring C void setup() { pinmode( 9, OUTPUT); } void loop() { digitalwrite( 9, HIGH ); } 37

Η χρήση της αντίστασης περιορισμού ρεύματος R είναι απαραίτητη προκειμένου να προφυλαχθεί η δίοδος LED από τη διαρροή υψηλού ρεύματος το οποίο θα μπορούσε να την καταστρέψει. Το κύκλωμα θα διαρρέεται από το ρεύμα I K. Vout = VR+VLED ή VR = Vout-VLED Επομένως: I K V out V LED R I K 5V 2V 150 3V 0.02A 20mA 150 38

Ο ΕΛΕΓΧΟΣ ΤΟΥ ΡΕΥΜΑΤΟΣ ΣΤΟ ΚΥΚΛΩΜΑ ΓΙΝΕΤΑΙ ΜΕΣΩ ΚΑΤΑΛΛΗΛΩΝ ΕΝΤΟΛΩΝ ΚΑΙ ΠΡΟΥΠΟΘΕΤΕΙ ΔΥΟ ΕΝΕΡΓΕΙΕΣ: (α) καθορισμό ψηφιακού ακροδέκτη ως εξόδου (β) καθορισμό στάθμης σήματος (0 ή 5V) στον επιλεγμένο ακροδέκτη Η εντολή που ρυθμίζει τη μορφή του ακροδέκτη είναι pinmode που συντάσσεται ως: pinmode (pin, mode); pin είναι ο ψηφιακός ακροδέκτης (οι διαθέσιμοι ψηφιακοί ακροδέκτες μπορεί να διαφέρουν ανάλογα με την έκδοση του Arduino) και mode ο τρόπος που θα χρησιμοποιηθεί (οι βασικότερες επιλογές είναι, INPUT για είσοδο και OUTPUT για έξοδο). Στο συγκεκριμένο παράδειγμα, επιλέχθηκε ο ψηφιακός ακροδέκτης 9 και ο καθορισμός του ως εξόδου θα γίνει ως εξής: pinmode (9,OUTPUT); 39

Η εντολή που ρυθμίζει το αν θα ανάβει ή θα είναι σβηστό το LED συντάσσεται ως: digitalwrite(pin, status); όπου pin είναι ο ψηφιακός ακροδέκτης (οι διαθέσιμοι ψηφιακοί ακροδέκτες μπορεί να διαφέρουν ανάλογα με την έκδοση του Arduino) και status είναι η στάθμη του σήματος στην ακίδα (0V για LOW και 5V για HIGH). Επομένως η εντολή που θα ανάψει το LED θα είναι η: digitalwrite(9, HIGH); Και η εντολή που θα σβήσει το LED θα είναι η: digitalwrite(9, LOW); 40

Το Arduino προσφέρει ένα σύνολο ακροδεκτών που συνδέονται απευθείας με τις αναλογικές εισόδους του μικροελεγκτή. Το αναλογικό σήμα εισόδου μπορεί να βρίσκεται στο εύρος 0-5V. Ο μικροελεγκτής μετατρέπει τις αναλογικές τάσεις έτσι ώστε αντιστοιχούν σε 1024 διαφορετικές ψηφιακές στάθμες. να Άρα διαθέτει ακρίβεια μετατροπής 5V/1024=0.0049V ή 49mV. Η ακρίβεια αυτή είναι ικανοποιητική για τις περισσότερες εφαρμογές. 41

Η ανάγνωση αναλογικού σήματος γίνεται με την εντολή analogread(pin), όπου pin το αναγνωριστικό της αναλογικής εισόδου. Οι δύο επόμενες εντολές είναι ισοδύναμες και αναφέρονται στην ανάγνωση από την αναλογική είσοδο 0: analogread(0) analogread(a0) Το πρόβλημα που προκύπτει είναι όταν το εύρος των αναλογικών τάσεων είναι περιορισμένο, π.χ. 0-3V. Σε μια τέτοια περίπτωση η ανάλυση που προκύπτει θα είναι πάλι η ίδια!, δηλαδή 0.0049. Αυτό συμβαίνει διότι ο μικροελεγκτής χρησιμοποιεί εξ ορισμού ως τάση αναφοράς τα 5V. Το ζητούμενο όμως είναι η βελτίωση της ανάλυσης. 42

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

Η ρύθμιση της τάσης αναφοράς γίνεται με την εντολή analogreference(ref_type), όπου η παράμετρος Ref_type μπορεί να είναι: DEFAULT Αντιστοιχεί σε τάση 5V ή 3.3V ανάλογα με την έκδοση του Arduino. INTERNAL Στις περισσότερες περιπτώσεις αντιστοιχεί στην τιμή 1.1V (2.56V στον μικροελεγκτή ATmega8). Στην έκδοση Mega χρησιμοποιούνται οι INTERNAL1V1 και INTERNAL2V56 αντί της INTERNAL για τάσεις αναφοράς 1.1V και 2.56V αντίστοιχα. 44

EXTERNAL Με αυτή την παράμετρο, η τάση αναφοράς ρυθμίζεται από την τάση που εφαρμόζεται στον ακροδέκτη AREF. Πάντως, αυτή η τάση δεν μπορεί να είναι μικρότερη από 0V ή μεγαλύτερη από 5V. Η τάση αυτή μπορεί να προσαρμοστεί εύκολα στο επιθυμητό επίπεδο χρησιμοποιώντας ένα διαιρέτη τάσης. Έτσι, με τάση αναφοράς τα 3V, η αντίστοιχη ανάλυση θα είναι 3/1024=0.003, δηλαδή πολύ καλύτερη από την 0.0049 στην περίπτωση της τάσης αναφοράς των 5V. Με αυτό τον τρόπο επιτυγχάνεται μεγαλύτερη ευχέρεια διαχείρισης ενός αναλογικού σήματος που κινείται στην περιοχή 0 έως 3V. 45

ΠΑΡΑΔΕΙΓΜΑ 2: Nα δημιουργηθεί ένα κύκλωμα που θα χρησιμοποιεί Arduino και θα αναβοσβύνει ένα LED Λογικό Διάγραμμα Προγράμματος Ακίδα 9 ΕΞΟΔΟΣ Ακίδα 9 = HIGH ANAMONH 1 sec Ακίδα 9 = LOW ANAMONH 1 sec 46

Το πρόγραμμα σε γλώσσα wiring C void setup() { pinmode( 9, OUTPUT); } void loop() { digitalwrite( 9, HIGH ); delay( 1000 ); digitalwrite( 9, LOW ); delay( 1000 ); } 47

ΠΑΡΑΔΕΙΓΜΑ 3: Να δημιουργηθεί ένα κύκλωμα που θα χρησιμοποιεί Arduino και θα ανάβει τα LED ενός φωτεινού σηματοδότη με βάση τους παρακάτω χρόνους. Πράσινο10sec Πορτοκαλί 3 sec Κόκκινο 7 sec 48

ΥΛΟΠΟΙΗΣΗ ΗΛΕΚΤΡΟΝΙΚΟΥ ΚΥΚΛΩΜΑΤΟΣ 49

ΛΟΓΙΚΟ ΔΙΑΓΡΑΜΜΑ ΠΡΟΓΡΑΜΜΑΤΟΣ Ακίδες 4,5,6 ΕΞΟΔΟΙ Ακίδα 6=HIGH (Άναψε Πράσινο) ANAMONH 7 sec Ακίδα 6=LOW (Σβήσε πράσινο) Ακίδα 5=HIGH (Άναψε πορτοκαλί) ANAMONH 3 sec Ακίδα 5=LOW (Σβήσε πορτοκαλί) Ακίδα 4=HIGH (Άναψε κόκκινο) ANAMONH 10 sec Ακίδα 4=LOW (Σβήσεκόκκινο) 50

ΤΟ ΠΡΟΓΡΑΜΜΑ ΣΕ ΓΛΩΣΣΑ WIRING C int RledPin = 4; int OledPin = 5; int GledPin = 6; unsigned int RDelay = 10000; unsigned int ODelay= 3000; unsigned int GDelay = 7000; void setup() { // Ονόμασε ακίδα 4 RledPin // Ονόμασε ακίδα 5 OledPin // Ονόμασε ακίδα 6 GledPin //Χρονική καθυστέρηση για το κόκκινο //Χρονική καθυστέρηση για το πορτοκαλί //Χρονική καθυστέρηση για το πράσινο //Συνάρτηση αρχικοποίησης pinmode( RledPin, OUTPUT); pinmode( OledPin, OUTPUT); pinmode( GledPin, OUTPUT); //Κάνε τις ακίδες //4, 5 και 6 //εξόδους } 51

void loop() { digitalwrite( GledPin, HIGH); delay( GDelay); digitalwrite(gledpin, LOW); digitalwrite( OledPin, HIGH); delay( ODelay ); digitalwrite( OledPin, LOW); digitalwrite( RledPin, HIGH); delay(rdelay); digitalwrite( RledPin, LOW); } //Κύριος βρόχος //Άναψε το πράσινο LED //για 7sec και //σβήσε το. //Άναψε το πορτοκαλί LED //για 3sec και //σβήσε το. //Άναψε το πράσινο LED //για 10sec και //σβήσε το. 52

ΠΑΡΑΔΕΙΓΜΑ 4: Να δημιουργηθεί ένα κύκλωμα που θα χρησιμοποιεί arduino και θα αναβοσβήνει ή θα κρατά σβηστό ένα LED κάτω από τον έλεγχο ενός διακόπτη ώθησης (push button). 9 2 220Ω Κάρτα Arduino 5V Δ 10ΚΩ GND 53

ΥΛΟΠΟΙΗΣΗ ΗΛΕΚΤΡΟΝΙΚΟΥ ΚΥΚΛΩΜΑΤΟΣ 54

ΛΟΓΙΚΟ ΔΙΑΓΡΑΜΜΑ ΠΡΟΓΡΑΜΜΑΤΟΣ Ακίδα 2 ΕΙΣΟΔΟΣ Ακίδα 9 ΕΞΟΔΟΣ ΟΧΙ Ακίδα 2 = HIGH? ΝΑΙ Ακίδα 9= HIGH Ακίδα 9 = LOW ΑΝΑΜΟΝΗ 1sec Ακίδα 9 = LOW ANAMONH 1 sec 55

ΤΟ ΠΡΟΓΡΑΜΜΑ ΣΕ ΓΛΩΣΣΑ WIRING C int pinbutton = 2; int ledpin = 9; void setup() { pinmode( pinbutton, INPUT ); pinmode( ledpin, OUTPUT ); } //Ονόμασε ακίδα 2 pinbutton //Ονόμασε ακίδα 9 ledpin //Συνάρτηση αρχικοποίησης //Κάνε ακίδα 2 είσοδο //και ακίδα 9 έξοδο 56

void loop() { statebutton = digitalread( pinbutton ); if ( statebutton == 1 ) { digitalwrite( ledpin, HIGH ); delay( 1000 ); digitalwrite(ledpin, LOW ); delay( 1000 ); } else } digitalwrite( ledpin, LOW ); //Κύριος βρόχος //Διάβασε την κατάσταση //του διακόπτη και //αν έχει κλείσει ο διακόπτης //αναβόσβησε το LED //διαφορετικά //σβήσε το LED 57

ΠΑΡΑΔΕΙΓΜΑ 6: Να δημιουργηθεί ένα κύκλωμα που θα χρησιμοποιεί Arduino και θα αναβοσβήνει είτε ένα κόκκινο είτε ένα πράσινο LED κάτω από τον έλεγχο ενός διακόπτη ώθησης (push button) 9 8 2 Κάρτα Arduino 5V Δ 10ΚΩ 220Ω 220Ω GND Ηλεκτρονικό Κύκλωμα 58

ΥΛΟΠΟΙΗΣΗ ΗΛΕΚΤΡΟΝΙΚΟΥ ΚΥΚΛΩΜΑΤΟΣ 59

ΛΟΓΙΚΟ ΔΙΑΓΡΑΜΜΑ ΠΡΟΓΡΑΜΜΑΤΟΣ Ακίδα 2 ΕΙΣΟΔΟΣ Ακίδα 8 ΕΞΟΔΟΣ Ακίδα 9 ΕΞΟΔΟΣ OXI NAI Ακίδα 9 = LOW Ακίδα 8 = Ακίδα 2 = HIGH? Ακίδα 8 = LOW HIGH ANAMONH1 sec Ακίδα 9 = HIGH Ακίδα 8 = LOW Αναμονή 1sec Ακίδα 9 = LOW ANAMONH 1 sec ANAMONH 1 sec 60

ΤΟ ΠΡΟΓΡΑΜΜΑ ΣΕ ΓΛΩΣΣΑ WIRING C int buttonpin = 2; int GledPin = 8; int RledPin = 9; void setup() { pinmode( buttonpin, INPUT); pinmode( GledPin, OUTPUT); pinmode( RledPin, OUTPUT); } //Ονόμασε ακίδα 2 buttonpin //Ονόμασε ακίδα 8 GledPin //Ονόμασε ακίδα 9 RledPin //Κάνε την ακίδα 2 είσοδο //και τις ακίδες 8 και 9 // εξόδους 61

void loop() { if (digitalread(buttonpin)) { digitalwrite( RledPin, LOW ); digitalwrite( GledPin, HIGH ); delay( 1000 ); digitalwrite( GledPin, LOW ); delay( 1000 ); } else { digitalwrite( GledPin, LOW ); digitalwrite( RledPin, HIGH ); delay( 1000 ); digitalwrite( RledPin, LOW ); delay( 1000 ); } } //Αν ή ακίδα 2 είναι HIGH //Αναβόσβησε πράσινο LED //Διαφορετικά //Αναβόσβησε κόκκινο LED 62

ΕΥΧΑΡΙΣΤΟΥΜΕ ΠΟΛΥ!!! 63