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

Σχετικά έγγραφα

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

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

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

ΛΕΙΤΟΥΓΙΚΆ ΣΥΣΤΉΜΑΤΑ. 5 ο Εργαςτιριο Ειςαγωγι ςτθ Γραμμι Εντολϊν

ΕΦΑΡΜΟΓΕ ΒΑΕΩΝ ΔΕΔΟΜΕΝΩΝ ΣΗ ΝΟΗΛΕΤΣΙΚΗ. Φιλιοποφλου Ειρινθ

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

Ηλεκτρονικι Επιχειρθςιακι Δράςθ Εργαςτιριο 1

x n D 2 ENCODER m - σε n (m 2 n ) x 1 Παραδείγματα κωδικοποιθτϊν είναι ο κωδικοποιθτισ οκταδικοφ ςε δυαδικό και ο κωδικοποιθτισ BCD ςε δυαδικό.

Η γλώςςα προγραμματιςμού C

Virtualization. Στο ςυγκεκριμζνο οδηγό, θα παρουςιαςτεί η ικανότητα δοκιμήσ τησ διανομήσ Ubuntu 9.04, χωρίσ την ανάγκη του format.

ΕΝΟΣΗΣΑ 1: ΓΝΩΡIΖΩ ΣΟΝ ΤΠΟΛΟΓΙΣΗ. ΚΕΦΑΛΑΙΟ 2: Σο Τλικό του Τπολογιςτι

Multi Logo. Προγραμματιςμόσ Η/Υ με Multi Logo. Σχεδίαςη και ανάπτυξη εφαρμογήσ κίνηςησ αντικειμζνου

Πωσ δθμιουργώ φακζλουσ;

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

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

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

16. Πίνακεσ και Συναρτήςεισ

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

ΕΝΟΤΗΤΑ 2: ΤΟ ΛΟΓΙΣΜΙΚΟ ΤΟΥ ΥΠΟΛΟΓΙΣΤΗ. ΚΕΦΑΛΑΙΟ 6: Το γραφικό περιβάλλον Επικοινωνίασ (Γ.Π.Ε)

Στα προθγοφμενα δφο εργαςτιρια είδαμε τθ δομι απόφαςθσ (ι επιλογισ ι ελζγχου ροισ). Ασ κυμθκοφμε:

Πνομα Ομάδασ: Προγραμματιςμόσ ενόσ κινοφμενου ρομπότ

Συντακτικός Αναλυτής. Διαλέξεις στο μάθημα: Μεταφραστές Γιώργος Μανής

ΚΥΚΛΩΜΑΤΑ VLSI. Ασκήσεις Ι. Γ. Τσιατούχας. Πανεπιςτιμιο Ιωαννίνων. Τμιμα Μθχανικϊν Η/Υ και Πλθροφορικισ 8/11/18

Ειςαγωγι ςτο Δομθμζνο Προγραμματιςμό. Βαγγζλθσ Οικονόμου

5 ΜΕΘΟΔΟΙ - ΠΑΡΑΜΕΤΡΟΙ

Modellus 4.01 Συ ντομοσ Οδηγο σ

Διαδικασία με βήματα. 1. Αλλάηω το χρϊμα ςκθνικοφ ςε γκρι(#3333).

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

Διαδικαςία Διαχείριςθσ Στθλϊν Βιβλίου Εςόδων - Εξόδων. (v.1.0.7)

Οδηγίεσ για την Τποβολή Καταςτάςεων υμφωνητικών μζςω xml αρχείου

-Έλεγχοσ μπαταρίασ (χωρίσ φορτίο) Ο ζλεγχοσ αυτόσ μετράει τθν κατάςταςθ φόρτιςθ τθσ μπαταρίασ.

Προγραμματιςμόσ Μεκόδων Επίλυςθσ Προβλθμάτων. 15. Πίνακεσ ΙI. Ιωάννθσ Κατάκθσ. ΕΠΛ 032: Προγραμματιςμόσ Μεκόδων Επίλυςθσ Προβλθμάτων

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

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

Δείκτεσ Διαχείριςθ Μνιμθσ. Βαγγζλθσ Οικονόμου Διάλεξθ 8

17. Πολυδιάςτατοι πίνακεσ

Τυπικζσ Γλϊςςεσ Περιγραφισ Υλικοφ Εργαςτιριο 1

Καςάμπαλθσ Στζλιοσ. Περιγραφι τθσ Εφαρμογισ:

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

EUROPEAN TRADESMAN PROJECT NOTES ON ELECTRICAL TESTS OF ELECTRICAL INSTALLATIONS

ΕΝΟΤΗΤΑ 2: ΤΟ ΛΟΓΙΣΜΙΚΟ ΤΟΥ ΥΠΟΛΟΓΙΣΤΗ. ΚΕΦΑΛΑΙΟ 5: Γνωριμία με το λογιςμικό του υπολογιςτι

ΕΝΟΣΗΣΑ 1: ΓΝΩΡIΖΩ ΣΟΝ ΤΠΟΛΟΓΙΣΗ Ω ΕΝΙΑΙΟ ΤΣΗΜΑ. ΚΕΦΑΛΑΙΟ 2: Σο Εςωτερικό του Τπολογιςτι

Εργαστηριακή άσκηση στο μάθημα του Αυτομάτου Ελέγχου (ΜΜ803)

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

Ανάπτυξη Εφαρμογών Σε Προγραμματιςτικό Περιβάλλον

Εφαρμογέσ Μικροχπολογιςτών ςτισ Τηλεπικοινωνίεσ. Έλεγχοσ ςειριακήσ θφρασ του 8051 (Serial Port)

Joomla! - User Guide

ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ

Ειςαγωγι ςτο Arduino. Εκπαιδευτήσ: Λουκήσ Αγγελίδησ

Ονοματεπϊνυμο.. ΔΙΑΓΩΝΙΣΜΑ ΑΕΠΠ

Οδηγίεσ για τη ςφνδεςη του υπολογιςτή ςασ ςτουσ προβολείσ των αιθουςών Ι 1, Ι 2, Ι 3 και του 10 ου ορόφου

Εγχειρίδιο Χρήςησ Support

Για τθ μεταφορά του κϊδικα hex εγκακιςτοφμε το λογιςμικό ΜicroPro που τρζχει ςε λειτουργικό ςφςτ

ΕΦΑΡΜΟΓΖσ ΒΆΕΩΝ ΔΕΔΟΜΖΝΩΝ ΚΑΙ ΔΙΑΔΙΚΣΥΟΤ. Ειρινθ Φιλιοποφλου

Εγχειρίδιο Χρήςησ Προςωποποιημζνων Υπηρεςιών Γ.Ε.ΜΗ. (Εθνικό Τυπογραφείο)

1. Κατέβαςμα του VirtueMart

Διαδικαςία Προγράμματοσ Ωρομζτρθςθσ. (v.1.0.7)

Εγχειρίδιο Χρήςησ Προςωποποιημζνων Υπηρεςιών Γ.Ε.ΜΗ. (Εθνικό Τυπογραφείο)

Παράςταςη ςυμπλήρωμα ωσ προσ 1

Δομθμζνοσ Προγραμματιςμόσ. Βαγγζλθσ Οικονόμου Εργαςτιριο 9

Ιδιότθτεσ πεδίων Γενικζσ.

SingularLogic Application. Παραμετροποίηση Galaxy Application Server

Συςκευζσ τθλεπικοινωνιϊν και δικτφωςθσ:

Ένα πρόβλθμα γραμμικοφ προγραμματιςμοφ βρίςκεται ςτθν κανονικι μορφι όταν:

Α) Ενδεικτικϋσ απαντόςεισ των θεμϊτων

Αυτόνομοι Πράκτορες. Αναφορά Εργασίας Εξαμήνου. Το αστέρι του Aibo και τα κόκαλα του

GNSS Solutions guide. 1. Create new Project

Ραραμετροποίθςθ ειςαγωγισ δεδομζνων περιόδων

3 ΕΝΤΟΛΕΣ ΕΠΑΝΑΛΗΨΗΣ ( while, do while )

Εργαςτιριο Βάςεων Δεδομζνων

Αυτόματη δημιουργία στηλών Αντιστοίχηση νέων λογαριασμών ΦΠΑ

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

1 0 ΕΠΑΛ ΞΑΝΘΗ ΕΙΔΙΚΟΣΗΣΑ : ΗΛΕΚΣΡΟΝΙΚΩΝ ΕΙΔΙΚΗ ΘΕΜΑΣΙΚΗ ΕΡΓΑΙΑ Β ΗΛΕΚΣΡΟΝΙΚΩΝ ΘΕΜΑ : ΚΑΣΑΚΕΤΗ ΠΟΜΠΟΤ FM

Ποσοτικές Μέθοδοι Δρ. Χάϊδω Δριτσάκη

Ειδικά Θζματα Βάςεων Δεδομζνων

NH 2 R COOH. Σο R είναι το τμιμα του αμινοξζοσ που διαφζρει από αμινοξφ ςε αμινοξφ. 1 Πρωτεΐνες

ΑΝΑΠΣΤΞΘ ΕΦΑΡΜΟΓΩΝ Ε ΠΡΟΓΡΑΜΜΑΣΙΣΙΚΟ ΠΕΡΙΒΑΛΛΟΝ 3 ο ΓΕΝΙΚΟ ΛΤΚΕΙΟ Ν. ΜΤΡΝΘ- ΕΠΙΜΕΛΕΙΑ: ΠΤΡΙΔΑΚΘ Λ.

- Ανοίξτε τον προςομοιωτι ςτθν άςκθςθ «Generator» - Επιλζξτε τισ επιλογζσ που δίνονται και εξοικειωκείτε με τισ δυνατότθτεσ του προςομοιωτι.

ΡΥΘΜΙΕΙ για περιοριςμένο χρήςτη (limited user)

ΗΛΕΚΣΡΟΝΙΚΗ ΤΠΗΡΕΙΑ ΑΠΟΚΣΗΗ ΑΚΑΔΗΜΑΪΚΗ ΣΑΤΣΟΣΗΣΑ

ΚΤΚΛΩΜΑ RLC Ε ΕΙΡΑ (Απόκριςη ςε ημιτονοειδή είςοδο)

Γ' ΛΥΚΕΙΟΥ Η ΤΑΞΗ ΤΗΣ ΤΕΛΙΚΗΣ ΕΠΙΛΟΓΗΣ. Στθ ΓϋΛυκείου οι Ομάδεσ Προςανατολιςμοφ είναι τρεισ:

Τυπικζσ Γλϊςςεσ Περιγραφισ Υλικοφ Διάλεξθ 4

Πόςο εκτατό μπορεί να είναι ζνα μη εκτατό νήμα και πόςο φυςικό. μπορεί να είναι ζνα μηχανικό ςτερεό. Συνιςταμζνη δφναμη versus «κατανεμημζνησ» δφναμησ

ΕΡΓΑΣΗΡΙΑΚΗ ΑΚΗΗ 4.1

ΟΝΟΜΑΣΟΛΟΓΙΑ ΠΑΡΑΜΕΣΡΩΝ ΓΙΑ ΠΡΟΑΡΜΟΜΕΝΕ ΑΝΑΦΟΡΕ. παραμζτρου> (Εμφανίηεται ςαν Caption ςτθν φόρμα των φίλτρων).

1 Εγκατϊςταςη λογαριαςμού

Seventron Limited. Οδηγίες χρήσης EnglishOnlineTests.com

eorder Eγχειρίδιο Χρήσης

ΡΟΓΑΜΜΑΤΙΣΤΙΚΟ ΡΕΙΒΑΛΛΟΝ MICRO WORLDS PRO

Εγχειρίδιο Χριςθσ τθσ διαδικτυακισ εφαρμογισ «Υποβολι και παρακολοφκθςθ τθσ ζγκριςθσ Εκπαιδευτικών Πακζτων»

Μονάδες 6. Μονάδες ΓΑΨΕ Δεν υπάρχει ρίηα 2. ΑΝ Α>0 ΤΟΤΕ 3. ΤΕΛΟΣ_ΑΝ 4. ΑΛΛΙΩΣ 5. ίηα Τ_(Α)

Προγραμματιςμόσ Μεκόδων Επίλυςθσ Προβλθμάτων. 19. Αλφαριθμητικά II. Ιωάννθσ Κατάκθσ. ΕΠΛ 032: Προγραμματιςμόσ Μεκόδων Επίλυςθσ Προβλθμάτων

EUROPEAN TRADESMAN PROJECT

Οδηγίεσ προσ τουσ εκπαιδευτικοφσ για το μοντζλο του Άβακα

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

Megatron ERP Βάςη δεδομζνων Π/Φ - κατηγοριοποίηςη Databox

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

Εργαςτιριο Πικανοτιτων Σθμειϊςεισ προγραμματιςμοφ: βαςικζσ γνϊςεισ ανάπτυξθσ εφαρμογϊν. Κϊςτασ Αρβανιτάκθσ

Transcript:

1o ΕΠΑΛ- Ε.Κ. Συκεών -Τομζασ: Ηλεκτρονικισ, Ηλεκτρολογίασ και Αυτοματιςμοφ Εκπαιδευτικοί: Μπουλταδάκθσ Στζλιοσ Μαυρίδθσ Κωνςταντίνοσ Μάθημα: Αιςκθτιρεσ-Ενεργοποιθτζσ: Ζλεγχοσ STEPPER MOTOR Στόχοι: α) κατανόθςθ του προγραμματιςμοφ με κλάςεισ-βιβλιοκικεσ όπωσ θ Servo και με αντικείμενα τθσ κλάςθσ β) κατανόθςθ του τρόπου λειτουργίασ των βθματικϊν κινθτιρων Βιβλιογραφία: 1) Απόςτολοσ Σεργιάδθσ, Διπλωματικι Εργαςία, Τμιμα Ηλεκρολόγων Μθχανικϊν καιμθχανικϊν Η/Υ, ΕΜΠ, 2009 2) http://www.tigoe.com/pcomp/code/circuits/motors/stepper-motors/ 3) https://www.instructables.com/id/byj48-stepper-motor/ By Mohannad Rawashdeh in TechnologyArduino Τα Υλικά που θα χρειαςτοφμε: 1) Arduino board. 2) Ζνα βθματικό κινθτιρα BYJ48 Stepper Motor που λειτουργεί με 5 Volts 3) Τθν πλακζτα οδθγοφ ULN2003 Stepper Motor driver Module 4) Eνα βραχυκυκλωτιρα Jumper 5) Τροφοδοςία 5Volts ( voltage source "Optional"). Είναι προτιμότερθ θ εξωτερικι τροφοδοςία του μοτζρ με ςτακεροποιθμζνο τροφοδοτικό 5 Volts αντί τθσ παροχισ τροφοδοςίασ του Arduino UNO R3 Το Aντικείμενο τησ άςκηςησ: Α) εξοικείωςθ των μακθτϊν με προχωρθμζνεσ εντολζσ ςειριακισ επικοινωνίασ δεδομζνων μεταξφ του Arduino και των εφαρμογϊν ςε Η/Υ και πιο ςυγκεκριμζνα με τθν εφαρμογι: Serial Monitor από το περιβάλλον προγραμματιςμοφ του Arduino και με εφαρμογι που κα αναπτφξουν οι μακθτζσ με το λογιςμικό LabView B) εξοικείωςθ των μακθτϊν με τθ λειτουργία ενόσ βθματικοφ κινθτιρα και με τον ζλεγχο τθσ περιςτροφισ του κινθτιρα από το Arduino Βήμα 1 ο : Τι πρζπει να γνωρίηουμε: Οι βθματικοί κινθτιρεσ διαφζρουν από τουσ άλλουσ τφπουσ κινθτιρων ςυνεχοφσ και εναλλαςςομζνου ρεφματοσ ςτο ότι τροφοδοτοφνται με παλμοφσ και παράγουν θλεκτρικι κίνθςθ. Ο άξονασ τουσ δεν ζχει μια ςυνεχι περιςτροφικι κίνθςθ, αλλά περιςτρζφεται κατά μία γωνία κάκε φορά που δζχεται ζνα παλμό. Ζνασ βθματικόσ κινθτιρασ είναι ζνασ κινθτιρασ ελεγχόμενοσ από μια ςειρά θλεκτρομαγνθτικϊν ςπειρϊν. Ο κεντρικόσ άξονασ ζχει μια ςειρά από μαγνιτεσ προςαρμοςμζνουσ πάνω του και πθνία που τον περιβάλλουν. Στα πθνία δίδεται διαδοχικά θλεκτρικό ρεφμα ι όχι, δθμιουργϊντασ μαγνθτικά πεδία τα οποία απωκοφν ι ζλκουν τουσ μαγνιτεσ του άξονα, προκαλϊντασ τθν περιςτροφι του κινθτιρα. Αυτόσ ο ςχεδιαςμόσ επιτρζπει τον πολφ ακριβι ζλεγχο του κινθτιρα: με κατάλλθλθ παλμικι κίνθςθ, μπορεί να γυρίςει ςε πολφ ακριβι βιματα. Χρθςιμοποιοφνται ςε εκτυπωτζσ, δίςκουσ και άλλεσ ςυςκευζσ όπου απαιτείται ακριβισ μετακίνθςθ του κινθτιρα. Υπάρχουν δφο βαςικοί τφποι βθματικϊν κινθτιρων, οι μονοπολικοί βθματικοί κινθτιρεσ και οι διπολικοί βθματικοί κινθτιρεσ. Μονοπολικοί βηματικοί κινητήρεσ Ο μονοπολικόσ βθματικόσ κινθτιρασ ζχει πζντε ι ζξι ςφρματα και τζςςερα πθνία (ςτθν πραγματικότθτα δφο πθνία διαιροφμενα με κεντρικζσ ςυνδζςεισ ςε κάκε πθνίο). Οι κεντρικζσ ςυνδζςεισ των πθνίων ςυνδζονται μεταξφ τουσ και χρθςιμοποιοφνται ωσ ςφνδεςθ ρεφματοσ. Ονομάηονται μονοπολικά βθματικά, επειδι θ δφναμθ πάντα ζρχεται ςε αυτόν τον ζνα πόλο. 1

Διπολικοί βηματικοί κινητήρες Ο διπολικόσ βθματικόσ κινθτιρασ ζχει ςυνικωσ τζςςερα ςφρματα που εξζρχονται από αυτό. Σε αντίκεςθ με τουσ μονοπολικοφσ βθματικοφσ ςτακμοφσ, οι διπολικοί κινθτιρεσ δεν ζχουν κοινι κεντρικι ςφνδεςθ. Ζχουν δφο ανεξάρτθτα ςφνολα πθνίων. Από ηελ ηζηοζειίδα: http://89.22.98.13/pylog/pylog.py?disp=cnt/projects/shapeoko/turn+a+unipolar+into+a+bipolar+steper.txt Όπωσ και οι άλλοι κινθτιρεσ, οι βθματικοί κινθτιρεσ απαιτοφν περιςςότερθ ενζργεια από ό, τι μπορεί να τουσ δϊςει ζνασ μικροελεγκτισ, οπότε κα χρειαςτείτε ξεχωριςτό τροφοδοτικό για αυτό. Στθν ιδανικι περίπτωςθ κα γνωρίηετε τθν τάςθ από τον καταςκευαςτι. Για τθν οδιγθςθ-ζλεγχο των βθματικϊν κινθτιρων υπάρχουν πλακζτεσ-οδθγοί (drivers) ανάλογα με τον κινθτιρα και τα χαρακτθριςτικά λειτουργίασ του. Στο διαδίκτυο υπάρχει μεγάλθ ποικιλία οδθγϊν και βθματικϊν κινθτιρων που ςυνεργάηονται με τισ πλακζτεσ Arduino UNO όπωσ ενδεικτικά φαίνεται παρακάτω: Οδήγηςη μονοπολικοφ βηματικοφ κινητήρα: Τφποσ κινθτιρα: Unipolar Stepper Motor 28-BYJ48 που ςυνοδεφεται από τθν πλακζτα οδθγοφ Μονάδα οδθγοφ: ULN2003 Stepper Motor Driver (αν χρθςιμοποιιςουμε τον L293 driver κα αφιςουμε το κόκκινο καλϊδιο αςφνδετο) TΕΦΝΙΚΑ ΦΑΡΑΚΤΗΡΙΣΤΙΚΑ: Rated voltage 5VDC, Number of Phase 4, Speed Variation Ratio 1/64, Stride Angle 5.625 /64 Frequency 100Hz, DC resistance 50Ω±7%, Idle In-traction Frequency > 600Hz, 2

Idle Out-traction Frequency > 1000Hz, In-traction Torque >34.3mN.m(120Hz), Self-positioning Torque >34.3mN.m, Friction torque 600-1200 gf.cm, Pull in torque 300 gf.cm Υποιογηζκός βεκάηωλ γηα ηελ περηζηροθή Το κοηέρ έτεη έλα ιόγο γραλαδηώλ : Gear ratio=64 ελώ ε γωλία ποσ θάλεη ζε θάζε βήκα (Stride Angle)= 5.625 Επομζνωσ για να κάνει το μοτζρ 28-BYJ48 μια πλιρθ περιςτροφι χρειαηόμαςτε steps: steps in One Revolution = 360 / 5.625 = 64 steps = Number of steps in One Revolution * Gear ratio = 64 * 64 =4096 steps Οι παραπάνω υπολογιςμοί είναι διαφορετικοί αν ζχουμε ζναν άλλο βθματικό κινθτιρα όπωσ για παράδειγμα το adafruit Stepper Motor : Το κοηέρ ασηό έτεη έλα ιόγο γραλαδηώλ : Gear ratio=16 ελώ ε γωλία ποσ θάλεη ζε θάζε βήκα (Stride Angle)= 7.5 Επομζνωσ για να κάνει το adafruit Stepper Motor μια πλιρθ περιςτροφι χρειαηόμαςτε steps: steps in One Revolution = 360 / 7.5 = 48 steps = Number of steps in One Revolution * Gear ratio = 48 * 16 =768 steps 3

Στο τεχνικό εγχειρίδιο για το μοτζρ 28-BYJ48 προτείνεται θ οδιγθςθ μιςοφ-βιματοσ για τθν οποία θ διαδοχι των εντολϊν κίνθςθσ φαίνεται ςτο παρακάτω ςχιμα: Στον κϊδικα του Arduino τα παραπάνω βιματα φαίνονται ςτισ εντολζσ τθσ ςυνάρτθςθσ Stepper. Το τμιμα κϊδικα για τθν περιςτροφι του μοτζρ βαςίηεται ςτον προτεινόμενο κϊδικα από τον ιςτότοπο: https://www.instructables.com/member/mohannad+rawashdeh/ που είναι γραμμζνοσ από τον Mohannad Rawashdeh, 28/9/2013 Επιπλζον ζχουμε τροποποιιςει τον αρικμό των βθμάτων που κα κάνει ο κινθτιρασ ςφμφωνα με τθν εντολι: steps_left=rotations*steps_left_per_rev*flag; steps_left_per_rev = είναι ο αρικμόσ βθμάτων ανά περιςτροφι =4095 (δζσ παραπάνω) rotations= ο αρικμόσ των ςτροφϊν που ζρχονται από τισ εφαρμογζσ του Η/Υ μζςω ςειριακισ διαςφνδεςθσ ςτον Arduino flag= είναι μια ςθμαία που ανάλογα με τθν τιμι τθσ (1 ι 0) κάνει τον κινθτιρα να περιςτραφεί ι όχι Επίςθσ ζχουμε προςκζςει τθν αποςτολι του μθνφματοσ End of Rotation από τον Arduino ςτισ εφαρμογζσ του Η/Υ όταν ολοκλθρϊνεται θ περιςτροφι του κινθτιρα. Στθ ςυνζχεια δίνονται για ανάλυςθ με τουσ μακθτζσ αποςπάςματα κϊδικα που αφοροφν τον ζλεγχο τθσ ςειριακισ επικοινωνίασ μεταξφ του επικοινωνίασ δεδομζνων μεταξφ του Arduino και των εφαρμογϊν ςε Η/Υ: Εκκίνθςθ και ρυκμίςεισ ςειριακισ επικοινωνίασ // Ξεκινά τθ ςειριακι επικοινωνία: Serial.begin(9600); while (!Serial) { ; // και περιμζνει να ανοίξει θ κφρα: Αποςτολι ειςαγωγικοφ μθνφματοσ από τον Arduino ςτισ εφαρμογζσ του Η/Υ (θ επζκταςθ ln ςτθν εντολι SerialPrint ωκεί τθν εφαρμογι Serial Monitor να αλλάξει γραμμι): 4

Serial.println(); Serial.println("Give your orders for the stepper motor():"); Serial.println("F for forward/clockwise, B for backward/anti-clockwise"); Ανάγνωςθ ενόσ χαρακτιρα ςε κάκε loop από το ςυνολικό μινυμα που ζρχεται ςτθ κφρα USB του Arduino if (Serial.available() > 0) // αν φτάςει κάτι ςτθ ςειριακι κφρα { // το διαβάηει χαρακτιρα προσ χαρακτιρα και το κάνει ςυμβολοςειρά while(1) // επαναλαμβάνει ςυνεχώσ.. { incomingbyte = Serial.read(); //διαβάηει ζνα χαρακτιρα μετά τον άλλο μζχρι να ςυναντιςει //τουσ χαρακτιρεσ '\n\'=ascii(10)=line feed,ascii(13)=carriage Return // που ζρχονται με το τζλοσ κάκε μθνφματοσ από τον Η/Υ if (incomingbyte == '\n') // βγαίνει από το while(1) όταν ςυναντιςει '\n\' if (incomingbyte == -1) continue; // ςυνεχίηει ςτο while(1) αν δεν ειςαχκοφν χαρακτιρεσ // (θ ςειριακι κφρα επιςτρζφει -1) incomingserial=string(incomingserial+incomingbyte); // μετατρζπει τουσ χαρακτιρεσ που φτάνουν // ςε ςυμβολοςειρά (string) Εναλλακτικά, ανάγνωςθ ολόκλθρου του μθνφματοσ (String=πολλοίχαρακτιρεσ) μινυμα που ζρχεται ςτθ κφρα USB του Arduino if (Serial.available() > 0) { incomingserial= Serial.readString(); // αν φτάςει κάτι ςτθ ςειριακι κφρα // διάβαςε ολόκλθρο το μινυμα ( incoming data) as string Ζλεγχοσ του πρϊτου χαρακτιρα του μθνφματοσ που ιρκε από τισ εφαρμογζσ του Η/Υ if (!(incomingserial.startswith("f") incomingserial.startswith("b") incomingserial.startswith("s") )) { Serial.println("WRONG message. TRY AGAIN..."); Λιψθ ςυγκεκριμζνου τμιματοσ από το μινυμα που ιρκε από τθ ςειριακι κφρα: rotationsstring=incomingserial.substring(1); // παίρνει όλουσ τουσ χαρακτιρεσ μετά τον πρώτο Mετατροπι ενόσ αλφαρικμθτικοφ δεδομζνου ςε ακζραιο αρικμό: rotations=rotationsstring.toint(); Mετατροπι ενόσ αλφαρικμθτικοφ δεδομζνου ςε ακζραιο αρικμό με βάςθ τισ ιδιότθτεσ του πίνακα ASCII: rotations=0; len = rotationsstring.length(); for(i=0; i<len; i++) { rotations = rotations * 10 + ( rotationsstring[i] - '0' ); 5

Ο Συνολικόσ κϊδικασ που πρζπει να φορτωκεί ςτον Arduino είναι ο παρακάτω: // BYJ48 Stepper motor code Connect : IN1 >> D8 IN2 >> D9 IN3 >> D10 IN4 >> D11 VCC... 5V Prefer to use external 5V Source Gnd written By :Stelios Boultadakis, 03/03/2019 */ //====== stepper motor declarations ====== #define IN1 8 #define IN2 9 #define IN3 10 #define IN4 11 int Steps = 0; int Direction=1; int Flag; unsigned long last_time; unsigned long currentmillis ; float steps_left_per_rev=4095; //===== for motor BYJ48 float steps_left; long time; //======== serial control declarations ====== unsigned int integervalue=0; // Max value is 65535 int i, len; float result; int rotations=0; char incomingbyte; String directionstring; String rotationsstring; String incomingserial=""; // ' 'for one character and " " for multiple characters //================================================ void setup() { // ==== stepper motor control ==== pinmode(in1, OUTPUT); pinmode(in2, OUTPUT); pinmode(in3, OUTPUT); pinmode(in4, OUTPUT); // Open serial communications and wait for port to open: Serial.begin(9600); while (!Serial) { ; // wait for serial port to connect. Needed for native USB port only // end of while Serial.println("Hello from Arduino... F(for clockwise) or B(for counterclockwise) followed by the number of rotations.. or S to Stop the program.."); //this command is necessary fro the installation of serial communication: Serial.println(); // end of setup //===================== Order for the stepper motor direction ======================== void SetDirection(){ if(direction==1){ Steps++; //Clockwise rotation if(direction==0){ Steps--; //Counterclockwise rotation if(steps>7){steps=0; if(steps<0){steps=7; 6

//==== declare functions before loop because an error declare function was found during compilation ====== void stepper(int xw){ for (int x=0;x<xw;x++){ SetDirection(); switch(steps){ case 0: digitalwrite(in4, HIGH); case 1: digitalwrite(in3, HIGH); digitalwrite(in4, HIGH); case 2: digitalwrite(in3, HIGH); case 3: digitalwrite(in2, HIGH); digitalwrite(in3, HIGH); case 4: digitalwrite(in2, HIGH); case 5: digitalwrite(in1, HIGH); digitalwrite(in2, HIGH); case 6: digitalwrite(in1, HIGH); case 7: digitalwrite(in1, HIGH); digitalwrite(in4, HIGH); default: 7

//===================================================================================== void loop() { Flag=1; if (Serial.available() > 0) { // something came across serial incomingserial= Serial.readString();// read the incoming data as string Serial.println( incomingserial); //****************** if (!(incomingserial.startswith("f") incomingserial.startswith("b") incomingserial.startswith("s") )) { Serial.println("WRONG message. TRY AGAIN..."); Flag=0; // αν ο πρϊτοσ χαρακτιρασ δεν είναι F, B ι S τότε θ μεταβλθτι rotations γίνεται 0 // continue; rotationsstring=incomingserial.substring(1); // takes all characters after the first // convert rotations from String to Integer rotations=rotationsstring.toint(); if (incomingserial.startswith("f")){ Direction=0; if (incomingserial.startswith("b")){ Direction=1; if (incomingserial.startswith("s")){ Serial.println("Stops program..."); return; incomingserial=""; //clears input String after reading completion //========================= STEPPER MOTOR ROTATIONS ============= steps_left=rotations*steps_left_per_rev*flag; // Serial.println("steps_left"); // Serial.println(round(steps_left)); while(steps_left>0){ currentmillis = micros(); if(currentmillis-last_time>=1000){ stepper(1); time=time+micros()-last_time; last_time=micros(); steps_left--; Serial.println("End of Rotation..."); // END IF Serial.available() > 0 //================================================================ // end of loop 8

Στθ παρακάτω εικόνα δίνεται ο κϊδικασ ςε LabView: 9

Προτείνεται επίςθσ να οριςτεί μια ςτακερι και μεγάλθ τιμι ςτθν ιδιότθτα Device Timeout ( 100 sec) ϊςτε να μθν εμφανίηεται μινυμα ςφάλματοσ όταν ζχει δοκεί μεγάλοσ αρικμόσ ςτροφϊν ςτον κινθτιρα οπότε λόγω τθσ αργισ ταχφτθτασ περιςτροφισ του, αργεί ο Arduino να αποςτείλει μινυμα ολοκλιρωςθσ ςτο LabView. Για να αποςταλεί το μινυμα τθσ Εντολισ Περιςτροφισ κα πρζπει αρχικά να ζχουμε κάνει ΟΝ το αντίςτοιχο κουμπί. Στισ ρυκμίςεισ τθσ ςειριακισ κφρασ ςτο LabView δθλϊςαμε ότι το τζλοσ των μθνυμάτων δίνεται με τθν εντολι /n ι Dec(10) που ςθμαίνει τζλοσ γραμμισ Παρακάτω υπάρχει μια φωτογραφία τθσ εφαρμογισ Παρακολοφκθςθσ Σειριακισ Θφρασ (Serial Monitor) ςτο περιβάλλον προγραμματιςμοφ του Arduino που φαίνονται τα μθνφματα που ανταλλάςςονται. Προςοχι και ςτο Serial Monitor πρζπει να επιλζξουμε τθν Αλλαγή γραμμήσ κακϊσ και τθν ίδια ταχφτθτα τθσ ςειριακισ επικοινωνίασ μεταξφ του Arduino και των εφαρμογϊν που τρζχουν κάκε φορά ςτον Η/Υ. ΚΑΛΗ ΕΠΙΤΥΧΙΑ Αρχεία δοκιμϊν 1) LabView_Comm_Arduino_Stepper-Motor_BYJ48_4_STELIOS.ino 2) Labview_Arduino_Serial_Comm_without Loop_5.vi 10