Σεμινάριο Ηλεκτρονικών Πρακτικές εφαρμογές με μικροελεγκτή

Μέγεθος: px
Εμφάνιση ξεκινά από τη σελίδα:

Download "Σεμινάριο Ηλεκτρονικών 3-4-2014. Πρακτικές εφαρμογές με μικροελεγκτή"

Transcript

1 Σεμινάριο Ηλεκτρονικών Πρακτικές εφαρμογές με μικροελεγκτή 1.Έλεγχος θερμοκρασίας (I. Μαλτέζος) Μέτρηση θερμοκρασίας και on-off έλεγχος ανεμιστήρα με το λογισμικό LabView σε σειριακή επικοινωνία με το Arduino Uno....Σελ 2 2.Έλεγχος DC κινητήρα (I.Κουβαράκης) Έλεγχος ταχύτητας και κατεύθυνσης ενός κινητήρα DC χρησιμοποιώντας ένα Arduino και τα L293D motor driver chip και Arduino Motor Shield R3...Σελ 7 3.Μετρητής απόστασης με απεικόνιση της ένδειξης σε display (X. Δερμάτης) Απεικόνιση χαρακτήρων σε display LCD και ενδείξεις από μετρητή απόστασης ( distance sensor )... Σελ 23 4.Πινακίδα οπτικών εφφέ (N.Λεοντσίνης) Χρήση του Arduino για τον έλεγχο λειτουργίας πινακίδας LED...Σελ 26 5.Έλεγχος κινητήρα servo -Ρομποτικός Βραχίονας (Π. Πούτος) Έλεγχος κινητήρα servo (π.χ ενός ρομποτικού βραχίονα) χρησιμοποιώντας το λογισμικό LabView σε σειριακή επικοινωνία με το Arduino Uno... Σελ Έλεγχος LED Matrix με Arduino (Π. Μπαλούρδος) Χρήση του αναπτυξιακού συστήματος Arduino Uno για τον έλεγχο ενός LED Matrix 6X6...Σελ 50 7.Ανίχνευση κίνησης με PIR sensor (Α. Μαρμαρινός) Συναγερμός με τον Arduino...Σελ 56 8.Αυτοματισμός με LDR (Χ. Τουμασάτος) Αυτοματισμός για έλεγχο ανάμματος LED (ή οποιουδήποτε στοιχείου φωτισμού) σε σχέση με τον περιβάλλοντα φωτισμό, με μεταβλητό-ρυθμιζόμενο σημείο έναυσης (threshold) και ταυτόχρονη απεικόνιση των πληροφοριών σε LCD Display...Σελ 58 9.Αναπαραγωγή μελωδίας (Ι. Μπάκας) Δημιουργία μουσικών τόνων με τον Arduino...Σελ 61

2 1 η Εφαρμογή: Έλεγχος θερμοκρασίας Μέτρηση θερμοκρασίας και on-off έλεγχος ανεμιστήρα με το λογισμικό LabView σε σειριακή επικοινωνία με το Arduino Uno. I. Μαλτέζος Υλικά Τα υλικά που χρειάστηκαν για αυτή την εφαρμογή, είναι: -Ένα Arduino Uno -Ένα Led -Ένα μικρό ανεμιστηράκι -USB καλώδιο -Το λογισμικό Labview 7.0 Συνδεσμολογία με το Arduino Για να συνδεθεί σωστά το κύκλωμα πρέπει να συνδεθεί το μακρύ ποδαράκι του Led στο pin13 και το κοντό ποδαράκι στη γείωση (GND). Συνήθως, οι περισσότερες πλακέτες έχουν ήδη ένα Led ενσωματωμένο. Επίσης συνδέουμε το θετικό (κόκκινο) καλώδιο του ανεμιστήρα στο pin12 και το αρνητικό (μαύρο) καλώδιο στη γείωση.

3 Πρόγραμμα // ΟΡΙΣΜΟΣ ΜΕΤΑΒΛΗΤΩΝ float tempc; //ΟΡΙΣΜΟΣ ΜΕΤΑΒΛΗΤΗΣ ΤΥΠΟΥ FLOAT (ΔΕΚΑΔΙΚΟΥ ΑΡΙΘΜΟΥ) ΜΕ ΟΝΟΜΑ tempc ΜΕ ΣΚΟΠΟ ΝΑ ΧΡΗΣΙΜΟΠΟΙΗΘΕΙ ΑΠΟ ΤΟ ΠΡΟΓΡΑΜΜΑ ΓΙΑ ΤΗΝ ΑΠΟΘΗΚΕΥΣΗ ΤΗΣ ΤΙΜΗΣ ΤΗΣ ΘΕΡΜΟΚΡΑΣΙΑΣ int sensorvalue; //ΟΡΙΣΜΟΣ ΜΕΤΑΒΛΗΤΗΣ ΤΥΠΟΥ INTEGER (ΑΚΕΡΑΙΟΥ ΑΡΙΘΜΟΥ) ΜΕ ΟΝΟΜΑ sensorvalue ΜΕ ΣΚΟΠΟ ΝΑ ΧΡΗΣΙΜΟΠΟΙΗΘΕΙ ΑΠΟ ΤΟ ΠΡΟΓΡΑΜΜΑ ΓΙΑ ΤΗΝ ΑΠΟΘΗΚΕΥΣΗ ΤΗΣ ΤΙΜΗΣ ΤΗΣ ΤΑΣΗΣ ΑΠΟ ΤΟΝ ΑΙΣΘΗΤΗΡΑ (0-1023) int temppin = 0; //ΟΡΙΣΜΟΣ ΜΕΤΑΒΛΗΤΗΣ ΤΥΠΟΥ INTEGER (ΑΚΕΡΑΙΟΥ ΑΡΙΘΜΟΥ) ΜΕ ΟΝΟΜΑ temppin ΚΑΙ ΑΠΟΔΟΣΗ ΤΗΣ ΤΙΜΗΣ 0, ΜΕ ΣΚΟΠΟ ΝΑ ΧΡΗΣΙΜΟΠΟΙΗΘΕΙ ΑΠΟ ΤΟ ΠΡΟΓΡΑΜΜΑ ΓΙΑ ΤΗΝ ΕΠΙΛΟΓΗ ΤΟΥ ΚΑΝΑΛΙΟΥ ΕΙΣΟΔΟΥ ΤΟΥ ADC int fanpin=12; //ΟΡΙΣΜΟΣ ΜΕΤΑΒΛΗΤΗΣ ΤΥΠΟΥ INTEGER (ΑΚΕΡΑΙΟΥ ΑΡΙΘΜΟΥ) ΜΕ ΟΝΟΜΑ fanpin ΚΑΙ ΑΠΟΔΟΣΗ ΤΗΣ ΤΙΜΗΣ 12, ΜΕ ΣΚΟΠΟ ΝΑ ΧΡΗΣΙΜΟΠΟΙΗΘΕΙ ΑΠΟ ΤΟ ΠΡΟΓΡΑΜΜΑ ΓΙΑ ΤΗΝ ΕΠΙΛΟΓΗ ΤΗΣ Ι/Ο ΘΥΡΑΣ ΣΥΝΔΕΣΗΣ ΤΟΥ ΑΝΕΝΙΣΤΗΡΑ int ledpin=13; //ΟΡΙΣΜΟΣ ΜΕΤΑΒΛΗΤΗΣ ΤΥΠΟΥ INTEGER (ΑΚΕΡΑΙΟΥ ΑΡΙΘΜΟΥ) ΜΕ ΟΝΟΜΑ fanpin ΚΑΙ ΑΠΟΔΟΣΗ ΤΗΣ ΤΙΜΗΣ 13, ΜΕ ΣΚΟΠΟ ΝΑ ΧΡΗΣΙΜΟΠΟΙΗΘΕΙ ΑΠΟ ΤΟ ΠΡΟΓΡΑΜΜΑ ΓΙΑ ΤΗΝ ΕΠΙΛΟΓΗ ΤΗΣ Ι/Ο ΘΥΡΑΣ ΣΥΝΔΕΣΗΣ ΤΟΥ LED float thermostate=0; //ΟΡΙΣΜΟΣ ΜΕΤΑΒΛΗΤΗΣ ΤΥΠΟΥ FLOAT (ΔΕΚΑΔΙΚΟΥ ΑΡΙΘΜΟΥ) ΜΕ ΟΝΟΜΑ thermostate ΚΑΙ ΑΠΟΔΟΣΗ ΤΗΣ ΑΡΧΙΚΗΣ ΤΙΜΗΣ 0, ΜΕ ΣΚΟΠΟ ΝΑ ΧΡΗΣΙΜΟΠΟΙΗΘΕΙ ΑΠΟ ΤΟ ΠΡΟΓΡΑΜΜΑ ΓΙΑ ΤΗΝ ΑΠΟΘΗΚΕΥΣΗ ΤΗΣ ΤΙΜΗΣ ΤΗΣ ΘΕΡΜΟΚΡΑΣΙΑΣ ΕΝΕΡΓΟΠΟΙΗΣΗΣ ΤΟΥ ΑΝΕΜΙΣΤΗΡΑ // // ΑΡΧΙΚΕΣ ΡΥΘΜΙΣΕΙΣ ΜΙΚΡΟΕΛΕΓΚΤΗ void setup() //ΣΥΝΑΡΤΗΣΗ ΑΡΧΙΚΩΝ ΡΥΘΜΙΣΕΩΝ ΤΟΥ ΜΙΚΡΟΕΛΕΓΚΤΗ { Serial.begin(9600); //ΑΡΧΙΚΟΠΟΙΗΣΗ ΤΗΣ ΣΕΙΡΙΑΚΗΣ ΕΠΙΚΟΙΝΩΝΙΑΣ ΜΕ ΤΑΧΥΤΗΤΑ 9600 bits/sec analogreference(internal); //ΟΡΙΣΜΟΣ ΤΗΣ ΤΑΣΗΣ ΑΝΑΦΟΡΑΣ ΤΟΥ ADC ΣΤΑ 1,1 VOLTS ΜΕ ΧΡΗΣΗ ΕΣΩΤΕΡΙΚΗΣ ΣΤΑΘΜΗΣ ΑΝΑΦΟΡΑΣ ΤΟΥ ΜΙΚΡΟΕΛΕΓΚΤΗ.(ΜΕΙΩΣΗ ΑΠΟ ΤΑ 5 VOLTS ΣΤΑ 1,1 VOLTS ΓΙΑ ΚΑΛΥΤΕΡΗ ΔΙΑΚΡΙΤΙΚΗ ΑΚΡΙΒΕΙΑ - ΑΠΟ 4,9mV ΣΕ 1mV) pinmode(fanpin, OUTPUT); //ΟΡΙΣΜΟΣ ΤΟΥ PIN ME ΑΡΙΘΜΟ fanpin ΔΗΛΑΔΗ ΤΟ 13 (ΟΠΩΣ ΟΡΙΣΤΙΚΕ ΠΑΡΑΠΑΝΩ ΣΤΙΣ ΜΕΤΑΒΛΗΤΕΣ)ΣΑΝ ΕΞΟΔΟΣ. pinmode(ledpin, OUTPUT); //ΟΡΙΣΜΟΣ ΤΟΥ PIN ME ΑΡΙΘΜΟ ledpin ΔΗΛΑΔΗ ΤΟ 12 (ΟΠΩΣ ΟΡΙΣΤΙΚΕ ΠΑΡΑΠΑΝΩ ΣΤΙΣ ΜΕΤΑΒΛΗΤΕΣ)ΣΑΝ ΕΞΟΔΟΣ. //

4 void loop() //ΣΥΝΑΡΤΗΣΗ ΚΥΡΙΑΣ ΡΟΥΤΙΝΑΣ ΤΟΥ ΜΙΚΡΟΕΛΕΓΚΤΗ { //----ΔΙΑΒΑΣΜΑ ΜΕΤΡΗΣΕΩΝ ΘΕΡΜΟΚΡΑΣΙΑΣ ΑΠΟ ΤΟΝ ΑΙΣΘΗΤΗΡΑ----- sensorvalue = analogread(temppin); //ΔΙΑΒΑΣΜΑ ΤΗΣ ΤΑΣΗΣ ΠΟΥ ΔΙΝΕΙ ΤΟ LM35 ΑΠΟ ΤΟΝ ADC (ΚΑΝΑΛΙ ΕΙΣΟΔΟΥ 0 - PIN A0) ΚΑΙ ΑΠΟΔΟΣΗ ΤΗΣ ΤΙΜΗΣ (0-1023) ΣΤΗΝ ΜΕΤΑΒΛΗΤΗ sensorvalue tempc = sensorvalue / 9.31; // ΔΙΑΙΡΕΣΗ ΤΗΣ ΤΙΜΗΣ ΠΟΥ ΔΙΑΒΑΣΤΗΚΕ ΜΕ ΤΟ 9.31(ΒΛ ΤΟ ΘΕΩΤΗΡΙΚΟ ΜΕΡΟΣ) ΓΙΑ ΤΗΝ ΜΕΤΑΤΡΟΠΗ ΣΕ ΒΑΘΜΟΥΣ ΚΕΛΣΙΟΥ ΚΑΙ ΑΠΟΔΟΣΗ ΤΗΣ ΤΙΜΗΣ ΣΤΗΝ ΜΕΤΑΒΛΗΤΗ tempc // //-----ΑΠΟΣΤΟΛΗ ΜΕΤΡΗΣΕΩΝ ΘΕΡΜΟΚΡΑΣΙΑΣ ΣΤΟΝ ΥΠΟΛΟΓΙΣΤΗ Serial.println(tempC); // ΑΠΟΣΤΟΛΗ ΣΕΙΡΙΑΚΑ ΣΤΟΝ Η/Υ ΤΗΝ ΤΙΜΗ ΤΗΣ ΘΕΡΜΟΚΡΑΣΙΑΣ delay(100); // ΚΑΘΥΣΤΕΡΗΣΗ 100ms (ΔΙΑΒΑΣΜΑ ΚΑΙ ΑΠΟΣΤΟΛΗ ΘΕΡΜΟΚΡΑΣΙΑΣ ΚΑΘΕ 100ms) // //-----ΑΝΑΓΝΩΣΗ ΤΙΜΩΝ ΘΕΡΜΟΚΡΑΣΙΑΣ ΓΙΑ ΤΟΝ ΕΛΕΓΧΟ ΤΟΥ ΑΝΕΜΙΣΤΗΡΑ ΑΠΟ ΤΟΝ ΥΠΟΛΟΓΙΣΤΗ thermostate = Serial.parseFloat(); // ΑΝΑΓΝΩΣΗ ΤΩΝ ΔΕΔΟΜΕΝΩΝ (ΣΕ ΜΟΡΦΗ ΧΑΡΑΚΤΗΡΩΝ - STRINGS) ΠΟΥ ΣΤΕΛΝΕΙ ΤΟ LABVIEW ΣΤΟ ARDUINO, ΑΝΙΧΝΕΥΣΗ ΤΩΝ ΑΡΙΘΜΗΤΙΚΩΝ ΔΕΔΟΜΕΝΩΝ, ΜΕΤΑΤΡΟΠΗ ΤΟΥΣ ΣΕ ΔΕΚΑΔΙΚΟΥΣ ΑΡΙΘΜΟΥΣ (FLOAT) KAI ΑΠΟΘΗΚΕΥΣΗ ΤΟΥΣ ΣΤΗΝ ΜΕΤΑΒΛΗΤΗ thermostat // // (ON-OFF ΕΛΕΓΧΟΣ ΑΝΕΜΙΣΤΗΡΑ ΚΑΙ LED) if (tempc < thermostate ) { // ΕΑΝ Η ΤΙΜΗ ΤΗΣ ΘΕΡΜΟΚΡΑΣΙΑΣ ΕΙΝΑΙ ΜΙΚΡΟΤΕΡΗ ΑΠΟ ΤΗΝ ΤΙΜΗ ΤΟΥ ΘΕΡΜΟΣΤΆΤΗ (ΑΥΤΗ ΠΟΥ ΟΡΙΖΕΤΑΙ ΣΤΟ LABVIEW) TOTE: digitalwrite (fanpin, LOW); // ΒΓΑΛΕ ΛΟΓΙΚΟ ΜΗΔΕΝ ΣΤΟ PIN 12, ΔΗΛΑΔΗ ΔΕΝ ΕΧΟΥΜΕ ΕΝΕΡΓΟΠΟΙΗΣΗ ΤΟΥ ΑΝΕΜΙΣΤΗΡΑ digitalwrite (ledpin, LOW); // ΒΓΑΛΕ ΛΟΓΙΚΟ ΜΗΔΕΝ ΣΤΟ PIN 13, ΔΗΛΑΔΗ ΔΕΝ ΕΧΟΥΜΕ ΕΝΕΡΓΟΠΟΙΗΣΗ ΤΟΥ LED else //ΑΛΛΙΩΣ: { digitalwrite (fanpin, HIGH); //ΒΓΑΛΕ ΛΟΓΙΚΟ ΕΝΑ ΣΤΟ PIN 12, ΔΗΛΑΔΗ ΕΧΟΥΜΕ ΕΝΕΡΓΟΠΟΙΗΣΗ ΤΟΥ ΑΝΕΜΙΣΤΗΡΑ digitalwrite (ledpin, HIGH); //ΒΓΑΛΕ ΛΟΓΙΚΟ ΕΝΑ ΣΤΟ PIN 13, ΔΗΛΑΔΗ ΕΧΟΥΜΕ ΕΝΕΡΓΟΠΟΙΗΣΗ ΤΟΥ LED //

5 Το πρόγραμμα στο Labview To Front Panel To block Diagram

6 Σχόλια-Ανάλυση του κώδικα Αρχικά, ορίζουμε τις μεταβλητές του προγράμματος, όπου αν έχουμε δεκαδικές τιμές τις ορίζουμε σαν τύπος float, π.χ. η tempc για την απόδοση των τιμών της θερμοκρασίας. Στις αρχικές ρυθμίσεις του μικροελεγκτή ορίζουμε την ταχύτητα της σειριακής επικοινωνίας, την τάση αναφοράς του ADC χρησιμοποιώντας μία εσωτερική τιμή τάσης αναφοράς 1.1 volts που διαθέτει ο Atmega328(αφού από το αισθητήριο δεν θα πάρουμε τάση μεγαλύτερης τιμής), και ορίζουμε επίσης τα pins12,13 σαν εξόδους. Στην κύρια ρουτίνα του προγράμματος διαβάζουμε την τάση του αισθητηρίου με τον ADC και το αποτέλεσμα του διαιρούμε με 9.31 για να το μετατρέψουμε σε βαθμούς Κελσίου, έχοντας υπόψη μας τον ακόλουθο συλλογισμό: Ορίζουμε τάση αναφοράς για τον ADC τα 1.1 volts. Ο ADC είναι 10 bits άρα έχουμε 2^10=1024 στάθμες με (1.1 / 1024)=1.0742mV διακριτική ικανότητα του ADC. Από το LM35 έχουμε 10mV ανά 1 βαθμό Κελσίου. Έτσι κάθε αλλαγή στην στάθμη του ADC (1.0742mV) αντιστοιχεί σε ( mv / 10 mv)= =(1 / 9.31) βαθμούς Κελσίου. Στην συνέχεια στέλνουμε την τιμή της θερμοκρασίας στον Η/Υ, από όπου και διαβάζουμε ακόλουθα, την τιμή της θερμοκρασίας ενεργοποίησης του ανεμιστήρα. Τέλος ακολουθεί το τμήμα ON-OFF ελέγχου του ανεμιστήρα. Λίγα λόγια για το πρόγραμμα στο Labview Με το VISA Read διαβάζουμε τα δεδομένα σε μορφή χαρακτήρων που στέλνει ο Arduino, όπου με το Fract/Exp String To Number τα μετατρέπουμε σε μορφή αριθμών για να τα απεικονίσουμε με το θερμόμετρο και να τα συγκρίνουμε με τα αριθμητικά δεδομένα που δημιουργεί ο ρυθμιστής θερμοκρασίας για το άναμα του Led στο Labview και την αλλαγή της εικόνας του ανεμιστήρα. Τα αριθμητικά αυτά δεδομένα του ρυθμιστή θερμοκρασίας με το Number To Decimal String τα μετατρέπουμε σε μορφή χαρακτήρων όπου με το Concatenate Strings τους προσθέτουμε τον χαρακτήρα enter (Τον χρειάζεται η συνάρτηση Serial.parseFloat()του Arduino για να ανιχνεύει το τέλος της μετάδοσης μίας τιμής) και τα στέλνουμε στον Arduino με το VISA Write.

7 2 η Εφαρμογή: Έλεγχος DC κινητήρα Γιάννης Κουβαράκης Έλεγχος DC Κινητήρα με Arduino και το ολοκληρωμένο 293D Created by Simon Monk Επιμέλεια Γιάννης Κουβαράκης Απρίλιος 2014 Adafruit Industries

8 Πνευματικά δικαιώματα: Πηγή για την εφαρμογή και την συγγραφή του φύλλου έργου που κρατάτε στα χέρια σας είναι η ιστοσελίδα της adafruit intustries: και δημιουργός του άρθρου ο Simon Monk Adafruit Industries 150 VARICK ST NEW YORK, NY Fax: (917) Adafruit Industries

9 Εισαγωγή Σε αυτή την εφαρμογή, θα μάθουμε πως να ελέγχουμε την φορά περιστροφής και την ταχύτητα ενός μικρού DC κινητήρα χρησιμοποιώντας ένα Arduino και το L293D motor driver chip. Στην εφαρμογή μας χρησιμοποιούμε ένα ποτενσιόμετρο για την ρύθμιση των στροφών και ένα push button για τον έλεγχο της φοράς περιστροφής του κινητήρα. Adafruit Industries

10 Εξαρτήματα Υλικά Για την εφαρμογή μας, θα χρησιμοποιήσουμε τα παρακάτω εξαρτήματα. Εξάρτημα Ποσότητα Μικρός Κινητήρας 6V DC 1 L293D IC 1 10 kω μεταβλητή αντίσταση 1 Adafruit Industries

11 Διακόπτης push switch 1 Μικρή Breadboard 1 Arduino Uno R3 1 καλώδια συνδεσμολογίας 16 Adafruit Industries

12 L293D Ολοκληρωμένο κύκλωμα L293D Τo L293D είναι ένα 16pins chip και είναι μονολιθικό ολοκληρωμένο κύκλωμα, υψηλής τάσης. Αυτό σημαίνει ότι χρησιμοποιώντας αυτό το chip, μπορούν να χρησιμοποιηθούν DC κινητήρες και τροφοδοτικά μέχρι 36 Volts και παρέχει ένα μέγιστο ρεύμα 600mA ανά κανάλι. Το ολοκληρωμένο είναι σχεδιασμένο για να ελέγχει 2 DC κινητήρες. Αυτό γίνεται με τα 2 INPUT και 2 OUTPUT pins για τον κάθε κινητήρα. Εμείς σε αυτό το πείραμα χρησιμοποιούμε το μισό μέρος (αριστερά όπως το βλέπουμε) του ολοκληρωμένου. Τα περισσότερα pin του δεξιου μέρους είναι για τον δεύτερο κινητήρα. L293D chip Χαρακτηριστικά του ολοκληρωμένου L293D Αριθμός pins 16 Τάση λειτουργίας 4.5V έως 36V Μέγιστο ρεύμα ανά κανάλι 600mA Input signals (Vi) 7V Enable Voltage(Ven) 7V Interface TTL/CMOS Θερμοκρασία λειτουργίας -40 ~ 150 C Λειτουργία του L293D Για την λειτουργία του ολοκληρωμένου χρειάζεται είναι να ρυθμίσουμε σε κατάλληλα επίπεδα τους ακροδέκτες inputs του μικροελεγκτή για τον έλεγχο του κινητήρα και τα outputs σε κάθε ακροδέκτη του κινητήρα. Αξίζει να αναφερθεί, ότι υπάρχουν επίσης δύο ακίδες 1 και 9 για ενεργοποίηση (Enable) στο ολοκληρωμένο, που αντιστοιχούν στους δύο κινητήρες και θα πρέπει να είναι σε κατάσταση high για να λειτουργήσει. Όταν μια είσοδος enable είναι high το σχετικό pin ενεργοποιείται. Ως αποτέλεσμα, οι έξοδοι να καταστούν ενεργοί.

13 Ομοίως, όταν η είσοδος enable είναι low το σχετικό pin απενεργοποιείται, και το αποτέλεσμα, οι έξοδοι να καταστούν ανενεργοί Σύνδεση κινητήρων στο ολοκληρωμένο L293D Πρόκειται για ένα ολοκληρωμένο κύκλωμα το οποίο επιτρέπει την περιστροφή του κινητήρα και στις δύο κατευθύνσεις. Δηλαδή, μπορεί να προγραμματιστεί να ξεκινάει, να αντιστρέφει ή να σταματάει. ΙΝΤ1 ΙΝΤ2 Κινητήρας Περιστρέφεται σε μια κατεύθυνση 1 0 Περιστρέφεται σε αντίθετη κατεύθυνση Παρόμοιος είναι και ο πίνακας αλήθειας για ένα άλλο κινητήρα που συνδέεται με OUT3 και OUT4 στο L293D και μπορεί να ελέγχεται μέσω INT3 και ΙΝΤ4 ΙΝΤ3 ΙΝΤ4 Κινητήρας Περιστρέφεται σε μια κατεύθυνση 1 0 Περιστρέφεται σε αντίθετη κατεύθυνση

14 Εισαγωγική Εφαρμογή Πριν πάρουμε την πλακέτα του Arduino για να ελέγξουμε τον κινητήρα, θα πειραματιστούμε με το L293D motor control chip για να κατανοήσουμε την βασική αρχή λειτουργίας του. Μπορούμε να ξεκινήσουμε απλά χρησιμοποιώντας το Arduino για να παρέχει 5V στον κινητήρα. Σημείωστε προς ποια πλευρά περιστρέφεται ο κινητήρας. Μπορούμε να το κάνουμε αυτό πιάνοντας τον άξονα του κινητήρα ανάμεσα στα δάχτυλά μας. Ανταλλάξτε τους ακροδέκτες του κινητήρα ώστε ο ακροδέκτης που πήγαινε στα +5V τώρα να πηγαίνει στην γείωση και αντίστροφα. Ο κινητήρας τώρα θα περιστρέφεται προς την αντίθετη κατεύθυνση. Αυτό μας δίνει μια ένδειξη για το πώς δουλεύει το τσιπάκι L293D. Οι ακροδέκτες ελέγχου του μας αφήνουν να κάνουμε κάτι ισοδύναμο της ανταλλαγής με τους ακροδέκτες του κινητήρα για να αντιστρέψουμε την κατεύθυνση.

15 Σύνδεστε την πλακέτα όπως φαίνεται παρακάτω. Το Αrduino είναι ακόμα απλά για την παροχή ενέργειας, αλλά μπορούμε να πειραματιστούμε με τους ακροδέκτες ελέγχου πριν χρησιμοποιήσουμε το Arduino. Οι τρεις ακροδέκτες του L293D που μας ενδιαφέρουν είναι ο ακροδέκτης 1 (Enable), ακροδέκτης 2 (In1) και ακροδέκτης 3 (In2). Αυτοί είναι συνδεδεμένοι είτε στα 5V είτε στη γείωση χρησιμοποιώντας το μωβ, κίτρινο και πορτοκαλί καλώδιο βραχυκύκλωσης. Όπως φαίνεται παραπάνω, ο κινητήρας θα πρέπει να στρέφεται προς μια κατεύθυνση, ας την ονομάσουμε κατεύθυνση Α. Αν μετακινήσουμε τον ακροδέκτη 1 (Enable) στην γείωση ο κινητήρας θα σταματήσει, ανεξάρτητα από το τι κάνουμε με τους ακροδέκτες ελέγχου In1 και In2. Το enable ανάβει και σβήνει οτιδήποτε. Αυτό γίνεται χρήσιμο όταν χρησιμοποιούμε μια έξοδο PWM για να ελέγξουμε την ταχύτητα του κινητήρα. Συνέδεουμε ξανά τον ακροδέκτη 1 στα 5V ώστε να ξεκινήσει ο κινητήρας. Τώρα ας δοκίμασουμε να μετακινήσουμε το In1 (ακροδέκτης 2, κίτρινο καλώδιο) από τα 5V στη γείωση. Αυτή τη στιγμή και το In1 και το In2 είναι συνδεδεμένα στη γείωση, έτσι πάλι ο κινητήρας θα σταματήσει. Μετακίνούμε το In2 από την γείωση στα 5V αυτό θα προκαλέσει στον κινητήρα περιστροφή προς την αντίθετη κατεύθυνση (κατεύθυνση Β). Τέλος, μετακίνηνούμε το In1 πίσω στα 5V έτσι ώστε και το In1 και το In2 να είναι στα 5V θα έχει σαν αποτέλεσμα να σταματήσει πάλι ο κινητήρας. Η επίδραση από τους ακροδέκτες In1 και In2 του κινητήρα συνοψίζονται στον πίνακα από κάτω: In1 In2 Κινητήρας GND GND Σταματάει 5V GND Γυρνάει στην κατεύθυνση A GND 5V Γυρνάει στην κατεύθυνση B 5V 5V Σταματάει

16 Συνδεσμολογία με το Arduino Τώρα αφού κάναμε τα προηγούνα χειροκίνητα ας αφήσουμε τον Arduino να ελέγξει τα pins. Enable, In1 και In2 Όταν συνδέσουμε το ολοκληρωμένο πρέπει να σιγουρευτούμε ότι έχει τοποθετηθεί σωστά (με το notch στο επάνω μέρος)

17 Πρόγραμμα Ας φορτώσουμε το παρακάτω sketch στον Arduino. /* Έλεγχος φοράς και ταχύτητας περιστροφής DC κινητήρα */ int enablepin = 11; int in1pin = 10; int in2pin = 9; int switchpin = 7; int potpin = 0; void setup() { pinmode(in1pin, OUTPUT); pinmode(in2pin, OUTPUT); pinmode(enablepin, OUTPUT); pinmode(switchpin, INPUT_PULLUP); void loop() { int speed = analogread(potpin) / 4; boolean reverse = digitalread(switchpin); setmotor(speed, reverse); void setmotor(int speed, boolean reverse) { analogwrite(enablepin, speed); digitalwrite(in1pin,! reverse); digitalwrite(in2pin, reverse);

18 Σχόλια, ανάλυση του Κώδικα /* Έλεγχος φοράς και ταχύτητας περιστροφής DC κινητήρα */ int enablepin = 11; //Ορίζουμε μια μεταβλητή τύπου integer (ακεραίου) με όνομα enablepin και της δίνουμετην τιμή 11 με σκοπό να την χρησιμοποιήσουμε παρακάτω στον κώδικα και να δηλώσουμε που θα συνδέσουμε τον ακροδέκτη 1 (enable 1) του chip 293D int in1pin = 10; //Ορίζουμε μια μεταβλητή τύπου integer (ακεραίου) με όνομα in1pin και της δίνουμετην τιμή 10 με σκοπό να την χρησιμοποιήσουμε παρακάτω στον κώδικα και να δηλώσουμε που θα συνδέσουμε τον ακροδέκτη 2 (input 1) του chip 293D int in2pin = 9; //Ορίζουμε μια μεταβλητή τύπου integer (ακεραίου) με όνομα in2pin και της δίνουμετην τιμή 9 με σκοπό να την χρησιμοποιήσουμε παρακάτω στον κώδικα και να δηλώσουμε που θα συνδέσουμε τον ακροδέκτη 7 (input 2) του chip 293D int switchpin = 7; //Ορίζουμε μια μεταβλητή τύπου integer (ακεραίου) με όνομα switchpin και της δίνουμετην τιμή 7 με σκοπό να την χρησιμοποιήσουμε παρακάτω στον κώδικα και να δηλώσουμε που θα συνδέσουμε τον ένα πόλο του διακόπτη αλλαγής φοράς περιστροφής του κινητήρα (ο άλλος πόλος θα συνδεθεί στην γείωση) int potpin = 0; //Ορίζουμε μια μεταβλητή τύπου integer (ακεραίου) με όνομα potpin και της δίνουμε την τιμή 0 με σκοπό να την χρησιμοποιήσουμε παρακάτω στον κώδικα και να δηλώσουμε που θα συνδέσουμε τον δρομέα του ποτενσιόμετρου των 10ΚΩ ώστε να ρυθμίσουμε τα 0 έως 5V στην αναλογική είσοδο Α0 προκειμένου αφού μετατραπεί σε έναν αριθμό από να ρυθμίσουμε την ταχύτητα περιστροφής του κινητήρα void setup() //Η συνάρτηση αρχικών ρυθμίσεων του μικροεπεξεργαστή {

19 pinmode(in1pin, OUTPUT); //Ορίζουμε χρησιμοποιώντας την μεταβλητή in1pin ότι το pin 10 θα λειτουργεί σαν ψηφιακή έξοδος 0-5V ώστε να ενεργοποιούμε-απενεργοποιούμε τον ακροδέκτη 2 (input 1) του chip 293D pinmode(in2pin, OUTPUT); //Ορίζουμε χρησιμοποιώντας την μεταβλητή in2pin ότι το pin 9 θα λειτουργεί σαν ψηφιακή έξοδος 0-5V ώστε να ενεργοποιούμε-απενεργοποιούμε τον ακροδέκτη 7 (input 2) του chip 293D pinmode(enablepin, OUTPUT); //Ορίζουμε χρησιμοποιώντας την μεταβλητή enablepin ότι το pin 11 θα λειτουργεί σαν έξοδος 0-5V με PWM μεταβλητού Duty cycle* ώστε να ενεργοποιούμε-απενεργοποιούμε τον ακροδέκτη 1 (enable 1) του chip 293D με μεταβολή 0 έως 255 pinmode(switchpin, INPUT_PULLUP); //Υπάρχουν pullup αντιστάσεις 20K ενσωματωμένες στο chip Atmega που μπορoύν να ενεργοποιηθούν από το λογισμικό. Αυτές οι ενσωματωμένες αντιστάσεις pullup ενεργοποιούνται με την ρύθμιση του pinmode () ως INPUT_PULLUP. Εδώ με τον διακόπτη πατημένο έχουμε LOW ενώ με τον διακόπτη ανοιχτό HIGH void loop() //Η κύρια ρουτίνα του προγράμματος που εκτελείται συνεχώς { int speed = analogread(potpin) / 4; //Ορίζουμε μια μεταβλητή τύπου integer (ακεραίου) με όνομα speed να διαβάζει την αναλογική είσοδο διαιρώντας ταυτόχρονα δια 4 (0-1023/4=0-255) Ο συντελεστής της διαίρεσης είναι 4 γιατί ο μετατροπέας αναλογικού σε ψηφιακό στο Α0 pin της αναλογικής εισόδου παίρνει τιμές μεταξύ 0 και 1023 και η αναλογική έξοδος στο pin 11 από 0 έως 255. boolean reverse = digitalread(switchpin); // Εάν το button είναι πατημένο, ο κινητήρας γυρίζει δεξιόστροφα, διαφορετικά αριστερόστροφα. Η τιμή της μεταβλητής 'reverse' καθορίζεται από την θέση του διακόπτη (switchpin). Έχει δύο καταστάσεις ή θα είναι low (False), ή διαφορετικά θα είναι High (True). setmotor(speed, reverse);

20 // Οι τιμές των μεταβλητών speed και reverse εισάγονται σε μια συνάρτηση που της δίνουμε το όνομα 'setmotor' έτσι ώστε να οδηγήσει τα κατάλληλα pins του driver chip ώστε να ελεγχθεί ο κινητήρας void setmotor(int speed, boolean reverse) // Η έκφραση void σημαίνει ότι η συνάρτηση δεν επιστρέφει κάποια τιμή (does not return any value). Δημιουργούμε-ορίζουμε μια συνάρτηση με int (ακέραιο μέρος) την μεταβλητή speed και Boolean (Λογικό High or Low) την μεταβλητή reverse { analogwrite(enablepin, speed); // Δημιουργία παλμών PWM στο pin 11 με τιμή speed ώστε να διαβάζει την αναλογική είσοδο διαιρώντας ταυτόχρονα δια 4 (0-1023/4=0-255) digitalwrite(in1pin,! reverse); // έχουμε με παραπάνω εντολή ορίσει το pin 10 θα λειτουργεί σαν ψηφιακή έξοδος 0-5V μεταβλητή in1pin έτσι ώστε να ενεργοποιούμε-απενεργοποιούμε τον ακροδέκτη 2 (input 1) του chip 293D (Το σύμβολο! δηλώνει λογική άρνηση NOT) digitalwrite(in2pin, reverse); // έχουμε με παραπάνω εντολή ορίσει το pin 9 θα λειτουργεί σαν ψηφιακή έξοδος 0-5V μεταβλητή in2pin έτσι ώστε να ενεργοποιούμε-απενεργοποιούμε τον ακροδέκτη 7 (input 2) του chip 293D *Duty cycle

21 Όπως εξηγήσαμε και πιο πάνω οι τιμές των μεταβλητών speed και reverse εισάγονται σε μια συνάρτηση που της δίνουμε το όνομα 'setmotor' έτσι ώστε να οδηγήσει τα κατάλληλα pins του driver chip ώστε να ελεγχθεί ο κινητήρας void setmotor(int speed, boolean reverse) { analogwrite(enablepin, speed); digitalwrite(in1pin,!reverse); digitalwrite(in2pin, reverse); Πρώτα, η ταχύτητα ρυθμίζεται, με την χρήση της analogwrite στο enable pin. Το enable pin του L293 θέτει τον κινητήρα σε κατάσταση on ή off ανάλογα με την λογική στάθμη των pins in1 and in2 του L293. Για τον έλεγχο της κατεύθυνσης του κινητήρα, τα pins in1 και in2 πρέπει να έχουν αντίθετες τιμές. Εάν το in1 είναι HIGH και το in2 είναι LOW, ο κινητήρας γυρίζει προς μία κατεύθυνση, σε αντίθετη περίπτωση σε αντίθετη κατεύθυνση. Η εντολή '!' σημαίνει 'not'. Γιαυτό η πρώτη εντολή digitalwrite για το in1 το θέτει στο αντίστροφο της λογικής τιμής του 'reverse', αν το reverse είναι HIGH γίνεται LOW και αντίστροφα. Η δεύτερη εντολή digitalwrite για το 'in2' θέτει το pin σε όποια τιμή είναι το 'reverse', αν το reverse είναι HIGH γίνεται HIGH και αντίστροφα. Αυτό σημαίνει ότι τα δύο pin θα έχουν πάντα αντίθετες λογικές τιμές. Όταν το ένα θα είναι HIGH το άλλο θα είναι LOW και αντίστροφα About the Author Simon Monk is author of a number of books relating to Open Source Hardware. The following books written by Simon are available from Adafruit: Programming Arduino ( 30 Arduino Projects for the Evil Genius ( Programming the Raspberry Pi (

22

23 3 η Εφαρμογή: Μετρητής απόστασης με απεικόνιση της ένδειξης σε display Απεικόνιση χαρακτήρων σε display LCD και ενδείξεις από μετρητή απόστασης ( distance sensor ) X. Δερμάτης Υλικά Τα υλικά που χρειάστηκαν για αυτή την εφαρμογή, είναι: -Ένα Arduino Uno -Ένα LCD -Ένας αισθητήρας απόστασης HC-SR04 -USB καλώδιο Εισαγωγή Η αρχή λειτουργίας του αισθητήρα βασίζεται στην εκπομπή ενός σήματος και στη λήψη της ηχούς του για τον υπολογισμό της απόστασης. Η κατασκευή συνδυάζεται με τη πλατφόρμα του arduino και με μια οθόνη LCD στην οποία θα εμφανίζεται το αποτέλεσμα. Η προς μέτρηση απόσταση μπορεί να μεταβληθεί από 2 cm έως 400 cm. Ο συγκεκριμένος αισθητήρας τροφοδοτείται από την πλακέτα του arduino με 5Volt. Να δούμε πως μπορούμε να υπολογίσουμε την απόσταση του κάθε αντικειμένου μπροστά από τον αισθητήρα. Σε μία χρονική στιγμή t1 εκπέμπεται ένα σήμα και τη χρονική στιγμή παίρνουμε την ηχώ του. Το χρονικό διάστημα dt = t2 t1 είναι ο συνολικός χρόνος που απαιτήθηκε για να φτάσει το σήμα στο αντικείμενο και να επιστρέψει. Όμως ο ακριβής χρόνος που χρειάστηκε για να φτάσει το σήμα στο αντικείμενο είναι dt/2. Η ταχύτητα του ήχου είναι m / s και αν θέλουμε να το μετατρέψει σε εκατοστά ανά μsec το αποτέλεσμα είναι : CM / μsec. Η πραγματική απόσταση που διανύθηκε από τον ήχο ή την απόσταση μεταξύ του αισθητήρα και του αντικειμένου είναι: (dt / 2) * 0,034049

24 Συνδεσμολογία με το Arduino Παρακάτω βλέπουμε την συνδεσμολογία της εφαρμογής. Πρόγραμμα #include <LiquidCrystal.h> LiquidCrystal lcd( 7, 6, 5, 4, 3, 2); int pingpin = 13; //ορίζουμε μια μεταβλητή τύπου ακεραίου με όνομα pingpin και της δίνουμε την τιμή 13 int inpin = 12; //ορίζουμε μια μεταβλητή τύπου ακεραίου με όνομα inpin και της δίνουμε την τιμή 12 void setup() // η συνάρτηση αρχικών ρυθμίσεων του μικροεπεξεργαστή lcd.begin(16, 2); // ορίζουμε στη οθόνης LCD τον αριθμό στηλών και γραμμών void loop() η κύρια υπορουτίνα του προγράμματος που εκτελείται συνεχώς long duration, cm; // η απόσταση θα εκφραστεί σε cm pinmode(pingpin, OUTPUT);// ρυθμίζει το pin 13 ως έξοδο digitalwrite(pingpin, LOW); // ορίζουμε την ίδια έξοδο σε κατάσταση off delaymicroseconds(2); // αναμονή για 2 μsec digitalwrite(pingpin, HIGH);//ορίζουμε την ίδια έξοδο σε on κατάσταση

25 delaymicroseconds(10); // αναμονή για 10 μsec digitalwrite(pingpin, LOW); // ρυθμίζει την ίδια έξοδο σε κατάσταση off pinmode(inpin, INPUT); //ρυθμίζει το pin 12 ως είσοδο duration = pulsein(inpin, HIGH);// μετέτρεψε το χρόνο σε απόσταση cm = microsecondstocentimeters(duration); if (cm > 400) //εάν η απόσταση είναι μεγάλη (πιθανώς δεν μετρήθηκε σωστά). lcd.clear(); //το αποτέλεσμα θα απορριφθεί lcd.setcursor(0,0); lcd.print("nothing detected"); else { διαφορετικά clear lcd content // καθάρισε το περιεχόμενο του lcd lcd.clear(); lcd.setcursor(0, 0); //τοποθέτησε τον κέρσορα στη γραμμή 0 και στη στήλη 0 lcd.print("object detected "); // τύπωσε το αντικείμενο ανιχνεύεται lcd.setcursor(0, 1); // τοποθέτησε το κέρσορα στη στήλη 0 και στη γραμμή 1 lcd.print(cm); lcd.print("cm away!"); delay(500); // αναμονή για 0,5 sec long microsecondstocentimeters(long microseconds){ // Η ταχύτητα του ήχου είναι 340m/s ή 29 μικροδευτερόλεπτα ανά εκατοστό. // Το σήμα ping εκπέμπεται και επιστρέφει έτσι ώστε να υπολογιστεί η απόσταση του αντικειμένου. // Ως απόσταση παίρνουμε το μισό της απόστασης που διανύθηκε. return microseconds / 29 / 2;

26 4 η Εφαρμογή: Πινακίδα οπτικών εφφέ () Χρήση του Arduino για τον έλεγχο λειτουργίας πινακίδας LED. Πινακίδα οπτικών εφφέ N.Λεοντσίνης Χρήση του Arduino για τον έλεγχο λειτουργίας πινακίδας LED. ΥΛΙΚΑ ΠΟΥ ΧΡΕΙΑΖΟΜΑΣΤΕ: LED, ΑΝΤΙΣΤΑΣΕΙΣ, ΤΡΑΝΖΙΣΤΟΡ ΜΟΝΩΤΙΚΟ ΣΠΡΕΥ, ΘΕΡΜΟΚΟΛΛΑ, ΚΟΛΛΗΣΗ, ΠΛΑΚΕΤΑ ΓΕΝΙΚΗΣ ΧΡΗΣΗΣ ARDUINO ΤΡΟΦΟΔΟΤΙΚΟ Συλλάβαμε την ιδέα χρησιμοποίησης του ARDUINO τη σχολ. χρονιά , όταν οι μαθητές της Β ΗΝ τάξης του ΕΠΑΛ ΚΟΡΥΔΑΛΛΟΥ, στο μάθημα του PROJECT, αποφάσισαν να κατασκευάσουν μια πινακίδα με LED η οποία στην τελική της μορφή φαίνεται στην παρακάτω εικόνα. Ο ARDUINO χρησιμοποιήθηκε για τον έλεγχο ανάμματος/σβησίματος των 5 πινακίδων.

27 ΣΥΝΔΕΣΜΟΛΟΓΙΑ ΜΕ ΤΟΝ ARDUINO Για να απλοποιήσουμε το κύκλωμα, ας δούμε το παρακάτω: Κάθε σειρά LED αντιστοιχεί σε μια από τις πέντε πινακίδες. Ουσιαστικά, η μόνη διαφορά που έχει το πραγματικό κύκλωμα της πινακίδας με το παραπάνω σχεδιάγραμμα, είναι ότι σε κάθε πινακίδα, τα LED ήταν ομαδοποιημένα ανά 10 και οι 10/δες αυτές παράλληλα συνδεδεμένες μεταξύ τους. Ίσως το κύκλωμα να είναι πιο κατανοητό αν δούμε την παρακάτω φωτογραφία.

28 Στην φωτογραφία εμφανίζονται οι 2 από τις 5 ομάδες των LED να έχουν συνδεθεί με δύο ψηφιακές εξόδους του ARDUINO. Η συνδεσμολόγηση των άλλων τριών ομάδων είναι ακριβής επανάληψη αυτών. ΠΡΟΓΡΑΜΜΑ ARDUINO int led1 = 9; // Ορίζουμε μία μεταβλητή τύπου Integer (Ακεραίου) με όνομα led και της δίνουμε την τιμή 9 με σκοπό να την χρησιμοποιήσουμε παρακάτω στον κώδικα και να δηλώσουμε που θα συνδέσουμε το led. int led2 = 10; //ΟΜΟΙΑ ΜΕ ΠΑΡΑΠΑΝΩ int led3 = 11; // -//- int led4 = 12; // -//- int led5 = 13; // -//- // the setup routine runs once when you press reset: void setup() { // ΑΡΧΙΚΟΠΟΙΗΣΗ ΤΩΝ ΜΕΤΑΒΛΗΤΩΝ // ΟΡΙΖΕΙ ΠΟΙΑ PINS ΕΙΝΑΙ ΕΞΟΔΟΙ pinmode(led1, OUTPUT); //PΙΝ 9 ΕΞΟΔΟΣ pinmode(led2, OUTPUT); //PΙΝ 10 ΕΞΟΔΟΣ pinmode(led3, OUTPUT); //PΙΝ 11 ΕΞΟΔΟΣ pinmode(led4, OUTPUT); //PΙΝ 12 ΕΞΟΔΟΣ pinmode(led5, OUTPUT); //PΙΝ 13 ΕΞΟΔΟΣ // the loop routine runs over and over again forever: void loop() { //ΚΥΡΙΑ ΡΟΥΤΙΝΑ ΠΡΟΓΡΑΜΜΑΤΟΣ ΠΟΥ ΕΠΑΝΑΛΑΜΒΑΝΕΤΑΙ ΣΥΝΕΧΕΙΑ int i; digitalwrite(led1, LOW); //H ΕΞΟΔΟΣ 9 ΣΕ ΚΑΤΑΣΤΑΣΗ LOW digitalwrite(led2, LOW); //H ΕΞΟΔΟΣ 10 ΣΕ ΚΑΤΑΣΤΑΣΗ LOW digitalwrite(led3, LOW); //H ΕΞΟΔΟΣ 11 ΣΕ ΚΑΤΑΣΤΑΣΗ LOW digitalwrite(led4, LOW); //H ΕΞΟΔΟΣ 12 ΣΕ ΚΑΤΑΣΤΑΣΗ LOW digitalwrite(led5, LOW); //H ΕΞΟΔΟΣ 13 ΣΕ ΚΑΤΑΣΤΑΣΗ LOW delay(1300); // ΠΕΡΙΜΕΝΕ 1,3 SEC, digitalwrite(led5, HIGH); //H ΕΞΟΔΟΣ 13 ΣΕ ΚΑΤΑΣΤΑΣΗ HIGH delay(1300); // ΠΕΡΙΜΕΝΕ 1,3 SEC, digitalwrite(led4, HIGH); //H ΕΞΟΔΟΣ 12 ΣΕ ΚΑΤΑΣΤΑΣΗ HIGH delay(1300); // ΠΕΡΙΜΕΝΕ 1,3 SEC, digitalwrite(led3, HIGH); //H ΕΞΟΔΟΣ 11 ΣΕ ΚΑΤΑΣΤΑΣΗ HIGH delay(1300); // ΠΕΡΙΜΕΝΕ 1,3 SEC, digitalwrite(led2, HIGH); //H ΕΞΟΔΟΣ 10 ΣΕ ΚΑΤΑΣΤΑΣΗ HIGH delay(1300); // ΠΕΡΙΜΕΝΕ 1,3 SEC, digitalwrite(led1, HIGH); //H ΕΞΟΔΟΣ 9 ΣΕ ΚΑΤΑΣΤΑΣΗ HIGH delay(1300); // ΠΕΡΙΜΕΝΕ 1,3 SEC, digitalwrite(led1, LOW); //H ΕΞΟΔΟΣ 9 ΣΕ ΚΑΤΑΣΤΑΣΗ LOW digitalwrite(led2, LOW); //H ΕΞΟΔΟΣ 10 ΣΕ ΚΑΤΑΣΤΑΣΗ LOW digitalwrite(led3, LOW); //H ΕΞΟΔΟΣ 11 ΣΕ ΚΑΤΑΣΤΑΣΗ LOW

29 digitalwrite(led4, LOW); //H ΕΞΟΔΟΣ 12 ΣΕ ΚΑΤΑΣΤΑΣΗ LOW digitalwrite(led5, LOW); //H ΕΞΟΔΟΣ 13 ΣΕ ΚΑΤΑΣΤΑΣΗ LOW delay(1000); // ΠΕΡΙΜΕΝΕ 1 SEC, for (i=0; i<5; i++) {//ΕΚΤΕΛΕΣΕ- ΕΠΑΝΕΛΑΒΕ 5 ΦΟΡΕΣ // ΑΝΑΒΕΙ ΚΑΘΕ ΦΟΡΑ 1 ΠΙΝΑΚΙΔΑ digitalwrite(led1, LOW); digitalwrite(led2, HIGH); digitalwrite(led3, LOW); digitalwrite(led4, LOW); digitalwrite(led5, LOW); delay(100); digitalwrite(led1, LOW); digitalwrite(led2, LOW); digitalwrite(led3, LOW); digitalwrite(led4, HIGH); digitalwrite(led5, LOW); delay(100); digitalwrite(led1, LOW); digitalwrite(led2, LOW); digitalwrite(led3, LOW); digitalwrite(led4, LOW); digitalwrite(led5, HIGH); delay(100); digitalwrite(led1, HIGH); digitalwrite(led2, LOW); digitalwrite(led3, LOW); digitalwrite(led4, LOW); digitalwrite(led5, LOW); delay(100); digitalwrite(led1, LOW); digitalwrite(led2, LOW); digitalwrite(led3, HIGH); digitalwrite(led4, LOW); digitalwrite(led5, LOW); delay(500); //ΑΝΑΒΟΥΝ ΟΛΕΣ ΟΙ ΠΙΝΑΚΙΔΕΣ digitalwrite(led1, HIGH); digitalwrite(led2, HIGH); digitalwrite(led3, HIGH); digitalwrite(led4, HIGH); digitalwrite(led5, HIGH); delay(1500); // Η ΡΟΥΤΙΝΑ ΕΠΑΝΑΛΑΜΒΑΝΕΤΑΙ ΑΠΟ ΤΗΝ ΑΡΧΗ

30 ΣΧΟΛΙΑ - ΕΠΙΣΗΜΑΝΣΕΙΣ Όπως γίνεται κατανοητό από το πρόγραμμα, χρησιμοποιούνται 5 ψηφιακές έξοδοι του ARDUINO τα pin 9, 10, 11, 12, 13. Κάθε ψηφιακή έξοδος του ARDUINO σε κατάσταση LOW/HIGH δίνει 0V/5V, οπότε οδηγούνται τα TRA 2N2222 σε αποκοπή / κόρο παίζοντας το ρόλο του διακόπτη. Ο χρόνος κάθε φορά που η έξοδος παραμένει σε LOW ή HIGH κατάσταση καθορίζεται από την εντολή delay. Κάθε φορά που το TRA οδηγείται σε αποκοπή, τα αντίστοιχα LED που είναι συνδεμένα με το TRA σβήνουν (έξοδος ARDUINO LOW), ενώ κάθε φορά που το TRA οδηγείται σε κόρο τα αντίστοιχα LED ανάβουν (έξοδος ARDUINO HIGH). Με τη χρήση των TRA ξεπερνάμε τον περιορισμό των ψηφιακών εξόδων του ARDUINO που μπορούν να δώσουν έξοδο 5V/40-50mA. Οι αντιστάσεις που χρησιμοποιούνται σε σειρά με τα LED όπως και η πηγή τροφοδοσίας των LED διαφέρουν κάθε φορά ανάλογα με το χρώμα και τη φωτεινότητα των LED που έχουμε επιλέξει.

31 5 η Εφαρμογή: Έλεγχος κινητήρα servo -Ρομποτικός Βραχίονας Έλεγχος κινητήρα servo (π.χ ενός ρομποτικού βραχίονα) χρησιμοποιώντας το λογισμικό LabView σε σειριακή επικοινωνία με το Arduino Uno Π. Πούτος Πέτρος Πούτος ΠΕ & ΠΕ ο ΕΠΑ.Λ Σαλαμίνας petpoutos@gmail.com

32 Πληροφορίες για τα servomotors και για την ασύγχρονη σειριακή επικοινωνία του Arduino Uno (Atmega 328p) στη συγκεκριμένη εφαρμογή. Α. ΒΑΣΙΚΕΣ ΑΡΧΕΣ ΛΕΙΤΟΥΡΓΙΑΣ DC SERVOMOTORS (μικρής ισχύος με κινητήρα μόνιμου μαγνήτη) Στις φωτογραφίες, φαίνεται το εσωτερικό ενός μικρού servo σαν εκείνα που χρησιμοποιούνται στον μοντελισμό και στην «ερασιτεχνική ρομποτική», καθώς και τα επί μέρους εξαρτήματά του. Αποτελείται από τον ηλεκτρικό κινητήρα συνεχούς ρεύματος με μόνιμο μαγνήτη στο στάτη, και τυλίγματα σε ποικίλο αριθμό πόλων. (3πολικά, 5πολικά κ.τ.λ ), τον μηχανικό μειωτήρα (γρανάζια), που μας επιτρέπει να έχουμε μεγάλη ροπή με λίγες στροφές στον άξονα του servo, ένα ηλεκτρονικό κύκλωμα (servo driver) του οποίου η αρχή λειτουργίας φαίνεται κυκλωματικά παρακάτω, και ένα ποτενσιόμετρο που το στροφείο του είναι άμεσα συνδεδεμένο (μηχανικά) με τον άξονα του servo. Έχει τρία καλώδια συνδεσμολογίας, με χρωματισμούς συνήθως καφέ, κόκκινο,πορτοκαλί, ή μαύρο κόκκινο άσπρο. Το καφέ ή το μαύρο είναι η γείωση ή το -, το κόκκινο είναι το + και το πορτοκαλί ή το άσπρο είναι η τάση PWM που δέχεται. Πέτρος Πούτος ΠΕ & ΠΕ ο ΕΠΑ.Λ Σαλαμίνας petpoutos@gmail.com

33 Στα κυκλωματικά διαγράμματα φαίνεται η λειτουργία του servo driver σε συνδυασμό με το ποτενσιόμετρο του άξονα. Το servo driver αποτελείται από δύο συγκριτές τάσης, ένα μη αναστρέφοντα και ένα αναστρέφοντα, οι έξοδοι των οποίων είναι συνδεδεμένοι με τις πύλες των FET της Η γέφυρας. Στην αναστρέφουσα είσοδο του ενός και στην μη αναστρέφουσα του άλλου συγκριτή εφαρμόζεται η τάση PWM που στην ουσία είναι η μέση τιμή τάσης (DC) της παλμοσειράς PWM. Το μεσαίο ποδαράκι του ποτενσιόμετρου είναι συνδεδεμένο στις αντίστοιχες άλλες δύο εισόδους των συγκριτών. Τα δύο ακριανά ποδαράκια του ποτενσιόμετρου είναι συνδεδεμένα στην πηγή τροφοδοσίας του servo. Συνεχώς επιτελείται σύγκριση μεταξύ της PWM που στέλνουμε από το Arduino, και της τάσης από το ποτενσιόμετρο που όπως φαίνεται στα σχήματα, ορίζει τη θέση του άξονα του servo. Η περίοδος της PWM στην βιβλιοθήκη (Servo.h ) είναι 20ms, αν δεν φτάνει παλμός κάθε 20ms τότε το servo παύει να λειτουργεί και είναι «έρμαιο» στο μηχανικό φορτίο του. για τις αρχές λειτουργίας ενός servo ίσως το πιο εκπαιδευτικό video Πέτρος Πούτος ΠΕ & ΠΕ ο ΕΠΑ.Λ Σαλαμίνας petpoutos@gmail.com

34 Β. Βασικές τεχνικές ασύγχρονης σειριακής επικοινωνίας μεταξύ Arduino Uno και Η/Υ μέσα από το λογισμικό LabView Τα pins 2 (Rx) και 3 (Tx) είναι τα default pins, που επικοινωνεί σειριακά το Arduino Uno, με οποιαδήποτε συσκευή εξωτερικά, σύμφωνα με το σειριακό πρότυπο διασύνδεσης RS-232C κάνοντας χρήση και ενός pin γείωσης, όπως φαίνεται και στο παρακάτω κυκλωματικό διάγραμμα. Με προδιαγραφές : ( 8bits data, 1stop bit, parity None, baud rate από 300 μέχρι ). Τα data είναι σε ASCII κώδικα. ASCII table Πέτρος Πούτος ΠΕ & ΠΕ ο ΕΠΑ.Λ Σαλαμίνας petpoutos@gmail.com

35 Το ζητούμενο σε αυτό το project είναι: Από δύο εικονικά ποτενσιόμετρα μέσα από το περιβάλλον του LabView να ελέγχουμε (κινούμε ) δύο servo motors με ακρίβεια 1. Το interface είναι ο μ/ε atmega 328p, που προγραμματίζεται με τη πλατφόρμα Arduino. Στη συγκεκριμένη εφαρμογή πρέπει να στέλνουμε από την σειριακή θύρα ενός H/Y, προς τη σειριακή θύρα του Arduino Uno, αριθμητικές ποσότητες που ουσιαστικά αντιπροσωπεύουν την γωνία περιστροφής του άξονα του servomotor. Από την σειριακή θύρα όμως του Η/Υ, στέλνονται ASCII χαρακτήρες χωρίς φυσικά αριθμητικό βάρος, και έτσι τις λαμβάνουμε και από τη σειριακή θύρα του Arduino Uno. Το πρόβλημα συνεπώς, είναι να μετατρέψουμε τους χαρακτήρες αυτούς σε αριθμητικές ποσότητες, και συγκεκριμένα σε αριθμητικό δεκαδικό ακέραιο. Το παράδειγμα που ακολουθεί είναι αντιπροσωπευτικό για την διαδικασία που χρησιμοποιείται για την σειριακή επικοινωνία μεταξύ Η/Υ ( π.χ μέσω του λογισμικού LabView) και του Arduino Uno. Έστω ότι από το «κουμπί» του ποτενσιόμετρου rotation στο frond panel του LabView στέλνουμε την τιμή 132 που αντιπροσωπεύει τις μοίρες που θέλουμε να στρέψουμε τον άξονα του servo. Ο αριθμός αυτός, σε ASCII κώδικα θα «φύγει» από τη σειριακή θύρα σαν 1 (49 dec), 3 (51 dec) και 2 (50 dec) σύμφωνα με τον πίνακα συμβόλων ASCII, τα οποία δεν είναι οι αριθμητικές ποσότητες που θέλουμε. Στην ανάγνωση ( Serial.Read) της σειριακής θύρας του Arduino, από κάθε δεκαδικό αριθμό που αντιπροσωπεύει το 1, 3, 2, αφαιρούμε το 0 (48 dec). Έτσι έχουμε =1, =3 και =2. Συνεπώς έχουμε τα δεκαδικά ψηφία που σχηματίζουν τον επιθυμητό αριθμό 132, αλλά χωρίς βάρη. Έτσι πολλαπλασιάζουμε με τα ανάλογα δεκαδικά βάρη κάθε δεκαδικό ψηφίο, 1Χ 100 = 100, 3Χ10= 30, 2Χ1=2, και τέλος αθροίζουμε =132 κι έτσι έχουμε την δεκαδική ποσότητα 132. Αυτή τη ποσότητα (ακέραια μεταβλητή: int rotation) την γράφουμε στο pin του Arduino που οδηγεί το servo. (π.χ myservo1.write(rotation). Οι δεκαδικές ποσότητες που γράφουμε στα pin του Arduino που οδηγούν τα servo, αντιπροσωπεύουν μοίρες στροφής του άξονα. Στην πραγματικότητα, στην βιβλιοθήκη που χρησιμοποιούμε ( Servo.h ), και μάλιστα με την εντολή attach.( ) έχει γίνει αντιστοίχιση (mapping) των μοιρών με την διάρκεια σε μs του ενεργού παλμού στην PWM κυματομορφή, που βγάζει το αντίστοιχο pin. Συγκεκριμένα στην default κατάσταση της attach.( ) έχουμε για 0 544μs και για 180 ή όπου αλλού τερματίζει το servo 2400μs, είναι φανερό ότι στα 928μs ο άξονας του servo θα βρίσκεται στο μέσον της διαδρομής του.( π.χ 90 ) Πέτρος Πούτος ΠΕ & ΠΕ ο ΕΠΑ.Λ Σαλαμίνας petpoutos@gmail.com

36 Οι χρόνοι των ενεργών παλμών της PWM μπορούν να αλλάξουν, αν τα χαρακτηριστικά του servo μας απαιτούν διαφορετικούς χρόνους παλμών. attach.(pin, min, max ). Βλέπε Reference Libraries Servo To Arduino Uno στην σειριακή του θύρα, λαμβάνει ή στέλνει ψηφιακά σήματα επιπέδου TTL, μέσα από το UART, ( +5 volt, 0 ) ενώ ο Η/Υ σήματα ± 12 volt ως προς τη γη ( πρότυπο σειριακής διασύνδεσης RS-232C). Για το λόγο αυτό συνδέεται στα pins Rx,Tx ένας μετατροπέας TTL σε RS-232C, το γνωστό σε όλους IC: MAX 232, που φαίνεται στο παρακάτω κυκλωματικό διάγραμμα. Πέτρος Πούτος ΠΕ & ΠΕ ο ΕΠΑ.Λ Σαλαμίνας petpoutos@gmail.com

37 Καλωδίωση στο Bread board ( κύκλωμα χωρίς τη χρήση της πλακέτας Arduino Uno) LM 78T05 3A Con D9 Male Συρμάτωση στο bread board ενός Atmega 328p με το MAX 232, για ασύγχρονη σειριακή επικοινωνία με Η/Υ. Αν χρησιμοποιηθεί αυτό το κύκλωμα τότε εννοείται ότι o μ/ε atmega 328p θα προγραμματίζεται στην πλακέτα του Arduino_Uno και θα επανατοποθετείται πάλι στο breadboard. Συνιστάται η χρήση βάσεων ZIF 28p, και στο breadboard αλλά και στην πλακέτα Arduino UNO για να γίνεται γρήγορα η αντικατάσταση, και να μην κινδυνέψουμε την καταστροφή στα ποδαράκια του IC από τις πολλές δοκιμές. Πέτρος Πούτος ΠΕ & ΠΕ ο ΕΠΑ.Λ Σαλαμίνας petpoutos@gmail.com

38 Αν κάνουμε χρήση της πλακέτας Arduino UNO η συρμάτωση φαίνεται παρακάτω. LM7805 Σε ΤΟ 220 με ψήκτρα χρησιμοποιείται για την τροφοδοσία των servo,γιατί το V-reg του Arduino μπορεί να δώσει μέχρι 700mA στα 5V. 10μF/25V Σημαντικό: Όταν προγραμματίζουμε το Arduino με την USB από το PC τότε θα πρέπει να βγάλουμε τα καλώδια Rx,(pin 0) και Tx (pin 1) από το bread board, γιατί θα μας δίνει σφάλμα στη φόρτωση του κώδικα. Πέτρος Πούτος ΠΕ & ΠΕ ο ΕΠΑ.Λ Σαλαμίνας petpoutos@gmail.com

39 Λίστα Εξαρτημάτων Εξάρτημα Ποσότητα. Πλακέτα Arduino Uno 1 Bread board 1 Μπαταρία 9 Volt 1 Μπαταρία 12 volt 2 Ah ή τροφοδοτικό DC 1 Analog Servo motors standard 4,8 6 volt Από 2 έως 6 Βύσμα power male 1 D9 connector 1 Ψήκτρα για ΤΟ Καλώδια συρμάτωσης Αρκετά διαφόρων χρωμάτων Ηλεκτρολυτικός πυκνωτής 10μF/25V 1 Ηλεκτρολυτικός πυκνωτής 1,5μF/25V 5 Πυκνωτής ΜΚΤ 100nF 1 Αντίσταση 330Ω --1/4W 1 Led 3mm 1 IC LM IC Max Καλώδιο σειριακής επικοινωνίας female female ή καλώδιο μετατροπής USB σε σειριακό 1 Καλώδιο USB για προγραμματισμό Arduino Uno 1 Λογισμικό για το Arduino έκδοση και άνω 1 Λογισμικό LabView έκδοση Σύνδεση Servo Σειριακή επικοινωνία Πέτρος Πούτος ΠΕ & ΠΕ ο ΕΠΑ.Λ Σαλαμίνας petpoutos@gmail.com

40 Δομή του προγράμματος στο περιβάλλον LabView Γωνίες περιστροφής σε μοίρες. Ποτενσιόμετρο για το Servo της αρπάγης Ορισμός COM X Ποτενσιόμετρο για το Servo περιστροφής Frond panel LabView Πέτρος Πούτος ΠΕ & ΠΕ ο ΕΠΑ.Λ Σαλαμίνας petpoutos@gmail.com

41 Ο γραφικός κώδικας στο Block diagram Πέτρος Πούτος ΠΕ & ΠΕ ο ΕΠΑ.Λ Σαλαμίνας petpoutos@gmail.com

42 Πέτρος Πούτος ΠΕ & ΠΕ ο ΕΠΑ.Λ Σαλαμίνας petpoutos@gmail.com

43 Πέτρος Πούτος ΠΕ & ΠΕ ο ΕΠΑ.Λ Σαλαμίνας petpoutos@gmail.com

44 Σημαντικό: Από τη σειριακή θύρα «φεύγουν» οι χαρακτήρες ASCII κατά σειρά: 1 ος εκατοντάδες του rotation, 2 ος δεκάδες του rotation, 3 ος μονάδες του rotation, 4 ος εκατοντάδες του gripper, 5 ος δεκάδες του gripper, 6 ος μονάδες του gripper, 7 ος χαρακτήρας a. Πέτρος Πούτος ΠΕ & ΠΕ ο ΕΠΑ.Λ Σαλαμίνας petpoutos@gmail.com

45 Πέτρος Πούτος ΠΕ & ΠΕ ο ΕΠΑ.Λ Σαλαμίνας petpoutos@gmail.com

46 Κώδικας στο Arduino με αναλυτικά σχόλια. #include <Servo.h> // εισαγωγή standard βιβλιοθήκης Servo για έλεγχο σερβοκινητήρων //Define variables ορισμός μεταβλητών που θα χρησιμοποιηθούν στο πρόγραμμα. // output servo pins // ορίζουμε τα ποδαράκια στην πλακέτα του Arduino Uno που θα // συνδέσουμε το καλώδιο του servo που θα δεχτεί την PWM τάση. (πορτοκαλί ή άσπρο). const int servo1 = 9; // εδώ συνδέουμε τα καλώδια των servomotors στα ποδαράκια 9 και 10 const int servo2 = 10; //create servo object to control a servo // ορίζουμε δύο «αντικείμενα» myservo1 και myservo2 με το χαρακτηριστικό Servo κατά απαίτηση της βιβλιοθήκης Servo.h (είναι σαν μεταβλητές με ειδικό προσδιορισμό ) Servo myservo1; Servo myservo2; int rotation = 0; // ορισμός και αρχικοποίηση της ακεραίας μεταβλητής rotation που //αντιπροσωπεύει τις μοίρες περιστροφής του άξονα του πρώτου servo int rot_h = 0; // ορισμός και αρχικοποίηση της ακεραίας μεταβλητής rot_h // ( από το rotation _hundreds ) που αντιπροσωπεύει τις εκατοντάδες int rot_d = 0; // το ίδιο για τις δεκάδες int rot_u = 0; // το ίδιο για τις μονάδες int gripper =0; // ακριβώς τα ίδια με παραπάνω για το δεύτερο servo. int grip_h =0; int grip_d =0; int grip_u =0; int rotation_read = 0; // ορισμός και αρχικοποίηση των μεταβλητών που θα χρησιμοποιηθούν // για ανάγνωση της γωνίας περιστροφής του άξονα του servo και θα σταλούν στο LabView int gripper_read = 0; char incomingchar; // ορισμός της μεταβλητής incomingchar με χαρακτηρισμό char // (χαρακτήρας) θα χρησιμοποιηθεί για τον «αναγνωριστικό» a // που στέλνεται από το LabView void setup() { // αυτός ο βρόχος void setup() {.. εκτελείται μία φορά και // συνήθως χρησιμοποιείται για αρχικοποιήσεις. // Servo myservo1.attach(servo1); // εντολή της βιβλιοθήκης Servo.h η οποία αντιστοιχεί τις // «οντότητες» myservo στα αντίστοιχα pins του Arduino myservo2.attach(servo2); //initialize Serial Serial.begin(9600); // αρχικοποίηση της σειριακής θύρας με «ρυθμό» 9600 bps delay(500); // καθυστέρηση 500msec για να σταθεροποιηθεί η αρχικοποίηση της σειριακής // κλείσιμο του βρόχου void setup() Πέτρος Πούτος ΠΕ & ΠΕ ο ΕΠΑ.Λ Σαλαμίνας petpoutos@gmail.com

47 // Ο παρακάτω βρόχος Void loop() { εκτελείται συνεχώς void loop() { while(serial.available()>7){ // βρόχος while () υπό συνθήκη,αν στον buffer εισόδου // της σειριακής έχουν φθάσει περισσότερα από 7 bytes //τότε εκτελείται. Τα 7 bytes είναι: τρία από τις //εκατοντάδες,δεκάδες, μονάδες του rotation, τρία από τα //αντίστοιχα του gripper και ο αναγνωριστικός χαρακτήρας a incomingchar = Serial.read(); // διαβάζουμε την σειριακή θύρα ( «ψάχνουμε» τον a ) if (incomingchar == 'a'){ // βρόχος if : αν έχει έρθει ο a τότε εκτελείται. rot_h = Serial.read()-'0'; // διαβάζουμε από τη σειριακή θύρα με τη σειρά τους // χαρακτήρες ASCII που έρχονται από το LabView //και ταυτόχρονα αφαιρούμε το 0 για να κάνουμε // τους χαρακτήρες αριθμητικές ποσότητες. rot_d = Serial.read()-'0'; rot_u = Serial.read()-'0'; grip_h = Serial.read()-'0'; grip_d = Serial.read()-'0'; grip_u = Serial.read()-'0'; rotation = (rot_h*100)+(rot_d*10)+(rot_u*1); // εδώ δίνουμε στους αντίστοιχους αριθμούς // δεκαδικά βάρη ώστε να αντιπροσωπεύουν // τις μοίρες περιστροφής του άξονα του servo rotation = constrain(rotation, 2, 175); gripper = (grip_h*100)+(grip_d*10)+(grip_u*1); gripper = constrain(gripper, 2, 178); // περιορισμός της τιμής rotation μεταξύ // (2,175 ) για προστασία των γραναζιών //του servo myservo1.write(rotation); myservo2.write(gripper); // εδώ γράφουμε την τιμή των μοιρών περιστροφής, στην // αντίστοιχη «οντότητα» για να παραχθεί από τη βιβλιοθήκη // Servo.h η κατάλληλη PWM που θα περιστρέψει τα servo rotation_read = myservo1.read(); // ανάγνωση του αριθμού των μοιρών περιστροφής του // κάθε σερβοκινητήρα. gripper_read = myservo2.read(); Serial.print(rotation_read); // εγγραφή της παραπάνω τιμής στην σειριακή θύρα, // (εννοείται σε χαρακτήρες ASCII) για να σταλεί στο LabView Serial.print(" "); // αναγνωριστικό διαχωρισμού μεταξύ των δύο τιμών(τρία space) Serial.print(gripper_read); Serial.flush(); // καθαρισμός του buffer της σειριακής. // κλείσιμο του βρόχου if () // κλείσιμο του βρόχου While () // κλείσιμο του βρόχου void loop() Πέτρος Πούτος ΠΕ & ΠΕ ο ΕΠΑ.Λ Σαλαμίνας petpoutos@gmail.com

48 Κώδικας στο Arduino χωρίς σχόλια. #include <Servo.h> //Define variables // output servo pins const int servo1 = 9; const int servo2 = 10; //create servo object to control a servo Servo myservo1; Servo myservo2; int rotation = 0; int rot_h = 0; int rot_d = 0; int rot_u = 0; int gripper =0; int grip_h =0; int grip_d =0; int grip_u =0; int rotation_read = 0; int gripper_read = 0; char incomingchar; void setup() // Servo myservo1.attach(servo1); myservo2.attach(servo2); //initialize Serial Serial.begin(9600); delay(500); void loop() { while(serial.available()>7){ incomingchar = Serial.read(); if (incomingchar == 'a'){ rot_h = Serial.read()-'0'; rot_d = Serial.read()-'0'; rot_u = Serial.read()-'0'; grip_h = Serial.read()-'0'; grip_d = Serial.read()-'0'; grip_u = Serial.read()-'0'; Πέτρος Πούτος ΠΕ & ΠΕ ο ΕΠΑ.Λ Σαλαμίνας petpoutos@gmail.com

49 rotation = (rot_h*100)+(rot_d*10)+(rot_u*1); rotation = constrain(rotation, 2, 175); gripper = (grip_h*100)+(grip_d*10)+(grip_u*1); gripper = constrain(gripper, 2, 178); myservo1.write(rotation); myservo2.write(gripper); rotation_read = myservo1.read(); gripper_read = myservo2.read(); Serial.print(rotation_read); Serial.print(" "); Serial.print(gripper_read); Serial.flush(); let's try it it's exciting Πέτρος Πούτος ΠΕ & ΠΕ ο ΕΠΑ.Λ Σαλαμίνας petpoutos@gmail.com

50 6 η Εφαρμογή: Έλεγχος LED Matrix με Arduino Χρήση του αναπτυξιακού συστήματος Arduino Uno για τον έλεγχο ενός LED Matrix 6X6 Π. Μπαλούρδος Υλικά Τα υλικά που χρειάστηκαν για αυτή την εφαρμογή, είναι: - Ένα Arduino Uno - 36 LED - 12 Αντιστάσεις - 6 Τρανζίστορ - USB καλώδιο LED Matrix Ένα LED Matrix αποτελείται από μεγάλο αριθμό LED και επομένως δεν είναι εφικτή η ανεξάρτητη σύνδεση κάθε LED με το κύκλωμα ελέγχου. Για να μειώσουμε τις συνδέσεις ενός LED Matrix με το κύκλωμα ελέγχου, χρησιμοποιούμε μια μέθοδο πολυπλεξίας η οποία στηρίζεται στo ότι η εικόνα παραμένει στο αισθητήριο της όρασης μετά τον εξωτερικό ερεθισμό (Μετείκασμα Persistence of Vision). Τα LED του LED Matrix συνδέονται όπως στο Σχήμα 1. Σχήμα 1 Οι κάθοδοι των LED συνδέονται μεταξύ τους ανά γραμμή, ενώ οι άνοδοι των LED συνδέονται μεταξύ τους ανά στήλη. Η μέθοδος βασίζεται στο ότι κάθε δεδομένη χρονική στιγμή μόνο μια γραμμή του Matrix είναι αναμμένη. Οι γραμμές ανάβουν διαδοχικά αρκετά γρήγορα, ώστε το μάτι μας έχει την αίσθηση ότι τα LED είναι σταθερά αναμένα. Συνεπώς για τον έλεγχο του Matrix του σχήματος 1 χρειαζόμαστε 6 καλώδια για τον έλεγχο των γραμμών και 6 καλώδια για τον έλεγχο των στηλών, ώστε για κάθε γραμμή να μπορούμε να επιλέξουμε ποια LED πρέπει να είναι αναμμένα. Συνδεσμολογία με το Arduino Οι στήλες του Matrix (άνοδοι) συνδέονται στις ψηφιακές θύρες 8 έως 13 του Arduino, μέσω αντιστάσεων, ενώ οι γραμμές του Matrix (κάθοδοι) συνδέονται στις

51 ψηφιακές θύρες 0 έως 5, μέσω απλών ηλεκτρονικών διακοπτών με τρανζίστορ (Σχήμα 2). Πρόγραμμα Σχήμα 2 // Το πρόγραμμα αυτό ελέγχει ένα LED Matrix 6X6 με τη μέθοδο της πολυπλεξίας. // Ορισμός θυρών: 0-5 είναι οι γραμμές του matrix (από πάνω προς τα κάτω) // και 8-13 είναι οι στήλες (από αριστερά προς τα δεξιά). #define row1 0 #define row2 1 #define row3 2 #define row4 3 #define row5 4 #define row6 5 #define col1 8 #define col2 9 #define col3 10 #define col4 11 #define col5 12 #define col6 13 int row_num = 0; // Η γραμμή του matrix η οποία είναι αναμμένη κάθε φορά (μέθοδος πολυπλεξίας) boolean matrix[6][6]; // Κάθε στοιχείου του πίνακα matrix αντιπροσωπεύει ένα LED (0-σβηστό, 1-αναμμένο) // Ορισμός της απεικόνισης των αριθμητικών ψηφίων 0-9 byte dig[][6] = {{28,34,34,34,34,28, {8,8,8,8,8,8, {28,34,16,8,4,62, {28,34,32,24,34,28, {24,20,18,62,16,16, {62,2,2,30,32,30,

52 {28,2,2,30,34,28, {62,32,32,16,8,8, {28,34,34,28,34,28, {28,34,34,60,32,28 ; // Ορισμός της απεικόνισης του αναμμένου και του σβηστού LED Matrix byte setmat[6] = {63,63,63,63,63,63; byte clearmat[6] = {0,0,0,0,0,0; void setup() { // Ορισμός των θυρών 0-5 και 8-13 σαν εξόδους pinmode(row1, OUTPUT); pinmode(row2, OUTPUT); pinmode(row3, OUTPUT); pinmode(row4, OUTPUT); pinmode(row5, OUTPUT); pinmode(row6, OUTPUT); pinmode(col1, OUTPUT); pinmode(col2, OUTPUT); pinmode(col3, OUTPUT); pinmode(col4, OUTPUT); pinmode(col5, OUTPUT); pinmode(col6, OUTPUT); // Καθορισμός των παραμέτρων της διακοπής χρονισμού - Timer Interrupt // Χρησιμοποιείται ο Timer1 για τη διακοπή ανά τακτά χρονικά διαστήματα cli(); // Απενεργοποίηση των διακοπών TCCR1A = 0; // Μηδενισμός όλων των flag στον καταχωρητή TCCR1A TCCR1B = 0; // Μηδενισμός όλων των flag στον καταχωρητή TCCR1B TCNT1 = 0; // Αρχική τιμή του Timer1 OCR1A = 10000; // Τιμή προς σύγκριση με την τιμή του Timer1 TCCR1B = (1 << WGM12); // Χρήση του Timer1 TCCR1B = (1 << CS10); // Όχι prescaler (16 MHz) TIMSK1 = (1 << OCIE1A); // Λειτουργία σύγκρισης sei(); // Ενεργοποίηση των διακοπών void loop() { int i; // Αναβόσβησε το Matrix 2 φορές for (i=0; i<2; i++) { setmatrix(setmat); delay(500); setmatrix(clearmat); delay(500); // Απεικόνισε τα ψηφία 0-9 for (i=0; i<10; i++) { setmatrix(dig[i]); delay(1000); // Σβήσε το Matrix setmatrix(clearmat);

53 delay(1000); // Ρουτίνα εξυπηρέτησης της διακοπής // Ενεργοποιεί τις γραμμές με τη σειρά και καθορίζει ποιες στήλες θα πρέπει να είναι αναμμένες ISR(TIMER1_COMPA_vect){ int i; digitalwrite(row_num, LOW); row_num++; if (row_num > 5) row_num = 0; for (i=0; i<6; i++) digitalwrite(i+8, matrix[row_num][i]); digitalwrite(row_num, HIGH); // Ρουτίνα αλλαγής της απεικόνισης του LED Matrix void setmatrix(byte mval[6]) { int i,j; byte mask; for(i=0; i<6; i++) { mask = B1; for (j=0; j<6; j++) { matrix[i][j] = mask & mval[i]; mask *= 2; Σχόλια - Ανάλυση του κώδικα Οι θύρες 0 έως 5 και 8 έως 13 δηλώνονται ως θύρες εξόδου. Ο πίνακας Boolean matrix[6][6] αντιπροσωπεύει κάθε ένα LED με μια Boolean τιμή. Εάν κάποιο στοιχείο αυτού του πίνακα έχει την τιμή 1, τότε το αντίστοιχο LED είναι αναμμένο. Το αντίθετο ισχύει για την τιμή 0. Ο πίνακας dig περιγράφει ανά γραμμή το πώς θα απεικονιστούν τα ψηφία 0 έως 9 (βλέπε επόμενη ενότητα). Οι πίνακες setmat και clearmat ορίζουν, ανά γραμμή, το πλήρες αναμμένο και σβηστό LED Matrix αντίστοιχα. Το πρόγραμμα χρησιμοποιεί τον Timer 1 για να δημιουργεί διακοπές ανά τακτά χρονικά διαστήματα, ώστε να ανάβει η επόμενη γραμμή. Η ρουτίνα που επυπηρετεί τη διακοπή είναι η ISR(TIMER1_COMPA_vect). H ISR εκτός του να σβήνει την γραμμή που είναι αναμμένη για να ανάψει την επόμενη, καθορίζει και τα LED που θα πρέπει να είναι αναμμένα κάθε φορά σε κάθε γραμμή. Η ρουτίνα setmatrix αλλάζει τα δεδομένα του πίνακα matrix ανάλογα με το όρισμα που της δίνουμε (Πίνακας με 6 στοιχεία. Κάθε στοιχείο καθορίζει τις τιμές κάθε γραμμής του matrix πίνακα). Απεικόνιση στο LED Matrix Το Matrix μπορεί να απεικονίσει οτιδήποτε με μέγεθος 6X6. Στη συγκεκριμένη παρουσίαση είναι προγραμματισμένο να αναβοσβήνει 2 φορές και να απεικονίζει τα αριθμητικά ψηφία 0 έως 9 ανά 1 δευτερόλεπτο.

54 Για κάθε απεικόνιση χρησιμοποιείται ένας πίνακας με 6 στοιχεία. Κάθε στοιχείο αντιπροσωπεύει και μια γραμμή του Matrix κωδικοποιημένη έτσι ώστε κάθε LED της γραμμής να αντιπροσωπεύει ένα δυαδικό ψηφίο. Επομένως κάθε γραμμή αντιστοιχεί σε έναν αριθμό 6 bit. Μια πλήρως αναμμένη γραμμή θα έχει την τιμή 63 (πίνακας setmat), ενώ μια πλήρως σβηστή θα έχει την τιμή 0 (πίνακας clearmat). Ο υπολογισμός της απεικόνισης των αριθμητικών ψηφίων 0 έως 9 (πίνακας dig) δίνεται στο παρακάτω σχήμα. Ψηφίο Κωδικοποίηση

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

για τις ρυθμίσεις LabView μέσα από το κανάλι   και του καλωδίου USB. 1o ΕΠΑΛ- Ε.Κ. Συκεών -Τομέας: Ηλεκτρονικής, Ηλεκτρολογίας και Αυτοματισμού Εκπαιδευτικοί: Μπουλταδάκης Στέλιος Μαυρίδης Κώστας Δραστηριότητα: 11 Μάθημα: Εργαστήριο Δικτύων Υπολογιστών Αντικείμενο : Μέτρηση

Διαβάστε περισσότερα

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

Ενσωματωμένα Συστήματα Ενσωματωμένα Συστήματα για εφαρμογές πραγματικού χρόνου Εφαρμογές με τον Arduino Ιωάννης Καλόμοιρος Αναπληρωτής Καθηγητής Τμήμα Μηχανικών Πληροφορικής Μάθημα 10 1 Συναρτήσεις αναλογικής εξόδου: PWM Το

Διαβάστε περισσότερα

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

ΑΣΚΗΣΗ 1 (22 Νοεμβρίου 2017) ΑΣΚΗΣΗ 1 (22 Νοεμβρίου 2017) Περιγραφή της Άσκησης Ο σκοπός της πρώτης άσκησης είναι κυρίως η εξοικείωση με το περιβάλλον προγραμματισμού του Arduino, γι αυτό και δεν είναι ιδιαίτερα σύνθετη. Αρχικά, θα

Διαβάστε περισσότερα

Arduino Teachers Workshop

Arduino Teachers Workshop Arduino Teachers Workshop Εισαγωγή στο Arduino Προγραμματισμός στο Arduino IDE Επικοινωνία με τον υπολογιστή μέσω USB Πλακέτα εύκολων συνδέσεων Breadboard Projects Led Blink Αναλογική ανάγνωση Ποτενσιόμετρου

Διαβάστε περισσότερα

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

Προγραμματισμο ς σε Arduino Προγραμματισμο ς σε Arduino Arduino UNO & Innoesys Educational Shield www.devobox.com Ηλεκτρονικά Εξαρτήματα & Υλικά Κατασκευής Πρωτοτύπων Λέανδρου 79, 10443, Κολωνός +30 210 51 55 513, info@devobox.com

Διαβάστε περισσότερα

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

Εφαρμογές Αναλογικών Ε/Ε PWM (pulse Width Modulation) Εφαρμογές Αναλογικών Ε/Ε PWM (pulse Width Modulation) Εισαγωγή Σε αυτή την ενότητα θα δούμε εφαρμογές που χρησιμοποιούν τις αναλογικές Εισόδους/Εξόδους του Arduino ή την τεχνική PWM. Ψηφιακό vs Αναλογικό

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

Ψηφιακά Αντικείμενα Μάθημα 1 Δραστηριότητα 1. Προγραμματισμός Φυσικών Συστημάτων. Νέα Ψηφιακά Αντικείμενα Σκοπός Ψηφιακά Αντικείμενα Μάθημα 1 Δραστηριότητα 1 ΜΕΤΡΩΝΤΑΣ ΑΠΟΣΤΑΣΗ ΜΕ ΤΟΝ ΑΙΣΘΗΤΗΡΑ ΥΠΕΡΗΧΩΝ (SR04). Ψηφιακά Αντικείμενα Μικροελεγκτής Προγραμματισμός Φυσικών Συστημάτων Νέα Ψηφιακά Αντικείμενα Αισθητήρες

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

Εφαρμογές αναλογικών / Ψηφιακών Εφαρμογές αναλογικών / Ψηφιακών 1 ΕΙΣΑΓΩΓΗ Σε αυτήν την ενότητα θα δούμε μερικές ακόμα εφαρμογές ψηφιακών / αναλογικών εισόδων/ εξόδων που μπορούμε να φτιάξουμε με την βοήθεια του Arduino, χρησιμοποιώντας

Διαβάστε περισσότερα

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

ΕΡΓΑΣΤΗΡΙΟ 4 ΕΙΣΑΓΩΓΗ ΣΤΟN ARDUINO: ΨΗΦΙΑΚΗ ΕΙΣΟΔΟΣ/ΕΞΟΔΟΣ ΕΡΓΑΣΤΗΡΙΟ 4 ΕΙΣΑΓΩΓΗ ΣΤΟN ARDUINO: ΨΗΦΙΑΚΗ ΕΙΣΟΔΟΣ/ΕΞΟΔΟΣ Σκοπός της άσκησης Οι φοιτητές θα εξοικειωθούν με την πλακέτα του μικροελεγκτή και θα αναγνωρίσουν τα βασικά της στοιχεία. Επίσης θα εξοικειωθούν

Διαβάστε περισσότερα

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

Το κύκλωμα σε breadboard Φύλλο εργασίας 8 - Ανιχνευτής απόστασης Σε αυτήν τη δραστηριότητα θα κατασκευάσουμε έναν ανιχνευτή απόστασης. Θα χρησιμοποιήσουμε τον αισθητήρα υπερήχων (ή απόστασης) HC-SR04 για τον υπολογισμό της απόστασης.

Διαβάστε περισσότερα

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

ΕΡΓΑΣΤΗΡΙΟ 6 ΟΔΗΓΗΣΗ ΑΠΕΙΚΟΝΙΣΕΩΝ SSD ΚΑΙ LCD ΕΡΓΑΣΤΗΡΙΟ 6 ΟΔΗΓΗΣΗ ΑΠΕΙΚΟΝΙΣΕΩΝ SSD ΚΑΙ LCD Σκοπός του εργαστηρίου: Οι φοιτητές εξοικειώνονται με βασικές απεικονίσεις αριθμητικών ψηφίων και χαρακτήρων, καθώς και με τη βασική οδήγηση τέτοιων απεικονίσεων,

Διαβάστε περισσότερα

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

Φύλλο εργασίας 6 - Θερμόμετρο εξωτερικού χώρου. Το κύκλωμα σε breadboard Φύλλο εργασίας 6 - Θερμόμετρο εξωτερικού χώρου Σε αυτήν την δραστηριότητα θα κατασκευάσουμε ένα θερμόμετρο εξωτερικού χώρου. Θα χρησιμοποιήσουμε τον αισθητήρα θερμοκρασίας LM35 και για την ένδειξη της

Διαβάστε περισσότερα

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

Ενσωματωμένα Συστήματα Ενσωματωμένα Συστήματα Ενότητα: ΕΡΓΑΣΤΗΡΙΑΚΗ ΑΣΚΗΣΗ ARDUINO Δρ. Μηνάς Δασυγένης mdasyg@ieee.org Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών Εργαστήριο Ψηφιακών Συστημάτων και Αρχιτεκτονικής Υπολογιστών

Διαβάστε περισσότερα

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

Έλεγχος με Μικροϋπολογιστές Εργαστήριο ενσωματωμένων συστημάτων Εργαστήριο ενσωματωμένων συστημάτων Παρουσίαση 2: Βασικός Προγραμματισμός Arduino (AVR) Εργαστήριο Αυτομάτου Ελέγχου Η πλατφόρμα Arduino UNO Microcontroller: ATmega328 Operating Voltage: 5V Digital I/O

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

1o ΕΠΑΛ- Ε.Κ. Συκεών -Τομέας: Ηλεκτρονικής, Ηλεκτρολογίας και Αυτοματισμού Εκπαιδευτικοί: Μπουλταδάκης Στέλιος Μαυρίδης Κώστας

1o ΕΠΑΛ- Ε.Κ. Συκεών -Τομέας: Ηλεκτρονικής, Ηλεκτρολογίας και Αυτοματισμού Εκπαιδευτικοί: Μπουλταδάκης Στέλιος Μαυρίδης Κώστας 1o ΕΠΑΛ- Ε.Κ. Συκεών -Τομέας: Ηλεκτρονικής, Ηλεκτρολογίας και Αυτοματισμού Εκπαιδευτικοί: Μπουλταδάκης Στέλιος Μαυρίδης Κώστας Μάθημα: Ρομποτική Αντικείμενο : Μεταφορά δεδομένων μέσω του πρωτοκόλλου RS232

Διαβάστε περισσότερα

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

Μέτρηση Θερμοκρασίας με τον αισθητήρα TMP36. Σύστημα Συλλογής & Επεξεργασίας Μετρήσεων. Βασική δομή ενός προγράμματος στο LabVIEW. Σκοπός Μάθημα 2 Δραστηριότητα 1 Μέτρηση Θερμοκρασίας με τον αισθητήρα TMP36. Σύστημα Συλλογής & Επεξεργασίας Μετρήσεων Βασική δομή ενός προγράμματος στο LabVIEW. Εμπρόσθιο Πλαίσιο (front panel). Σχεδίαση

Διαβάστε περισσότερα

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

2017 Κατασκευάζω και Προγραμματίζω με τον μικροελεγκτή Arduino 2017 Κατασκευάζω και Προγραμματίζω με τον μικροελεγκτή Arduino Αριστείδης Παλιούρας e-mail: arispaliouras@gmail.com ISBN: 978-960-93-8945-7 Κατασκευάζω και Προγραμματίζω με τον μικροελεγκτή Arduino Copyright

Διαβάστε περισσότερα

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

Κωνσταντίνος Γκαλονάκης. Arduino: Προγραμματισμός στην πράξη Κωνσταντίνος Γκαλονάκης Arduino: Προγραμματισμός στην πράξη 1 Σύνδεση του Arduino με τον Η/Υ και προγραμματισμός αυτού. 1. Εγκατάσταση περιβάλλοντος Arduino IDE Για να προγραμματίσετε τη μονάδα σας θα

Διαβάστε περισσότερα

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

Πλακέτα Arduino. 1ο ΕΠΑΛ Περάματος - 7ο ΕΚ Πειραιά Πλακέτα Arduino Το 2005 oι Massimo Banzi και David Cueartielles στο Ivrea Δημιουργούν την υπολογιστική πλατφόρμα Arduino. Το Arduino είναι βασισμένο σε μια απλή μητρική πλακέτα ανοικτού κώδικα, με ενσωματωμένο

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

Συλλογή & Επεξεργασία Δεδομένων Εργαστήριο 2 USB και Σειριακή Επικοι- νωνία Σ Σειριακή Επικοινωνία Συλλογή & Επεξεργασία Δεδομένων Εργαστήριο 2 USB και Σειριακή Επικοινωνία. Σειριακή Επικοινωνία USB Σύνδεση / Πρωτόκολλο Σκοπός Εντολή επιλογής (if) Εντολή Επανάληψης (while) Πίνακες 1 Μέρος Α : Σκοπός

Διαβάστε περισσότερα

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

ΑΣΚΗΣΗ 2 (29 Νοεμβρίου 2016) ΑΣΚΗΣΗ 2 (29 Νοεμβρίου 2016) Περιγραφή της Άσκησης Στόχος της άσκησης είναι η δημιουργία ενός συστήματος διαχείρισης φωτισμού. Μία φωτομεταβαλλόμενη αντίσταση (LDR) θα διαπιστώνει την ποσότητα του φωτός

Διαβάστε περισσότερα

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

ΣΤΟΙΧΕΙΑ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ ARDUINO ΣΤΟΙΧΕΙΑ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ ARDUINO Αντώνιος Καραγεώργος Βασικά Στοιχεία της Γλώσσας Προγραμματισμού Arduino Constants: HIGH/LOW Ορίζουν το επίπεδο της τάσης εισόδου/εξόδου ενός pin INPUT/OUTPUT Ορίζουν την

Διαβάστε περισσότερα

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

Φύλλο εργασίας 9 - Αυτόνομο ρομποτικό όχημα αποφυγής εμποδίων Φύλλο εργασίας 9 - Αυτόνομο ρομποτικό όχημα αποφυγής εμποδίων Σε αυτήν τη δραστηριότητα θα κατασκευάσουμε ένα αυτόνομο ρομποτικό όχημα αποφυγής εμποδίων. Εκτός από τον μικροελεγκτή Arduino, το breadboard,

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

Ψηφιακά Αντικείμενα Μάθημα 1 Δραστηριότητα 2. Προγραμματισμός Φυσικών Συστημάτων. Συστήματα Πραγματικών Εφαρμογών. Νέα Ψηφιακά Αντικείμενα Σκοπός Ψηφιακά Αντικείμενα Μάθημα 1 Δραστηριότητα 2 ΤΟ ΣΥΣΤΗΜΑ ΣΑΡΩΣΗΣ ΤΟΥ ΟΠΤΙΚΟΥ ΠΕΔΙΟΥ. Ψηφιακά Αντικείμενα Μικροελεγκτής Προγραμματισμός Φυσικών Συστημάτων Συστήματα Πραγματικών Εφαρμογών Νέα Ψηφιακά

Διαβάστε περισσότερα

USB_6008_terminal_31. PCI_6023E_terminal_68. PCI_6023E_terminal_67

USB_6008_terminal_31. PCI_6023E_terminal_68. PCI_6023E_terminal_67 Τομέας: Ηλεκτρονικής, Ηλεκτρολογίας και Αυτοματισμού Εκπαιδευτικοί: Μαυρίδης Κώστας και Μπουλταδάκης Στέλιος Μάθημα: Συστήματα Ελέγχου και Ασφάλειας Τίτλος Μαθήματος: Μέτρηση Αναλογικής Εισόδου και Οδήγηση

Διαβάστε περισσότερα

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

ΕΝΟΤΗΤΑ 5 Αναλογικά σήματα ΕΝΟΤΗΤΑ 5 Αναλογικά σήματα Σκοπός και περίγραμμα της Ενότητας 5 Σκοπός της παρουσίασης Να δώσουμε τις βασικές ιδέες για τα αναλογικά σήματα και την χρήση διαφορετικών ειδών περιφερειακών Σύνοψη Επεξήγηση

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

ΜΙΚΡΟΕΛΕΓΚΤΗΣ PICAXE 18M2 ΘΕΜΑ : ΜΙΚΡΟΕΛΕΓΚΤΗΣ PICAXE 18M2 ΔΙΑΡΚΕΙΑ:? περίοδος Οι μικροελεγκτές είναι υπολογιστές χωρίς περιφερειακά, σε ολοκληρωμένα κυκλώματα. Μπορούν να συνδυάσουν αρκετές από τις βασικές λειτουργίες άλλων ειδικών

Διαβάστε περισσότερα

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

Γνωριμία με το Arduino Γνωριμία με το Arduino Τι είναι το Arduino; Το arduino είναι ένας μικρός υπολογιστής σε μέγεθος παλάμης που περιλαμβάνει ένα μικροελεγκτή (για εκτέλεση εντολών) και ένα σύνολο εισόδων/εξόδων για επικοινωνία

Διαβάστε περισσότερα

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

Εργαστηριακές σημειώσεις για το μάθημα: «Εισαγωγή στην Μηχατρονική» Εργαστηριακές σημειώσεις για το μάθημα: «Εισαγωγή στην Μηχατρονική» Τμήμα Μηχανολογίας Δρ. Φασουλάς Γιάννης, jfasoulas@staff.teicrete.gr Τ.Ε.Ι. Κρήτη, Σχολή Τεχνολογικών Εφαρμογών, Ηράκλειο Κρήτης, (2013)

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

Α. Βασική Χρήση κινητήρα - Servo με τη βιβλιοθήκη <Servo.h>

Α. Βασική Χρήση κινητήρα - Servo με τη βιβλιοθήκη <Servo.h> Α. Βασική Χρήση κινητήρα - Servo με τη βιβλιοθήκη (συνδέω τα 3 καλωδιάκια του servo στο σήμα, στο + (κόκκινο) και στο - (μαύρο, καφέ, κλπ)) Με 4 βασικές εντολές μπορώ να χειριστώ οποιοδήποτε

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

Lab 1: Experimenting on Arduino & AI Sense

Lab 1: Experimenting on Arduino & AI Sense Lab 1: Experimenting on Arduino & AI Sense 1. Εισαγωγή A. Arduino Robokit Το Robokit, όπως και όλες οι πλακέτες τύπου Arduino, λειτουργεί χάρη σε έναν μικροελεγκτή. Ως μικροελεγκτή μπορούμε να φανταστούμε

Διαβάστε περισσότερα

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

ΕΝΟΤΗΤΑ 10: ΟΔΗΓΗΣΗ ΚΙΝΗΤΗΡΩΝ ΕΝΟΤΗΤΑ 10: ΟΔΗΓΗΣΗ ΚΙΝΗΤΗΡΩΝ Στόχος και Περίγραμμα της Ενότητας 10 Στόχος της παρουσίασης Παρουσίαση της βασικής ιδέα και απλών παραδειγμάτων για την οδήγηση DC και βηματικών κινητήρων με το Arduino.

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

Έλεγχος με Μικροϋπολογιστές Εργαστήριο ενσωματωμένων συστημάτων Εργαστήριο ενσωματωμένων συστημάτων Παρουσίαση 2: Βασικός Προγραμματισμός Arduino (AVR) Εργαστήριο Αυτομάτου Ελέγχου Η πλατφόρμα Arduino Microcontroller: ATmega328 Operating Voltage: 5V Digital I/O Pins:

Διαβάστε περισσότερα

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

ΔΡΑΣΤΗΡΙΟΤΗΤΑ ΕΙΣΑΓΩΓΗ ΣΤΟ ARDUINO- 01a ΔΡΑΣΤΗΡΙΟΤΗΤΑ ΕΙΣΑΓΩΓΗ ΣΤΟ ARDUINO- 01a Βασικό κύκλωμα προγραμματισμός μικροελεγκτή Πλακέτα Arduino, 1 Να δημιουργήσετε και να προγραμματίσετε ένα πολύ απλό σύστημα που να αναβοσβήνει ένα λαμπάκι (έξοδος)

Διαβάστε περισσότερα

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

Φύλλο εργασίας 7 - Δημιουργώ τα δικά μου χρώματα με το RGB LED Φύλλο εργασίας 7 - Δημιουργώ τα δικά μου χρώματα με το RGB LED Στην δραστηριότητα αυτή θα δουλέψουμε με το RGB LED για να παράγουμε μια μεγάλη ποικιλία χρωμάτων. Το RGB LED είναι στην ουσία τρία διαφορετικά

Διαβάστε περισσότερα

Electronics μαζί με τα συνοδευτικά καλώδια και το αισθητήριο θερμοκρασίας LM335 που περιέχονται

Electronics μαζί με τα συνοδευτικά καλώδια και το αισθητήριο θερμοκρασίας LM335 που περιέχονται Τομέας: Ηλεκτρονικός Εκπαιδευτικός: Μπουλταδάκης Στέλιος Μάθημα: Συλλογή και μεταφορά δεδομένων μέσω Η/Υ, Αισθητήρες-Ενεργοποιητές Αντικείμενο: α) Μέτρηση θερμοκρασίας με το αισθητήριο LM335 και μεταφορά

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

ΥΠΟΥΡΓΕΙΟ ΠΑΙΔΕΙΑΣ ΚΑΙ ΠΟΛΙΤΙΣΜΟΥ ΔΙΕΥΘΥΝΣΗ ΑΝΩΤΕΡΗΣ ΚΑΙ ΑΝΩΤΑΤΗΣ ΕΚΠΑΙΔΕΥΣΗΣ ΥΠΗΡΕΣΙΑ ΕΞΕΤΑΣΕΩΝ ΠΑΓΚΥΠΡΙΕΣ ΕΞΕΤΑΣΕΙΣ 2015 ΥΠΟΥΡΓΕΙΟ ΠΑΙΔΕΙΑΣ ΚΑΙ ΠΟΛΙΤΙΣΜΟΥ ΔΙΕΥΘΥΝΣΗ ΑΝΩΤΕΡΗΣ ΚΑΙ ΑΝΩΤΑΤΗΣ ΕΚΠΑΙΔΕΥΣΗΣ ΥΠΗΡΕΣΙΑ ΕΞΕΤΑΣΕΩΝ ΠΑΓΚΥΠΡΙΕΣ ΕΞΕΤΑΣΕΙΣ 2015 ΤΕΧΝΟΛΟΓΙΑ (Ι) ΤΕΧΝΙΚΩΝ ΣΧΟΛΩΝ ΘΕΩΡΗΤΙΚΗΣ ΚΑΤΕΥΘΥΝΣΗΣ Μάθημα : Αυτοματισμοί και

Διαβάστε περισσότερα

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

Project 5: Συνθέτοντας μουσική Project 5: Συνθέτοντας μουσική Επίπεδο: Μέτριο Κατηγορία: Προγραμματισμός Σύντομη Περιγραφή: Πράγματι το Arduino είναι ικανό να παίξει μουσική! Το μόνο επιπλέον εξάρτημα που απαιτείται είναι Buzzer ή πιεζοηλεκτρικό

Διαβάστε περισσότερα

10. Πληκτρολόγιο matrix 4x4

10. Πληκτρολόγιο matrix 4x4 10. Πληκτρολόγιο matrix 4x4 Το πληκτρολόγιο matrix 4x4 αποτελείται από 16 πλήκτρα διακόπτες τα οποία είναι συνδεδεμένα μεταξύ τους ανά 4 σε τέτοια διάταξη ώστε, με το ένα άκρο τους να σχηματίζουν 4 σειρές

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

1o ΕΠΑΛ- Ε.Κ. Συκεών -Τομέας: Ηλεκτρονικής, Ηλεκτρολογίας και Αυτοματισμού Εκπαιδευτικοί: Μπουλταδάκης Στέλιος Μαυρίδης Κώστας

1o ΕΠΑΛ- Ε.Κ. Συκεών -Τομέας: Ηλεκτρονικής, Ηλεκτρολογίας και Αυτοματισμού Εκπαιδευτικοί: Μπουλταδάκης Στέλιος Μαυρίδης Κώστας 1o ΕΠΑΛ- Ε.Κ. Συκεών -Τομέας: Ηλεκτρονικής, Ηλεκτρολογίας και Αυτοματισμού Εκπαιδευτικοί: Μπουλταδάκης Στέλιος Μαυρίδης Κώστας Μάθημα: Ρομποτική, Μεταφορά και Έλεγχος Δεδομένων Αντικείμενο : Μεταφορά δεδομένων

Διαβάστε περισσότερα

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

ΕΦΑΡΜΟΓΕΣ ΤΗΛΕΠIΚΟΙΝΩΝΙΑΚΩΝ ΔΙΑΤΑΞΕΩΝ ΕΦΑΡΜΟΓΕΣ ΤΗΛΕΠIΚΟΙΝΩΝΙΑΚΩΝ ΔΙΑΤΑΞΕΩΝ ΟΙΚΟΝOΜΟΥ ΧΑΡΗΣ (6424) ΦΩΚΟΣ ΝΙΚΟΛΑΟΣ(6592) ΚΑΜΒΥΣΗΣ ΝΙΚΟΛΑΟΣ(7178) 2013-2014 ΠΕΡΙΕΧΟΜΕΝΑ Σκοπός της εργασίας Ανάλυση Arduino Uno Δημιουργία πληροφορίας Αποστολή και

Διαβάστε περισσότερα

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

Παραδείγµατα χρήσης του µικροελεγκτή Arduino Εφαρµογές για το εργαστήριο Μέρος 2 ο :Οδήγηση Κινητήρων DC(PM) Μηχατρονικά Συστήματα Ι Τμήμα Μηχανολόγων Μηχανικών Τ.Ε. Τ.Ε.Ι. Κρήτης Παραδείγµατα χρήσης του µικροελεγκτή Arduino Εφαρµογές για το εργαστήριο Μέρος 2 ο :Οδήγηση Κινητήρων DC(PM) Δρ. Φασουλάς Γιάννης,

Διαβάστε περισσότερα

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

Ενσωµατωµένα Συστήµατα Ενσωµατωµένα Συστήµατα για εφαρµογές πραγµατικού χρόνου Μικροελεγκτής Arduino Ιωάννης Καλόµοιρος Αναπληρωτής Καθηγητής Τµήµα Μηχανικών Πληροφορικής Μάθηµα 7ο Τι είναι το Arduino... Ένα open-hardware σύστηµα

Διαβάστε περισσότερα

ΔΙΔΑΣΚΑΛΙΑ ΤΟΥ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ ΜΕ ΧΡΗΣΗ ΤΟΥ ΠΑΚΕΤΟΥ ΡΟΜΠΟΤΙΚΗΣ LEGO MINDSTORMS NXT

ΔΙΔΑΣΚΑΛΙΑ ΤΟΥ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ ΜΕ ΧΡΗΣΗ ΤΟΥ ΠΑΚΕΤΟΥ ΡΟΜΠΟΤΙΚΗΣ LEGO MINDSTORMS NXT ΔΙΔΑΣΚΑΛΙΑ ΤΟΥ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ ΜΕ ΧΡΗΣΗ ΤΟΥ ΠΑΚΕΤΟΥ ΡΟΜΠΟΤΙΚΗΣ LEGO MINDSTORMS NXT Φύλλο Εργασιών 2 ο Κινητήρες και Δομή Επανάληψης Σημειώσεις Καθηγητή Τώρα θα δούμε πως μπορούν να τροποποιηθούν τα προγράμματα

Διαβάστε περισσότερα

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

Εφαρμογές Arduino Σεμινάριο Ηλεκτρονικού Τομέα Εφαρμογές Arduino Σεμινάριο Ηλεκτρονικού Τομέα 1ο ΕΠΑΛ Περάματος 7ο ΕΚ Πειραιά Πλακέτα Arduino Το 2005 oι Massimo Banzi και David Cueartielles στο Ivrea Δημιουργούν την υπολογιστική πλατφόρμα Arduino.

Διαβάστε περισσότερα

Model: ED-CS5000. Ηλεκτρονικός πίνακας ελέγχου για συρόμενες και ανοιγόμενες μονόφυλλες πόρτες.

Model: ED-CS5000. Ηλεκτρονικός πίνακας ελέγχου για συρόμενες και ανοιγόμενες μονόφυλλες πόρτες. Model: ED-CS5000 Ηλεκτρονικός πίνακας ελέγχου για συρόμενες και ανοιγόμενες μονόφυλλες πόρτες. Ο πίνακας είναι συμβατός με χειριστήρια σταθερού (11 32bit) η κυλιόμενου κωδικού στην συχνότητα των 433,92Mhz

Διαβάστε περισσότερα

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

Εκπαιδευτική Ρομποτική με ARDUINO. για εκπαιδευτικούς και μαθητές. 1o Μέρος: Απλά Κυκλώματα ... 1o Μέρος: Απλά Κυκλώματα Εισαγωγή - Αναγνώριση του κυκλώματος Μελετήστε τα κυκλώματα που ακολουθούν και συζητήστε με την ομάδα σας ποιες από τις παρακάτω προτάσεις είναι σωστές και ποιες λάθος. Α Β

Διαβάστε περισσότερα

Βιβλιοθήκη για οθόνη LCD

Βιβλιοθήκη για οθόνη LCD Βιβλιοθήκη για οθόνη LCD Η βιβλιοθήκη LCD βρίσκεται προεγκατεστημένη στο περιβάλλον προγραμματισμού του Arduino (IDE) και για την ορθή της λειτουργία ακολουθούμε την παρακάτω διαδικασία: Ø Δηλώνουμε τη

Διαβάστε περισσότερα

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

ΠΕΡΙΕΧΟΜΕΝΑ ΚΕΦΑΛΑΙΟ I: ΕΙΣΑΓΩΓΗ ΣΤΑ ΗΛΕΚΤΡΟΝΙΚΑ ΠΕΡΙΕΧΟΜΕΝΑ ΚΕΦΑΛΑΙΟ I: ΕΙΣΑΓΩΓΗ ΣΤΑ ΗΛΕΚΤΡΟΝΙΚΑ 1.1 ΕΙΣΑΓΩΓΗ ΣΤΑ ΑΝΑΛΟΓΙΚΑ ΗΛΕΚΤΡΟΝΙΚΑ 1 1.1.1 Αναλογικά σήματα 1 1.1.2 Οι αντιστάσεις 3 1.1.3 Οι πυκνωτές 7 1.1.4 Τα πηνία 11 1.1.5 Οι δίοδοι 13 1.1.6

Διαβάστε περισσότερα

10. Πληκτρολόγιο matrix 4x4

10. Πληκτρολόγιο matrix 4x4 10. Πληκτρολόγιο matrix 4x4 Το πληκτρολόγιο matrix 4x4 αποτελείται από 16 πλήκτρα διακόπτες τα οποία είναι συνδεδεμένα μεταξύ τους ανά 4 σε τέτοια διάταξη ώστε, με το ένα άκρο τους να σχηματίζουν 4 σειρές

Διαβάστε περισσότερα

Electronics μαζί με τα συνοδευτικά καλώδια και το αισθητήριο θερμοκρασίας LM335 που περιέχονται

Electronics μαζί με τα συνοδευτικά καλώδια και το αισθητήριο θερμοκρασίας LM335 που περιέχονται Τομέας: Ηλεκτρονικός Εκπαιδευτικός: Μπουλταδάκης Στέλιος Μάθημα: Συλλογή και μεταφορά δεδομένων μέσω Η/Υ, Αισθητήρες-Ενεργοποιητές Αντικείμενο: α) Μέτρηση θερμοκρασίας με το αισθητήριο LM335 και μεταφορά

Διαβάστε περισσότερα

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

Έλεγχος κινητήρα συνεχούς ρεύματος με τρανζίστορ και Arduino Έλεγχος κινητήρα συνεχούς ρεύματος με τρανζίστορ και Arduino Στην κατασκευή αυτή ο σκοπός ήταν να ελέγξουμε την ταχύτητα ενός κινητήρα συνεχούς ρεύματος με τη χρήση ενός τρανζίστορ που θα χρησιμοποιηθεί

Διαβάστε περισσότερα

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

ΠΛΗΡΟΦΟΡΙΚH ΓΙΑ ΤΗΝ ΤEΧΝΗ Η ΕΞAΜΗΝΟ ΠΛΗΡΟΦΟΡΙΚH ΓΙΑ ΤΗΝ ΤEΧΝΗ Η ΕΞAΜΗΝΟ ΑΜΑΛIΑ ΦΩΚA ΕΠIΚΟΥΡΗ ΚΑΘΗΓHΤΡΙΑ Περιεχόμενο Μαθήματος 2 Arduino Τι είναι το Arduino; 3 μικρή συσκευή (μικροεπεξεργαστής) που συνδέεται με USB στον υπολογιστή μια πλατφόρμα

Διαβάστε περισσότερα

Εργαστηριακές ασκήσεις λογικών κυκλωμάτων 11 A/D-D/A

Εργαστηριακές ασκήσεις λογικών κυκλωμάτων 11 A/D-D/A 11.1 Θεωρητικό μέρος 11 A/D-D/A 11.1.1 Μετατροπέας αναλογικού σε ψηφιακό σήμα (A/D converter) με δυαδικό μετρητή Σχ.1 Μετατροπέας A/D με δυαδικό μετρητή Στο σχήμα 1 απεικονίζεται σε block diagram ένας

Διαβάστε περισσότερα

ΕΡΓΑΣΤΗΡΙΑΚΗ ΕΦΑΡΜΟΓΗ 1 ΤO ΡΟΜΠΟΤ INTELLITEK ER-2u

ΕΡΓΑΣΤΗΡΙΑΚΗ ΕΦΑΡΜΟΓΗ 1 ΤO ΡΟΜΠΟΤ INTELLITEK ER-2u Εφαρμογή 1: Το ρομπότ INTELITEK ER-2u Εργαστήριο Ευφυών Συστημάτων και Ρομποτικής Τμήμα Μηχανικών Παραγωγής και Διοίκησης Πολυτεχνείο Κρήτης www.robolab.tuc.gr, τηλ: 28210 37292 / 37314 e-mail: savas@dpem.tuc.gr,

Διαβάστε περισσότερα

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

ΜΕΤΡΗΣΗ ΤΑΣΗΣ ΣΦΑΛΜΑΤΑ ΕΡΓΑΣΤΗΡΙΑΚΗ ΑΣΚΗΣΗ ΜΕΤΡΗΣΗ ΤΑΣΗΣ ΣΦΑΛΜΑΤΑ ΜΕΤΡΗΣΗΣ ΗΜΕΡΟΜΗΝΙΑ: ΤΡΙΩΡΟ: ΕΠΩΝΥΜΟ: ΟΝΟΜΑ: ΑΜ: ΕΠΩΝΥΜΟ: ΟΝΟΜΑ: ΑΜ: ΕΠΩΝΥΜΟ: ΟΝΟΜΑ: ΑΜ: 1 ΣΚΟΠΟΣ... 1 ΘΕΩΡΗΤΙΚΟ ΥΠΟΒΑΘΡΟ... 1.1 ΠΗΓΗ ΣΥΝΕΧΟΥΣ ΤΑΣΗΣ... 1. ΜΕΤΡΗΣΗ

Διαβάστε περισσότερα

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

Μηχανοτρονική. Τμήμα Μηχανικών Παραγωγής και Διοίκησης 7 ο Εξάμηνο, Τμήμα Μηχανικών Παραγωγής και Διοίκησης 7 ο Εξάμηνο, 2016-2017 Mηχανοτρονική Το Arduino είναι μια «ανοικτού κώδικα» πλατφόρμα «πρωτοτυποποιημένων» ηλεκτρονικών βασισμένη σε ευέλικτο και εύκολο στη χρήση

Διαβάστε περισσότερα

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

ΔΙΔΑΚΤΙΚΟ ΣΕΝΑΡΙΟ ΔΗΜΙΟΥΡΓΙΑ ΣΥΣΤΗΜΑΤΟΣ ΔΙΕΞΑΓΩΓΗΣ ΠΑΙΧΝΙΔΙΟΥ ΕΡΩΤΗΣΕΩΝ/ΑΠΑΝΤΗΣΕΩΝ ΜΕ ΧΡΗΣΗ ARDUINO - QUIZ GAME ΦΥΛΛΟ ΕΡΓΑΣΙΑΣ 3 ΔΙΔΑΚΤΙΚΟ ΣΕΝΑΡΙΟ ΔΗΜΙΟΥΡΓΙΑ ΣΥΣΤΗΜΑΤΟΣ ΔΙΕΞΑΓΩΓΗΣ ΠΑΙΧΝΙΔΙΟΥ ΕΡΩΤΗΣΕΩΝ/ΑΠΑΝΤΗΣΕΩΝ 1 Ο ΕΠΑ.Λ. ΓΕΡΑΣ Σχολικό Έτος: Καθηγητής: ΜΕ ΧΡΗΣΗ ARDUINO - QUIZ GAME Τάξη:.. Τμήμα:.. Ομάδα:.. Ημερομηνία:.. Ονοματεπώνυμο

Διαβάστε περισσότερα

ΠΕΡΙΕΧΟΜΕΝΟ. ΜΑΘΗΜΑ: ΡΟΜΠΟΤΙΚΗ (3Ε) Γ τάξη Ημερήσιου ΕΠΑ.Λ. και Γ τάξη Εσπερινού ΕΠΑ.Λ.

ΠΕΡΙΕΧΟΜΕΝΟ. ΜΑΘΗΜΑ: ΡΟΜΠΟΤΙΚΗ (3Ε) Γ τάξη Ημερήσιου ΕΠΑ.Λ. και Γ τάξη Εσπερινού ΕΠΑ.Λ. ΑΣΚΗΣΗ 25 - ΤΗΛΕΜΑΤΙΚΗ ΣΥΣΚΕΥΗ Μαθησιακά αποτελέσματα Ο μαθητής/μαθήτρια να μπορεί να: ΓΝΩΣΕΙΣ - Περιγράφει τη λειτουργία της τηλεματικής συσκευής. ΔΕΞΙΟΤΗΤΕΣ - Κατασκευάζει τηλεματική συσκευή. - Εγκαθιστά

Διαβάστε περισσότερα

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

Φύλλο εργασίας 4 - Δημιουργώ τα δικά μου χρώματα με το RGB LED Φύλλο εργασίας 4 - Δημιουργώ τα δικά μου χρώματα με το RGB LED Στην δραστηριότητα αυτή θα δουλέψουμε με το RGB LED για να παράγουμε μια μεγάλη ποικιλία χρωμάτων. Το RGB LED είναι στην ουσία τρία διαφορετικά

Διαβάστε περισσότερα

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

Ψηφιακά Ηλεκτρονικά. Προαιρετική εργασία Τ.Ε.Ι. ΑΘΗΝΑΣ ΣΧΟΛΗ ΤΕΧΝΟΛΟΓΙΚΩΝ ΕΦΑΡΜΟΓΩΝ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΒΙΟΙΑΤΡΙΚΗΣ ΤΕΧΝΟΛΟΓΙΑΣ Ψηφιακά Ηλεκτρονικά Προαιρετική εργασία «Κατασκευή δυαδικού απαριθμητή με δεκαδική απεικόνιση δεκάδων και μονάδων» Συνυπεύθυνος

Διαβάστε περισσότερα

Συστήματα SCADA Εισαγωγή στη Λήψη Δεδομένων (DAQ) Μέρος 3 β

Συστήματα SCADA Εισαγωγή στη Λήψη Δεδομένων (DAQ) Μέρος 3 β Συστήματα SCADA Εισαγωγή στη Λήψη Δεδομένων (DAQ) Μέρος 3 β Προσθήκη αναλογικών εισόδων (AI) και αναλογικών εξόδων (AO) σε ένα εικονικό όργανο Το παράδειγμα του Temp Monitoring & Fan Control.vi Μέρος 3β

Διαβάστε περισσότερα

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

LFT169 - LFR169 ΠΟΜΠΟΣ ΚΑΙ ΔΕΚΤΗΣ ΨΗΦΙΑΚΩΝ ΚΑΙ ΑΝΑΛΟΓΙΚΩΝ ΣΗΜΑΤΩΝ LFT169 - LFR169 ΠΟΜΠΟΣ ΚΑΙ ΔΕΚΤΗΣ ΨΗΦΙΑΚΩΝ ΚΑΙ ΑΝΑΛΟΓΙΚΩΝ ΣΗΜΑΤΩΝ Οδηγίες Παραμετροποίησης Power Electronics Control Ε.Π.Ε. Τύποι Συσκευών: LFT169 - LFR169 Περιγραφή: Πομπός και Δέκτης Τηλεχειρισμού 169MHz

Διαβάστε περισσότερα

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

ΥΠΟΥΡΓΕΙΟ ΠΑΙΔΕΙΑΣ ΚΑΙ ΠΟΛΙΤΙΣΜΟΥ ΔΙΕΥΘΥΝΣΗ ΑΝΩΤΕΡΗΣ ΚΑΙ ΑΝΩΤΑΤΗΣ ΕΚΠΑΙΔΕΥΣΗΣ ΥΠΗΡΕΣΙΑ ΕΞΕΤΑΣΕΩΝ ΠΑΓΚΥΠΡΙΕΣ ΕΞΕΤΑΣΕΙΣ ΥΠΟΥΡΓΕΙΟ ΠΑΙΔΕΙΑΣ ΚΑΙ ΠΟΛΙΤΙΣΜΟΥ ΔΙΕΥΘΥΝΣΗ ΑΝΩΤΕΡΗΣ ΚΑΙ ΑΝΩΤΑΤΗΣ ΕΚΠΑΙΔΕΥΣΗΣ ΥΠΗΡΕΣΙΑ ΕΞΕΤΑΣΕΩΝ ΠΑΓΚΥΠΡΙΕΣ ΕΞΕΤΑΣΕΙΣ 2008 ΤΕΧΝΟΛΟΓΙΑ (Ι) ΤΕΧΝΙΚΩΝ ΣΧΟΛΩΝ ΠΡΑΚΤΙΚΗΣ ΚΑΤΕΥΘΥΝΣΗΣ ΜΑΘΗΜΑ : ΑΥΤΟΜΑΤΙΣΜΟΙ ΚΑΙ

Διαβάστε περισσότερα

ΕΝΟΤΗΤΑ 6 LCD ΟΘΟΝΕΣ

ΕΝΟΤΗΤΑ 6 LCD ΟΘΟΝΕΣ ΕΝΟΤΗΤΑ 6 LCD ΟΘΟΝΕΣ Σκοπός και περίγραμμα της Ενότητας 6 Σκοπός της παρουσίασης Να δείτε μια οθόνη LCD ως περιφερειακό εξόδου: σας επιτρέπει να εμφανίσετε κάθε είδους πληροφορίας εξόδου, συμπεριλαμβανομένων

Διαβάστε περισσότερα

G&K ELECTRONICS AVR ATMEGA DEVELOPMENT BOARD

G&K ELECTRONICS AVR ATMEGA DEVELOPMENT BOARD ΕΓΧΕΙΡΙΔΙΟ ΧΡΗΣΗΣ G&K ELECTRONICS Αυτή η αναπτυξιακή μονάδα (AVR-ATMEGA 28 PIN) είναι σχεδιασμένη να χρησιμοποιηθεί για την εκμάθηση βασικών και προηγμένων δεξιοτήτων που απαιτούνται για τον έλεγχο ενός

Διαβάστε περισσότερα

γρηγορότερα. Αν θέλουμε να μηδενίσουμε όλα τα υπόλοιπα bit μπορούμε να χρησιμοποιήσουμε την εντολή:

γρηγορότερα. Αν θέλουμε να μηδενίσουμε όλα τα υπόλοιπα bit μπορούμε να χρησιμοποιήσουμε την εντολή: A. Tips 1. Τοποθέτηση σημαίας ή bit ενός καταχωρητή ή μεταβλητής... 2 2. Καθάρισμα σημαίας ή bit ενός καταχωρητή ή μεταβλητής... 2 3. Σύγκριση μονοδιάστατων πινάκων (στο παράδειγμα 5 στοιχείων)... 2 4.

Διαβάστε περισσότερα

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

ΘΕΜΑ : ΒΑΣΙΚΕΣ ΣΥΝΔΕΣΜΟΛΟΓΙΕΣ ΤΕΛΕΣΤΙΚΟΥ ΕΝΙΣΧΥΤΗ. ΔΙΑΡΚΕΙΑ: 1περίοδος ΘΕΜΑ : ΒΑΣΙΚΕΣ ΣΥΝΔΕΣΜΟΛΟΓΙΕΣ ΤΕΛΕΣΤΙΚΟΥ ΕΝΙΣΧΥΤΗ ΔΙΑΡΚΕΙΑ: 1περίοδος Ο τελεστικός ενισχυτής μπορεί να συνδεθεί σε διάφορες συνδεσμολογίες δημιουργώντας πολύ χρήσιμα κυκλώματα. τόσο στα αναλογικά κυκλώματα

Διαβάστε περισσότερα

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

Απλή Δομή Επιλογής. Ο κώδικας. //με χρήση μεταβλητών. delay (3000); Απλή Δομή Επιλογής Να κατασκευάσετε το κύκλωμα το οποίο θα υλοποιεί τα φανάρια. Στη συνέχεια να αναπτύξετε τον κατάλληλο κώδικα ώστε όταν ανάβει το κόκκινο θα ανάβει και το άσπρο, όταν θα σβήνει το κόκκινο

Διαβάστε περισσότερα

Δραστηριότητα 9: Σύνδεση ΗΥ με το πολύμετρο METEX 3870D μέσω σειριακής επικοινωνίας RS232 και εφαρμογή σε LabView

Δραστηριότητα 9: Σύνδεση ΗΥ με το πολύμετρο METEX 3870D μέσω σειριακής επικοινωνίας RS232 και εφαρμογή σε LabView 1o ΕΠΑΛ Ε.Κ. ΝΕΑΠΟΛΗΣ Μπουλταδάκης Σ, Μαυρίδης Κ. Δραστηριότητα 9: Σύνδεση ΗΥ με το πολύμετρο METEX 3870D μέσω σειριακής επικοινωνίας RS232 και εφαρμογή σε LabView Mάθημα: Εργαστήριο Δικτύων Υπολογιστών

Διαβάστε περισσότερα

Μια πρόταση διδασκαλίας για το μάθημα του προγραμματισμού Η/Υ στο Λύκειο με τη μεθοδολογία STEM

Μια πρόταση διδασκαλίας για το μάθημα του προγραμματισμού Η/Υ στο Λύκειο με τη μεθοδολογία STEM Μια πρόταση διδασκαλίας για το μάθημα του προγραμματισμού Η/Υ στο Λύκειο με τη μεθοδολογία STEM Οδηγίες για την υλοποίηση της διδακτικής παρέμβασης 1η διδακτική ώρα: Υλοποίηση του φύλλου εργασίας 1 με

Διαβάστε περισσότερα

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

Έλεγχος με Μικροϋπολογιστές Εργαστήριο ενσωματωμένων συστημάτων Εργαστήριο ενσωματωμένων συστημάτων Παρουσίαση 2: Βασικός Προγραμματισμός Arduino (AVR) Εργαστήριο Αυτομάτου Ελέγχου Η πλατφόρμα Arduino Microcontroller: ATmega328 Operating Voltage: 5V Digital I/O Pins:

Διαβάστε περισσότερα

Mini DVR. Οδηγίες χρήσης MDS 660

Mini DVR. Οδηγίες χρήσης MDS 660 Mini DVR MDS 660 Βασικά χαρακτηριστικά Σύστημα ανίχνευσης κίνησης με ενσωματωμένο σύστημα καταγραφής εικόνας. Από τη στιγμή που ανιχνεύεται εισβολή στον επιτηρούμενο χώρο το αισθητήριο ανίχνευσης κίνησης

Διαβάστε περισσότερα

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

Έργο 1 LED που αναβοσβήνει (LED Flasher) Έργο 1 LED που αναβοσβήνει (LED Flasher) Σε αυτό το Έργο πρόκειται να συνδέσετε ένα LED σε μία από τις ψηφιακές ακίδες (Digital Pin) στην πλακέτα Arduino και θα το κάνετε να αναβοσβήνει. Θα μάθετε επίσης

Διαβάστε περισσότερα

ΡΟΜΠΟΤΙΚΗ ΜΕ ARDUINO - ARDUINO ΚΑΙ ΕΙΚΟΝΑ. Δημιουργός: Δρ.Αθανάσιος Μπαλαφούτης Επιβλέπων: Πετεινάτος Ηλίας Υποψήφιος Διδάκτωρ

ΡΟΜΠΟΤΙΚΗ ΜΕ ARDUINO - ARDUINO ΚΑΙ ΕΙΚΟΝΑ. Δημιουργός: Δρ.Αθανάσιος Μπαλαφούτης Επιβλέπων: Πετεινάτος Ηλίας Υποψήφιος Διδάκτωρ ΡΟΜΠΟΤΙΚΗ ΜΕ ARDUINO - ARDUINO ΚΑΙ ΕΙΚΟΝΑ Δημιουργός: Δρ.Αθανάσιος Μπαλαφούτης Επιβλέπων: Πετεινάτος Ηλίας Υποψήφιος Διδάκτωρ 1 ARDUINO ΚΑΙ ΕΙΚΟΝΑ ΠΕΡΙΕΧΟΜΕΝΑ Σειριακή επικοινωνία με Jpeg Κάμερα Σύνδεση

Διαβάστε περισσότερα

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

ΥΠΟΥΡΓΕΙΟ ΠΑΙΔΕΙΑΣ ΚΑΙ ΠΟΛΙΤΙΣΜΟΥ ΔΙΕΥΘΥΝΣΗ ΑΝΩΤΕΡΗΣ ΚΑΙ ΑΝΩΤΑΤΗΣ ΕΚΠΑΙΔΕΥΣΗΣ ΥΠΗΡΕΣΙΑ ΕΞΕΤΑΣΕΩΝ ΠΑΓΚΥΠΡΙΕΣ ΕΞΕΤΑΣΕΙΣ 2006 ΥΠΟΥΡΓΕΙΟ ΠΑΙΔΕΙΑΣ ΚΑΙ ΠΟΛΙΤΙΣΜΟΥ ΔΙΕΥΘΥΝΣΗ ΑΝΩΤΕΡΗΣ ΚΑΙ ΑΝΩΤΑΤΗΣ ΕΚΠΑΙΔΕΥΣΗΣ ΥΠΗΡΕΣΙΑ ΕΞΕΤΑΣΕΩΝ ΠΑΓΚΥΠΡΙΕΣ ΕΞΕΤΑΣΕΙΣ 2006 Μάθημα : Ψηφιακά Ηλεκτρονικά Τεχνολογία ΙΙ, Θεωρητικής Κατεύθυνσης Ημερομηνία

Διαβάστε περισσότερα

ΤΕΛΕΣΤΙΚΟΣ ΕΝΙΣΧΥΤΗΣ - Λύσεις ασκήσεων στην ενότητα

ΤΕΛΕΣΤΙΚΟΣ ΕΝΙΣΧΥΤΗΣ - Λύσεις ασκήσεων στην ενότητα ΤΕΛΕΣΤΙΚΟΣ ΕΝΙΣΧΥΤΗΣ - Λύσεις ασκήσεων στην ενότητα 1. Να αναφέρετε τρεις τεχνολογικούς τομείς στους οποίους χρησιμοποιούνται οι τελεστικοί ενισχυτές. Τρεις τεχνολογικοί τομείς που οι τελεστικοί ενισχυτές

Διαβάστε περισσότερα

ΕΝΟΤΗΤΑ 8 ΛΟΙΠΟΙ ΑΙΣΘΗΤΗΡΕΣ

ΕΝΟΤΗΤΑ 8 ΛΟΙΠΟΙ ΑΙΣΘΗΤΗΡΕΣ ΕΝΟΤΗΤΑ 8 ΛΟΙΠΟΙ ΑΙΣΘΗΤΗΡΕΣ Στόχος και περίγραμμα της Ενότητας 8 Στόχος της παρουσίασης Η παρουσίαση αδρανειακών αισθητήρων και αισθητήρων που μετράνε υγρασία και θερμοκρασία Σύνοψη Επιταχυνσιόμετρο Τύποι

Διαβάστε περισσότερα

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

4 Εισαγωγή στο Arduino 28 Εισαγωγή στο Arduino 4 Εισαγωγή στο Arduino Τι είναι το Arduino; To arduino είναι ένας μικροελεγκτής, προσαρμοσμένος σε μια πλακέτα και έτοιμος προς χρήση. Μας φώτισες. Και τι είναι ένας μικροελεγκτής;

Διαβάστε περισσότερα

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

Φύλλο εργασίας 4 - Αυτόματο φωτάκι νυκτός Φύλλο εργασίας 4 - Αυτόματο φωτάκι νυκτός Σε αυτήν την δραστηριότητα θα κατασκευάσουμε ένα αυτόματο φωτάκι νυκτός. Η διάταξη που θα δημιουργήσουμε θα αποτελείται από ένα LED και μια φωτοευαίσθητη αντίσταση.

Διαβάστε περισσότερα

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

ΥΠΟΥΡΓΕΙΟ ΠΑΙΔΕΙΑΣ ΚΑΙ ΠΟΛΙΤΙΣΜΟΥ ΔΙΕΥΘΥΝΣΗ ΑΝΩΤΕΡΗΣ ΚΑΙ ΑΝΩΤΑΤΗΣ ΕΚΠΑΙΔΕΥΣΗΣ ΥΠΗΡΕΣΙΑ ΕΞΕΤΑΣΕΩΝ ΠΑΓΚΥΠΡΙΕΣ ΕΞΕΤΑΣΕΙΣ 2012 ΥΠΟΥΡΓΕΙΟ ΠΑΙΔΕΙΑΣ ΚΑΙ ΠΟΛΙΤΙΣΜΟΥ ΔΙΕΥΘΥΝΣΗ ΑΝΩΤΕΡΗΣ ΚΑΙ ΑΝΩΤΑΤΗΣ ΕΚΠΑΙΔΕΥΣΗΣ ΥΠΗΡΕΣΙΑ ΕΞΕΤΑΣΕΩΝ ΠΑΓΚΥΠΡΙΕΣ ΕΞΕΤΑΣΕΙΣ 2012 ΤΕΧΝΟΛΟΓΙΑ (Ι) ΤΕΧΝΙΚΩΝ ΣΧΟΛΩΝ ΘΕΩΡΗΤΙΚΗΣ ΚΑΤΕΥΘΥΝΣΗΣ Μάθημα : Αυτοματισμοί και

Διαβάστε περισσότερα

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

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

Διαβάστε περισσότερα

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

Εμμανουήλ Πουλάκης. Προγραμματίζοντας με τον μικροελεγκτή Arduino Εμμανουήλ Πουλάκης Προγραμματίζοντας με τον μικροελεγκτή Arduino Ηράκλειο Ιανουάριος 2015 Έκδοση 1η Ηράκλειο, Ιανουάριος 2015 ISBN 978-960-93-6760-8 Αυτό το υλικό διατίθεται με άδεια Creative Commons

Διαβάστε περισσότερα

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

Έλεγχος με Μικροϋπολογιστές Εργαστήριο ενσωματωμένων συστημάτων Εργαστήριο ενσωματωμένων συστημάτων Παρουσίαση 3: Βασικός Προγραμματισμός Arduino (AVR) (Συνέχεια) Εργαστήριο Αυτομάτου Ελέγχου Η πλατφόρμα Arduino Microcontroller: ATmega328 Operating Voltage: 5V Digital

Διαβάστε περισσότερα

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

Παιδιά κάτω των 13 ετών δε θα πρέπει να χρησιμοποιούν το κιτ χωρίς επίβλεψη. Μη συνδέετε την κύρια πλακέτα σε εξωτερική τροφοδοσία μεγάλης ισχύος. 2 ΠΕΡΙΕΧΟΜΕΝΑ 01. Robotale (Arduino-Compatible) 02. Ράστερ 830 οπών 03. Κουτί αποθήκευσης 04. Κόκκινα leds (τεμ. 5) 05. Κίτρινα leds (τεμ. 5) 06. Πράσινα leds (τεμ. 5) 07. Αντιστάτες 220 Ohm (τεμ. 8) 08.

Διαβάστε περισσότερα

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

ΠΑΝΕΛΛΗΝΙΟΣ ΔΙΑΓΩΝΙΣΜΟΣ ΦΥΣΙΚΗΣ ΑΡΙΣΤΟΤΕΛΗΣ Γ Λυκείου Β Φάση: Πειραματικό μέρος : 14/04/2018 Q E-2 Q E-2 ΟΔΗΓΙΕΣ: 1. Οι απαντήσεις σε όλα τα ερωτήματα θα πρέπει να αναγραφούν στο Φύλλο Απαντήσεων (A E-2) που θα σας δοθεί χωριστά από τις εκφωνήσεις. 2. Η επεξεργασία των θεμάτων θα γίνει γραπτώς σε φύλλα

Διαβάστε περισσότερα