Καβάλα, / /2010 Εγκρίνεται η Πτυχιακή Εργασία Ο επιβλέπων Καθηγητής οϊλεμές Ανδρέας Η Εξεταστική Επιτροπή 1. οϊλεμές Ανδρέας 2. Ναλμπάντης τέφανος 3. Σ.Ε.Ι. Καβάλας. χολή Σεχνολογικών Εφαρμογών. Σμήμα Ηλεκτρολογίας. ελ. 1
Ευχαριστίες Θα θέλαμε να ευχαριστήσουμε τον Καθηγητή του Σ.Ε.Ι. Καβάλας κο οϊλεμε Ανδρέα για την καθοδήγηση που μας παρείχε και την αμέριστη και έμπρακτη συμπαράστασή του στα προβλήματα που αντιμετωπίσαμε. Επίσης θα θέλαμε να ευχαριστήσουμε το φίλο μας Σαγγόπουλο Βασίλειο για τη βοήθειά του. Σέλος θα θέλαμε να ευχαριστήσουμε ιδιαίτερα τους αγαπημένους μας γονείς που σε όλες τις στιγμές της ζωής μας είναι δίπλα μας και με τη μοναδική τους αγάπη και την έμπρακτη συμπαράστασή τους μας βοηθάνε έτσι ώστε να πετύχουμε τους στόχους που έχουμε θέσει στη ζωή μας. Καρατζίβας Βασίλειος Φατζηπέτρου Αναστάσιος Σ.Ε.Ι. Καβάλας. χολή Σεχνολογικών Εφαρμογών. Σμήμα Ηλεκτρολογίας. ελ. 2
Σ.Ε.Ι. Καβάλας. χολή Σεχνολογικών Εφαρμογών. Σμήμα Ηλεκτρολογίας. ελ. 3
Σ.Ε.Ι. Καβάλας. χολή Σεχνολογικών Εφαρμογών. Σμήμα Ηλεκτρολογίας. ελ. 4
κοπός της πτυχιακής κοπός της πτυχιακής είναι να δημιουργηθεί ένα αυτόματο σύστημα μέτρησης και απεικόνισης θερμοκρασίας. Τπεύθυνος για αυτές τις μετρήσεις είναι ένας μικροελεγκτής AVR, όπου ταυτόχρονα θα μεταφέρει τις μετρήσεις αυτές σε μια οθόνη LCD. Δομή της πτυχιακής Σο σύστημά μας αποτελείται από έναν μικροεπεξεργαστή AVR, μια οθόνη LCD και ένα Battery Pack. Σο σύστημα απεικονίζει τη θερμοκρασία στην οποία βρίσκεται ο αισθητήρας του και την προβάλλει σε LCD οθόνη. Υυσικά, ανάλογα με τη χρήση του αισθητήρα, είναι δυνατή η μέτρηση της θερμοκρασίας οποιουδήποτε μέσου. Σ.Ε.Ι. Καβάλας. χολή Σεχνολογικών Εφαρμογών. Σμήμα Ηλεκτρολογίας. ελ. 5
Ο επεξεργαστής προγραμματίζεται με τη βοήθεια του AVR Dragon μέσω JTAG. Η διαχείριση του AVR Dragon γίνεται από τον προσωπικό υπολογιστή με τη βοήθεια της εφαρμογής AVR Studio. το Κεφάλαιο 2 αναπτύσσουμε κάποια γενικά στοιχεία για την θερμοκρασία και τους τρόπους μέτρησης της. το Κεφάλαιο 3 παρουσιάζουμε το AVR Butterfly. Πρόκειται για ένα ολοκληρωμένο σύστημα της εταιρίας Atmel που μας βοήθησε να κατανοήσουμε τον τρόπο προγραμματισμού ενός μικροεπεξεργαστή. Επίσης αναπτύσουμε την λειτουργία του AVR Dragon και τους τρόπους με τους οποίους συνδέεται η πλακέτα μας με αυτό και με την σειρά του με τον ηλεκτρονικό υπολογιστή έτσι ώστε να κατεβάσουμε και να τρέξουμε το πρόγραμμα μας. το Κεφάλαιο 4 γίνεται αναλυτική αναφορά στον μικροελεγκτή μας, τον Atmega128, στο αισθητήριο θερμοκρασίας, το LM35dz, και στην οθόνη LCD που χρησιμοποιήσαμε για να προβάλουμε τις μετρήσεις μας. το Παράρτημα I έχουμε το διάγραμμα ροής του προγράμματος. το Παράρτημα II έχουμε τον κώδικα του κυρίως προγράμματος και της υπορουτίνας της LCD οθόνης. Σ.Ε.Ι. Καβάλας. χολή Σεχνολογικών Εφαρμογών. Σμήμα Ηλεκτρολογίας. ελ. 6
Σ.Ε.Ι. Καβάλας. χολή Σεχνολογικών Εφαρμογών. Σμήμα Ηλεκτρολογίας. ελ. 7
2.1 Γενικά Η θερμοκρασία είναι η φυσική ιδιότητα που βασικά προσδιορίζει τις έννοιες του ζεστού και του κρύου. Για παράδειγμα, το σώμα με την μεγαλύτερη θερμοκρασία έναντι άλλου ή άλλων λέγεται θερμότερο (πιο ζεστό). Η θερμοκρασία στη πράξη είναι ακριβώς το μέτρο εκείνο με το οποίο προσδιορίζεται η "θερμική κατάσταση" των διαφόρων σωμάτων, είναι δηλαδή ένα φυσικό μεγεθος που συνδέεται με την μέση κινητική ενέργεια των σωματιδίων ενός συστατικού, το οποίο και χαρακτηρίζει πόσο θερμό ή πόσο ψυχρό είναι αυτό. Σο θερμόμετρο του Γαλιλαίου. Σο Πρώτο θερμόμετρο. Σ.Ε.Ι. Καβάλας. χολή Σεχνολογικών Εφαρμογών. Σμήμα Ηλεκτρολογίας. ελ. 8
Η θερμοκρασία μετριέται με ειδικά όργανα που λέγονται θερμόμετρα, η λειτουργία των οποίων βασίζεται στο φαινόμενο της διαστολής ή συστολής ως αποτέλεσμα παροχής ή αφαίρεσης της θερμότητας. Αλλά και η μεταβολή της θερμοκρασίας (ύψωση ή υποβιβασμός) είναι επίσης αποτέλεσμα της παροχής ή αφαίρεσης της θερμότητας. Έτσι με την παρατήρηση της διαστολής ή συστολής του υδραργύρου, που χρησιμοποιείται συνήθως στα θερμόμετρα, διαπιστώνεται και η μεταβολή της θερμοκρασίας η οποία αναγνώσκεται στη κατάλληλα βαθμολογημένη σε βαθμούς θερμοκρασίας κλίμακα του θερμομέτρου. Γενικώς τα θερμόμετρα διακρίνονται σε "κοινά" ή "υδραργυρικά" και σε "θερμόμετρα οινοπνεύματος" (για χαμηλότερες θερμοκρασίες). Φρησιμοποιούνται επίσης και "ηλεκτρικά θερμόμετρα" που βασίζονται στην αρχή του θερμοηλεκτρικού στοιχείου, επίσης τα "οπτικά" ή ηλεκτρικά "πυρόμετρα" καθώς και άλλα ειδικών κατηγοριών. Η βαθμολογία των θερμομέτρων γίνεται σε βαθμούς Celsiou (Κελσίου) ο C, στο μετρικό σύστημα, και σε βαθμούς Farenhait (Υαρενάιτ) ο F, στο αγγλικό σύστημα. Σ.Ε.Ι. Καβάλας. χολή Σεχνολογικών Εφαρμογών. Σμήμα Ηλεκτρολογίας. ελ. 9
Πίνακας αναλογιών μεταξύ Κέλβιν, Κελσίου και Υαρενάιτ. το θερμόμετρο Κελσίου το μηδέν της κλίμακας (0 C) αντιστοιχεί στη θερμοκρασία τήξεως του πάγου, το δε 100 C στη θερμοκρασία βρασμού του ύδατος. Η ενδιάμεση αυτών απόσταση υποδιαιρείται σε 100 ίσα μέρη που καλούνται "βαθμοί Κελσίου". το θερμόμετρο Υαρενάιτ η θερμοκρασία τήξεως του πάγου αντιστοιχεί στους 32 F, η δε θερμοκρασία βρασμού στους 212 F. Σο ενδιάμεσο αυτών διάστημα υποδιαιρείται σε 180 ίσα μέρη που καλούνται βαθμοί Υαρενάιτ. Σ.Ε.Ι. Καβάλας. χολή Σεχνολογικών Εφαρμογών. Σμήμα Ηλεκτρολογίας. ελ. 10
Οι ενδείξεις της Κλίμακας Kelvin (απόλυτη θερμοκρασία) προέρχονται αμέσως από την κλίμακα Celsius, προσθέτοντας στην ενδεικτική τιμή την αξία διακόσια εβδομήντα τρία (273). Κι αυτό γιατί το απόλυτο μηδέν (της κλίμακας Kelvin) είναι το αντίστοιχο μείον διακόσια εβδομήντα τρία της κλίμακας Celsius (- 273 C). Οπότε έχουμε του εξής τρεις τύπους: C = (F - 32)/1,8 F = 1,8 C + 32 K = (C + 273) Σ.Ε.Ι. Καβάλας. χολή Σεχνολογικών Εφαρμογών. Σμήμα Ηλεκτρολογίας. ελ. 11
2.2 Αισθητήρια θερμοκρασίας Δεν υπάρχει ίσως άλλη κατηγορία αισθητηρίων που χρησιμοποιούνται στη βιομηχανία, για την οποία να υπάρχει τόση ποικιλία οργάνων σε σχετικά χαμηλές τιμές, όσο αυτή των αισθητηρίων θερμοκρασίας. Ο έλεγχος της θερμοκρασίας είναι επιθυμητός σε πολλές εφαρμογές και γι αυτό θα προσπαθήσουμε να δώσουμε μια εικόνα του φάσματος των οργάνων που χρησιμοποιούνται για την μέτρηση της. Έτσι έχουμε τις εξής κατηγορίες: Σ.Ε.Ι. Καβάλας. χολή Σεχνολογικών Εφαρμογών. Σμήμα Ηλεκτρολογίας. ελ. 12
A. Θερμόμετρα υγρού Είναι τα αρχαιότερα θερμόμετρα που όμως και σήμερα χρησιμοποιούνται σε πολλές εφαρμογές λόγω κυρίως του χαμηλού κόστους τους. Δεν κρίνεται σκόπιμο να αναλυθεί η λειτουργία τους μιας και αυτή είναι απλή αλλά και αρκετά γνωστή. Σο πρόβλημα με τα θερμόμετρα υγρού είναι ότι δεν μπορούν εύκολα να χρησιμοποιηθούν σαν αισθητήρια σε ένα σύστημα αυτομάτου ελέγχου ούτε να δώσουν τη μέτρηση σε Η/Τ, παρά το ότι έχουν γίνει προσπάθειες και υπάρχουν κάποιοι τύποι κατάλληλοι γι αυτό το σκοπό. Β. Αισθητήρια θερμοκρασίας διμεταλλικού τύπου Η δεύτερη αυτή κατηγορία αισθητηρίων θερμοκρασίας, στηρίζουν την λειτουργία τους στο φυσικό φαινόμενο της διαστολής των μετάλλων. Πιο συγκεκριμένα στην ιδιότητα ενός διμεταλλικού ελάσματος ( έλασμα αποτελούμενο από δύο συγκολλημένα μεταξύ τους ελάσματα ) να κάμπτεται με την αύξηση της θερμοκρασίας. Σ.Ε.Ι. Καβάλας. χολή Σεχνολογικών Εφαρμογών. Σμήμα Ηλεκτρολογίας. ελ. 13
Σα ελάσματα πρέπει να είναι από υλικά με διαφορετικούς συντελεστές θερμικής διαστολής και η κάμψη οφείλεται ακριβώς σ αυτή την ανισοτροπία του διμεταλλικού ελάσματος όσον αφορά την διαστολή του. Γ. Θερμίστορ Σα θερμίστορ κατασκευάζονται από οξείδια μετάλλων όπως νικελίου, μαγγανίου, ουρανίου, σιδήρου, κοβαλτίου και χαλκού και έχουν χαρακτηριστικά ημιαγωγών. αν αισθητήρια θερμοκρασίας η λειτουργία τους στηρίζεται στην μεταβολή της ηλεκτρικής αντίστασης τους λόγω μεταβολής της θερμοκρασίας. Αυτά διαχωρίζονται με την σειρά τους στα NTC και στα PTC. την εργασία μας θα χρησιμοποιήσουμε τα NTC διότι τα θερμίστορ τύπου PTC δεν χρησιμοποιούνται για μετρήσεις. Σο πλεονέκτημα των NTC είναι η μεγάλη ευαισθησία που έχουν σε μεταβολές της θερμοκρασίας. ε αντίθεση με τους μεταλλικούς αγωγούς, παρουσιάζουν μείωση της αντίστασης με την αύξηση της θερμοκρασίας. υνηθισμένα θερμίστορς έχουν αντίσταση της τάξης των 100 Ω σε υψηλές θερμοκρασίες και εκατοντάδες megaohms σε Σ.Ε.Ι. Καβάλας. χολή Σεχνολογικών Εφαρμογών. Σμήμα Ηλεκτρολογίας. ελ. 14
χαμηλές θερμοκρασίες. Σα θερμίστορς χρησιμοποιούνται σε όλο και περισσότερες εφαρμογές καθώς το κόστος τους πέφτει και η αξιοπιστία τους ανεβαίνει. Δ. Θερμοζεύγη Μία άλλη κατηγορία είναι τα θερμοζεύγη. Η αρχή λειτουργίας τους βασίζεται στο θερμοηλεκτρικό φαινόμενο (seebeck). Όταν δύο συρματίδια από διαφορετικά υλικά ενώνονται σε δύο διαφορετικά σημεία (επαφές) έτσι που να σχηματίζεται βρόχος μεταξύ των επαφών και αυτές δε έχουν διαφορετική θερμοκρασία, αναπτύσσεται τάση μεταξύ τους που είναι ευθέως ανάλογη της διαφοράς θερμοκρασίας τους. Οι αναπτυσσόμενες τάσεις είναι της τάξης των μιλιβόλτς (mv) και συνεπώς απαιτούνται ευαίσθητα ηλεκτρονικά για τη σωστή μέτρηση τους. Ακόμη για να είναι δυνατή η μέτρηση της θερμοκρασίας πρέπει να υπάρχει μια άλλη θερμοκρασία αναφοράς. Σ.Ε.Ι. Καβάλας. χολή Σεχνολογικών Εφαρμογών. Σμήμα Ηλεκτρολογίας. ελ. 15
Ε. Αισθητήρια θερμοκρασίας με αντίσταση Σα αισθητήρια αυτά είναι διεθνώς γνωστά ως RTD (Resistance Temperature Detector). Αποτελούνται από μέταλλα ή κράματα των οποίων η αντίσταση μεταβάλλεται με την θερμοκρασία. Η μεταβολή της αντίστασης από κατασκευής τους δεν είναι γραμμική. Μέσα όμως σε μία θερμοκρασιακή περιοχή είναι γραμμική με αρκετή προσέγγιση ιδίως για τον λευκόχρυσο. Σα μέταλλα που χρησιμοποιούνται κυρίως σαν RDT είναι: Ο χαλκός Ο λευκόχρυσος Σο νικέλιο Σο βολφράμιο Σα βασικά χαρακτηριστικά ενός RTD είναι: Η ονομαστική αντίσταση (σε 0 C) Περιοχή θερμοκρασίας μέτρησης Φρόνος απόκρισης Ευστάθεια διάρκειας Σ.Ε.Ι. Καβάλας. χολή Σεχνολογικών Εφαρμογών. Σμήμα Ηλεκτρολογίας. ελ. 16
Για να μπορέσουμε να μπούμε στο νόημα του προγραμματισμού ασχοληθήκαμε εντατικά με το AVR Butterfly, με αποτέλεσμα να μπορούμε να πούμε πλέον ότι έχουμε τις βασικές γνώσεις στην δημιουργία προγράμματος. Επίσης σημαντική ήταν και η συμβολή των προγραμμάτων AVR Studio και WinAvr στο κατέβασμα των προγραμμάτων από τον υπολογιστή στο AVR Butterfly. Σο AVR Butterfly είναι ένα αυτόνομο σύστημα που τροφοδοτείται με μία μπαταρία των 3.3 V. Έχει δημιουργηθεί από την εταιρία Σ.Ε.Ι. Καβάλας. χολή Σεχνολογικών Εφαρμογών. Σμήμα Ηλεκτρολογίας. ελ. 17
ATMEL και χρησιμοποιείται για να μας παρουσιάσει τον μικροελεγκτή ATmega 169PV. Σα μέρη από τα οποία αποτελείται είναι τα εξής: επεξεργαστής ATmega 169PV οθόνη υγρών κρυστάλλων (LCD) ηχείο joystick ρολόι εσωτερική μνήμη αισθητήρας θερμοκρασίας κύκλωμα για μέτρηση τάσης Σ.Ε.Ι. Καβάλας. χολή Σεχνολογικών Εφαρμογών. Σμήμα Ηλεκτρολογίας. ελ. 18
Ο επεξεργαστής Atmega169PV είναι ικανός να αναπτύξει ταχύτητες έως 8 MHz, ωστόσο είναι ρυθμισμένος από το εργοστάσιο να φτάνει ταχύτητες ύψους 2 MHz έτσι ώστε η μπαταρία να έχει μεγαλύτερη διάρκεια ζωής. Σο εγκατεστημένο πρόγραμμα bootloader που έχει, επιτρέπει στους χρήστες να το προγραμματίζουν εκ νέου μέσω διάφορων συνδεσμολογιών. Σέτοιες συνδεσμολογίες είναι οι εξής: RS-232 JTAG ISP Η οθόνη υγρών κρυστάλλων (LCD) μπορεί να προβάλει μέχρι και 6 αλφαριθμητικούς χαρακτήρες των 14 τμημάτων ανά χαρακτήρα. Σο αισθητήριο που χρησιμοποιεί είναι ένα θερμίστορ της εταιρίας Bookham. Σ.Ε.Ι. Καβάλας. χολή Σεχνολογικών Εφαρμογών. Σμήμα Ηλεκτρολογίας. ελ. 19
ΤΛΙΚΑ ΠΟΤ ΦΡΗΙΜΟΠΟΙΗΑΜΕ 1. battery pack 2. μία καλωδιοταινία των 10 καλωδίων 3. δυο clips headers 4. ένα αρσενικό RS 232 5. ένα led 6. ένα διακόπτη on-off Σ.Ε.Ι. Καβάλας. χολή Σεχνολογικών Εφαρμογών. Σμήμα Ηλεκτρολογίας. ελ. 20
ΑΝΑΛΤΗ ΤΛΙΚΩΝ 1. Βattery pack: Είναι ένα πακέτο μπαταριών οποιουδήποτε αριθμού (κατά προτίμηση) ίδιων μπαταριών ή μεμονωμένων. Μπορούν να διαμορφωθούν σε σειρά, παράλληλα η και τα δύο για να μας δώσουν την επιθυμητή τάση. 2. Καλωδιοταινία: Εύκαμπτα καλώδια πολυκαλώδια για εσωτερική σύνδεση πλακετών σε ηλεκτρονικές συσκευές. Σ.Ε.Ι. Καβάλας. χολή Σεχνολογικών Εφαρμογών. Σμήμα Ηλεκτρολογίας. ελ. 21
3. Clip headers: Είναι σύνδεσμοι οι οποίοι κουμπώνουν στη καλωδιοτανία για να μπορέσουν να συνδεθούν με το Βatterfly και το AVR DRAGON. 4. RS-232: Είναι ένα πρότυπο για σειριακή μετάδοση δυαδικών σημάτων δεδομένων. Φρησιμοποιείται συχνά στις σειριακές θύρες των προσωπικών υπολογιστών. Σ.Ε.Ι. Καβάλας. χολή Σεχνολογικών Εφαρμογών. Σμήμα Ηλεκτρολογίας. ελ. 22
5. Led: Είναι ένας ημιαγωγός ο οποίος εκπέμπει φωτεινή ακτινοβολία στενού φάσματος όταν του παρέχεται μία ηλεκτρική τάση κατά τη φορά ορθής πόλωσης (forwardbiased). Σ.Ε.Ι. Καβάλας. χολή Σεχνολογικών Εφαρμογών. Σμήμα Ηλεκτρολογίας. ελ. 23
Σο χρώμα του φωτός που εκπέμπεται εξαρτάται από την χημική σύσταση του ημιαγώγιμου υλικού που χρησιμοποιείται, και μπορεί να είναι υπεριώδεις, ορατό η υπέρυθρο. 6. Διακόπτης on/off: Σο χρησιμοποιούμε όταν θέλουμε να έχουμε σε ενεργή κατάσταση το butterfly ή σε κατάσταση μη λειτουργίας. Σ.Ε.Ι. Καβάλας. χολή Σεχνολογικών Εφαρμογών. Σμήμα Ηλεκτρολογίας. ελ. 24
Η εταιρεία Atmel έχει κατασκευάσει στο παρελθόν πολλά αναπτυξιακά εργαλεία,τα οποία βοηθούν στο προγραμματισμό (programming) των μικροελεγκτών και στην αποσφαλμάτωση (debugging) του προγράμματος.μερικά που παρουσιάστηκαν στο Σ.Ε.Ι. Καβάλας. χολή Σεχνολογικών Εφαρμογών. Σμήμα Ηλεκτρολογίας. ελ. 25
παρελθόν είναι: STK600 starter kit,stk500 starter kit, AVR ISP and AVR ISP mmkii, AVR Dragon, JTAGICE mki and mkii. υγκεκριμένα εμείς ασχοληθήκαμε με το AVR Dragon και προγραμματίσαμε με το πρωτόκολλο JTAG. Ας δούμε όμως τι μας προσέφερε αύτο το αναπτυξιακό εργαλείο. Σο AVR Dragon είναι ένα αναπτυξιακό εργαλείο που λειτουργεί και ως προγραμματιστής και ως αποσφαλματωτής, με το οποίο η κατασκευάστρια εταιρία (Atmel) εξαιτίας της χαμηλής τιμής του έθεσε νέα μέτρα στην αγορά αναπτυξιακών εργαλείων. Σο Dragon υποστηρίζει όλους τους τρόπους προγραμματισμού των με της οικογένειας των AVR καθώς και εμπεριέχει ολοκληρωτική προσομοίωση για τους με με 32kB ή μικρότερη Flash Memory. Επίσης το μόνιμο πρόγραμμα του λογισμικού του (firmware) παράλληλα με το πρόγραμμα της Atmel, AVR Studio, μπορεί να αναβαθμιστεί πολύ εύκολα και σχεδόν αυτόματα με την σύνδεση του Dragon στο PC. Τποστηρίζει μεγάλο μέρος των με AVR αρκετούς από κάθε κατηγορία. Σ.Ε.Ι. Καβάλας. χολή Σεχνολογικών Εφαρμογών. Σμήμα Ηλεκτρολογίας. ελ. 26
Device ISP HVSP PP JTAG JTAG dw Mega parts ATmega8515 x x ATmega8535 x x ATmega48(P) ATmega88(P) ATmega168(P) x x x ATmega328P ATmega8 x x ATmega16 x x x x ATmega164P ATmega324P ATmega644(P) ATmega1284P x x x x x x x ATmega162 x x x x ATmega32 x x x x ATmega32C1 x x x x ATmega32M1 x x x x ATmega32U4 x x x x ATmega64 x x x ATmega128 x x x ATmega640 x x x ATmega1280 x x x ATmega1281 x x x ATmega2560 x x x ATmega2561 x x x ATmega165(P) ATmega169(P) x x x x ATmega325(P) x x x x Σ.Ε.Ι. Καβάλας. χολή Σεχνολογικών Εφαρμογών. Σμήμα Ηλεκτρολογίας. ελ. 27
ATmega329(P) ATmega3250(P) ATmega3290(P) ATmega645 ATmega649 ATmega6450 x x x ATmega6490 ATmega406 x x Σα πρωτόκολλα που διαθέτει το Dragon και μπορούμε να χρησιμοποιήσουμε είναι τα εξής: Σρόποι προγραμματισμού: ISP ειριακός Προγραμματισμός Παράλληλος Προγραμματισμός JTAG Σ.Ε.Ι. Καβάλας. χολή Σεχνολογικών Εφαρμογών. Σμήμα Ηλεκτρολογίας. ελ. 28
Βγάζοντας το AVR Dragon από την συσκευασία του βλέπουμε τις θέσεις που μπορούμε να συνδέσουμε την πηγή μας. Οι θέσεις που είναι έτοιμες προς άμεση χρήση είναι οι εξής: ISP Header JTAG Header VCC Header Έτοιμες θέσεις του AVR Dragon Σ.Ε.Ι. Καβάλας. χολή Σεχνολογικών Εφαρμογών. Σμήμα Ηλεκτρολογίας. ελ. 29
Τπάρχουν και θέσεις οι οποίες δεν έτοιμες προς χρήση αλλά είναι εύκολο να τις χρησιμοποιήσουμε τοποθετώντας τα κατάλληλα εξαρτήματα. Ας δούμε πιο αναλυτικά την θέση που χρησιμοποιήσαμε. Η θέση JTAG αποτελείται από 10 pins και συνήθως χρησιμοποιούμε μια καλωδιοταινία με ακροδέκτες IDC- 10. Η αντιστοιχία των pin φαίνεται παρακάτω: ύνδεση JTAG Pins Signal I/O Description 1 TCK Output Δοκιμή ρολογιού 2 GND - Γείωση 3 TDO Input Έλεγχος δεδομένων εξόδου 4 VTref Input Εξισορρόπιση τάσης πλακέτας 5 TMS Output Test Mode Select 6 n SRST Input/Output Open Collector Output 7 - - Μη συνδεμένη 8 - - Μη συνδεμένη 9 TDI Output Έλεγχος δεδομένων εισόδου 10 GND - Γείωση Σ.Ε.Ι. Καβάλας. χολή Σεχνολογικών Εφαρμογών. Σμήμα Ηλεκτρολογίας. ελ. 30
Όταν συνδέουμε τo Dragon με την πηγή που θέλουμε να προγραμματίσουμε οι τάσεις μετατρέπονται ώστε να είναι ίδιες με αυτές της πηγής. Αυτό γίνεται αυτόματα. Όμως η τροφοδοσία της πηγής μας δεν εκπληρώνεται μέσω του καλωδίου του JTAG.Πρέπει να συνδέσουμε την πλακέτα μας με το VCC Connector και το Ground που βρίσκονται πάνω ακριβώς από το JTAG.Αν χρησιμοποιήσουμε εξωτερική τροφοδοσία για την πηγή μας πρέπει να την συνδεσουμε στο pin 4 του JTAG ώστε να την μετατρέψει (level-converter). Ένα ακόμα σημείο που είναι πολύ σημαντικό ώστε να γνωρίζουμε τι συμβαίνει στο Dragon όταν το χρησιμοποιούμε είναι τα λαμπάκια κατάστασης (Status LEDs).Παρακάτω βλέπουμε τον πίνακα που θα μας βοηθήσει να καταλάβουμε τις λειτουργίες του Dragon. Σ.Ε.Ι. Καβάλας. χολή Σεχνολογικών Εφαρμογών. Σμήμα Ηλεκτρολογίας. ελ. 31
LED Color Description 2 Πράσινο ύνδεση με USB 1 Κόκκινο Αναβοσβήνει, δεν έχει συνδεθεί με το AVR Studio. κούρο Πράσινο Αναβοσβήνει, έχει συνδεθεί με το AVR Studio. Μεταφορά δεδομένων. Κίτρινο Αναβάθμιση λογισμικού ή αρχικοποίηση κατάστασης. ύνδεση στο PC Σο πιο σημαντικό πλεονέκτημα του Dragon είναι το γεγονός ότι η σύνδεση του με τον υπολογιστή γίνεται μέσω της θύρας USB, η οποία είναι πολύ διαδεδομένη και υπάρχει σχεδόν σε όλους τους σύγχρονους υπολογιστές. Αυτά που χρειαζόμαστε για να ξεκινήσουμε είναι τα εξής: Σ.Ε.Ι. Καβάλας. χολή Σεχνολογικών Εφαρμογών. Σμήμα Ηλεκτρολογίας. ελ. 32
Κατεβάζουμε και εγκαθιστούμε στο PC το AVR Studio (4.XX) και προσέχουμε στην εγκατάσταση να συμπεριελάβουμε το USB Driver ώστε το Dragon να είναι πλήρως αναγνωρίσιμο. υνδέουμε το Dragon στον υπολογιστή και το αφήνουμε να εγκατασταθεί (συνήθως γίνεται αυτόματα). Ανοίγουμε το AVR Studio που έχουμε στην διάθεση μας. Σέλος μπορούμε να συνδέσουμε το Dragon στην πλακέτα μας. Σέλος πρέπει να πούμε οτι το Dragon δεν κατασκευάστηκε για να δουλεύει μόνο με έτοιμα κυκλώματα αλλά έχουμε και την δυνατότητα να χρησιμοποιήσουμε και σκέτους επεξεργαστές. Σο κομμάτι της πλακέτας που μπορούμε να τοποθετήσουμε σκέτο με ονομάζεται Prototype Board και είναι κατάλληλο για on chip programming. Οι θέσεις που μπορούμε να εκμεταλλευτούμε είναι: EXPAND Header 40-pin DIP socket 28-pin DIP socket Σ.Ε.Ι. Καβάλας. χολή Σεχνολογικών Εφαρμογών. Σμήμα Ηλεκτρολογίας. ελ. 33
Ιστορία του JTAG το προηγούμενο κεφάλαιο γνωρίσαμε το AVR Dragon και αναφερθήκαμε στο πρωτόκολλο επικοινωνίας JTAG. Είδαμε πως γίνονται οι συνδέσεις, ποιά είναι τα σήματα που χρησιμοποιούνται ανάμεσα στην πηγή και τον προγραμματιστή. Εξαιτίας της σπουδαιότητας θεωρήσαμε απαραίτητο να αναπτυχθούμε πολύ περισσότερο σε αυτό το πρωτόκολλο, όχι μόνο γιατί το χρησιμοποιήσαμε αλλά και γιατί μέσα από αυτήν την εργασία το γνωρίσαμε και αναγνωρίσαμε την αξία του και την ανάγκη ύπαρξης τέτοιων εργαλείων. Σο JTAG αναπτύχθηκε και χρησιμοποιείται για τον έλεγχο και προγραμματισμό σύνθετων πλακετών με προγραμματιζόμενα εξαρτήματα. Για να γίνει αυτό, γράφουμε και κατεβάζουμε ειδικά προγράμματα ελέγχου με τα οποία πιστοποιείται η σωστή σύνδεση των εξαρτημάτων. Αφού αυτό τελειώσει, χωρίς αλλαγή, προγραμματίζουμε όλα τα εξαρτήματα της αλυσίδας. Οι δυνατότητες της έκδοσης που χρησιμοποιούμε είναι ένα μικρό υποσύνολο των τεράστιων δυνατοτήτων του JTAG. Σο ακρωνύμιο JTAG αναφέρεται στις λέξεις Join Test Action Group και είναι Σ.Ε.Ι. Καβάλας. χολή Σεχνολογικών Εφαρμογών. Σμήμα Ηλεκτρολογίας. ελ. 34
συνώνυμο του Standard Test Access Port and Boundary-Scan Architecture όπως καθιερώθηκε με το πρότυπο IEEE. Αρχικά αυτό το πρότυπο δημιουργήθηκε κοντά στα τέλη της δεκαετίας του 1980 για να βρίσκει τα κατασκευαστικά λάθη στα τυπωμένα ηλεκτρονικά κυκλώματα με χρήση της περιφερειακής σάρωσης. Φρησιμοποιείται μέχρι και σήμερα για το ίδιο ακριβώς λόγο, προσθέτοντας τα τέλεια χαρακτηριστικά για ένα προγραμματιστή. ήμερα χρησιμοποείται για τον προγραμματισμό και αποσφαλμάτωση με με που μπορούν να το υποστηρίξουν, με λειτουργίες όπως single stepping και break pointing. Επιπλέον χρησιμοποιείται και για προγραμματισμό OTPROM (Οne Time Programmable ROM) που φέρουν τα chip, για προγραμματισμό ασφαλειών αλλά και bit κλειδώματος. Αποσφαλμάτωση (Debugging) Παρόλο που το JTAG σχεδιάστηκε αρχικά για την αναγνώριση λαθών σε τυπωμένα ηλεκτρονικά κυκλώματα, σήμερα χρησιμοποιείται για την προσπέλαση σε σημεία των ολοκληρωμένων κυκλωμάτων καθιστώντας το έναν απαραίτητο μηχανισμό για την αποσφαλμάτωση ενσωματωμένων συστημάτων. Σ.Ε.Ι. Καβάλας. χολή Σεχνολογικών Εφαρμογών. Σμήμα Ηλεκτρολογίας. ελ. 35
τα περισσότερα συστήματα είναι διαθέσιμο μετά το πρώτο Reset της κεντρικής μονάδας επεξεργασίας (CPU). Δηλαδή το JTAG στα ενσωματωμένα συστήμτα είναι ένας on chip εξομοιωτής που έχει δικαίωμα να μεταφέρει πληροφορίες μέσα από την Κ.Μ.Ε. της πηγής μας. Με το JTAG μπορούμε να προγραμματίσουμε τους επεξεργαστές να σταματήσουν,να τρέξουν μόνο μια φορά τον κώδικα, να τρέχουν συνέχεια μέχρι το επόμενο Reset. Επίσης ένα πολύ σημαντικό στοιχείο, το οποίο θεωρείται μεγάλο πλεονέκτημα, είναι το γεγονός ότι επιτρέπεται το break pointing. Όποια διαδικασία και να διαλέξουμε μπορούμε να βλέπουμε τις μεταβλητές μας πως αλλάζουν και τις τιμές που παίρνουν. Με αυτό τον τρόπο μπορούμε να αντιληφθούμε τα λάθη στο κώδικα μας. Σ.Ε.Ι. Καβάλας. χολή Σεχνολογικών Εφαρμογών. Σμήμα Ηλεκτρολογίας. ελ. 36
Σο κύκλωμά μας σχεδιάστηκε από τον επιβλέποντα καθηγητή μας, κο οϊλεμέ Ανδρέα, και κατασκευάστηκε από εμάς. Η πλακέτα μας μπορεί να συνδεθεί με το Dragon με : ISP Programming JTAG Ενώ με τον υπολογιστή μας μπορεί να συνδεθεί μέσω της σειριακής θύρας RS-232. Η πλακέτα μας είναι η παρακάτω: Σ.Ε.Ι. Καβάλας. χολή Σεχνολογικών Εφαρμογών. Σμήμα Ηλεκτρολογίας. ελ. 37
Σ.Ε.Ι. Καβάλας. χολή Σεχνολογικών Εφαρμογών. Σμήμα Ηλεκτρολογίας. ελ. 38
Σ.Ε.Ι. Καβάλας. χολή Σεχνολογικών Εφαρμογών. Σμήμα Ηλεκτρολογίας. ελ. 39
Ο ATmega 128L είναι ένας 8-bit μικροϋπολογιστής αρχιτεκτονικής RISC, διαθέτει 53 Ι/Ο προγραμματιζόμενα pin, η τροφοδοσία του είναι από 2.7 V έως τα 5.5 V και χρησιμοποιεί κρύσταλλο στα 3,6864 MHz. Διαθέτει μνήμη προγράμματος 128Kbytes, μνήμη EEPROM 4Kbytes και εσωτερική SRAM 4Kbytes. Επίσης πολύ σημαντικό στοιχείο του επεξεργαστή είναι ότι μπορεί να μετατρέψει το αναλογικό σήμα σε ψηφιακό (Analog to Digital Converter,ADC). Σ.Ε.Ι. Καβάλας. χολή Σεχνολογικών Εφαρμογών. Σμήμα Ηλεκτρολογίας. ελ. 40
Σ.Ε.Ι. Καβάλας. χολή Σεχνολογικών Εφαρμογών. Σμήμα Ηλεκτρολογίας. ελ. 41
Σο διάγραμμα του ATmega 128. Σ.Ε.Ι. Καβάλας. χολή Σεχνολογικών Εφαρμογών. Σμήμα Ηλεκτρολογίας. ελ. 42
Σο αισθητήριο που χρησιμοποιήσαμε ειναι το LM 35 DZ. Πρόκειται για ένα αισθητήριο ακριβείας που εντάσσεται στη σειρά LM του οποίου η τάση εξόδου είναι γραμμικά ανάλογη με τους βαθμούς Κελσίου (10mV / 1 C). Σο LM35 dz έχει ένα πλεονέκτημα σε σχέση με τα υπόλοιπα γραμμικά αισθητήρια που είναι βαθμονομημένα σε βαθμούς Kelvin διότι ο χρήστης δεν χρειάζεται να αφαιρέσει καμία τάση από την τάση εξόδου και δεν χρειάζεται να κάνει βαθμονόμηση. Σο ποσοστό ακριβείας του είναι σχεδόν μηδαμινό, αφού σε συνθήκες δωματίου έχει απόκλιση ± ¼ C και σε εξωτερικές συνθήκες ± ¾ C. Σο εύρος μέτρησης του κυμαίνεται από τους -55 C έως και τους 150 C. Μπορεί να τροφοδοτηθεί με σταθερή ή εναλλασσόμενη τάση. Πολύ σημαντικό είναι ότι χρησιμοποιεί μόνο 60μΑ από την παροχή του και για αυτό Σ.Ε.Ι. Καβάλας. χολή Σεχνολογικών Εφαρμογών. Σμήμα Ηλεκτρολογίας. ελ. 43
τον λόγω θερμαίνεται μόνο με 0.1 C και έτσι δεν επηρεάζει καθόλου τις μετρήσεις μας. Σ.Ε.Ι. Καβάλας. χολή Σεχνολογικών Εφαρμογών. Σμήμα Ηλεκτρολογίας. ελ. 44
O ΑΣΜega 128 περιλαμβάνει έναν ADC o οποίος μετατρέπει ένα αναλογικό σήμα εισόδου σε ψηφιακό σήμα των 10bits. Ο ADC είναι συνδεμένος σε ένα αναλογικό πολυπλέκτη 8 καναλιών που επιτρεπει τη λήψη 8 τάσεων εισόδου από τους ακροδέκτες της Port F. Οι ακροδέκτες αυτοί είναι μη διαφορικοί ( η τάση τους είναι σε αναφορά προς τη γη). Σο ADC έχει ξεχωριστή αναλογική τάση εισόδου, AVCC, η οποία διαφέρει κατα ± 0.3V από την τάση τροφοδοσίας του επεξεργαστή. Η εσωτερική τάση αναφοράς είναι 2.56 V ή ίση όσο το AVCC που παίρνουμε από τον επεξεργαστή. Η τάση αναφοράς μπορεί να δίνεται και απο εξωτερική πηγή η οποία τοποθετείται απο το pin AREF συνδεδεμένη με ένα πυκνωτή για την απομάκρυνση των θορύβων. Σ.Ε.Ι. Καβάλας. χολή Σεχνολογικών Εφαρμογών. Σμήμα Ηλεκτρολογίας. ελ. 45
Όταν ολοκληρωθεί η μετατροπή (ADIF σε λογικό «1») το αποτέλεσμα μπορεί να βρεθεί στους καταχωρητές ADCL και ADCH. Όπου το Vin είναι η τάση τροφοδοσίας του επεξεργαστή και VREF είναι η τάση αναφοράς. Σ.Ε.Ι. Καβάλας. χολή Σεχνολογικών Εφαρμογών. Σμήμα Ηλεκτρολογίας. ελ. 46
Σ.Ε.Ι. Καβάλας. χολή Σεχνολογικών Εφαρμογών. Σμήμα Ηλεκτρολογίας. ελ. 47
Η οθόνη που χρησιμοποιήσαμε είναι της σείρας DOGM163. Πρόκειται για μια οθόνη 316 η οποία τροφοδοτείται με 3.3 V και συνδέεται με 4 data bits στον επεξεργαστή (4- bit interface). Σ.Ε.Ι. Καβάλας. χολή Σεχνολογικών Εφαρμογών. Σμήμα Ηλεκτρολογίας. ελ. 48
Πίνακας συνδεσμολογίας οθόνης LCD με επεξεργαστή. LCD pins RS R/W Atmega128 PortC PC6 PC4 Περιγραφή Φαμηλή στάθμη (Low) όταν περνάμε δεδομένα στην οθόνη Τψηλή στάθμη (High) όταν κάνουμε κάποια άλλη ενέργεια στην οθόνη Φαμηλή στάθμη (Low) όταν επιθυμούμε να γράψουμε στην οθόνη Τψηλή στάθμη (High) όταν επιθυμούμε να διαβάσουμε δεδομένα από την οθόνη E PC5 enable D7 PC3 Περισσότερο σημαντικό ψηφίο (MSB)των δεδομένων που εμφανίζουμε στην LCD οθόνη D6 PC2 Δεδομένα που εμφανίζουμε στην LCD οθόνη D5 PC1 Δεδομένα που εμφανίζουμε στην LCD οθόνη D4 PC0 Δεδομένα που εμφανίζουμε στην LCD οθόνη D3, D2, D1, D0 Δεδομένα που εμφανίζουμε στην LCD οθόνη (στην συνδεσμολογία 4-bit συνδέονται στα +3,3V) Σ.Ε.Ι. Καβάλας. χολή Σεχνολογικών Εφαρμογών. Σμήμα Ηλεκτρολογίας. ελ. 49
Σ.Ε.Ι. Καβάλας. χολή Σεχνολογικών Εφαρμογών. Σμήμα Ηλεκτρολογίας. ελ. 50
Σο κύριο πρόγραμμά μας είναι το εξής : #include <avr/io.h> #include <stdlib.h> #include <avr/interrupt.h> #include "lcd.h" int main (void) { DDRC = 0xFF; LCD_PORT &= ~(1 << PIN_RW); initialize_display(); write_instruction(instruction_clear_display); ADCSRA = (1 << ADPS2) (1 << ADPS1) (1 << ADPS0); ADMUX = (1 << REFS0); Σ.Ε.Ι. Καβάλας. χολή Σεχνολογικών Εφαρμογών. Σμήμα Ηλεκτρολογίας. ελ. 51
ADCSRA = (1 << ADFR); // Set ADC to Free- Running Mode ADCSRA = (1 << ADEN); // Enable ADC ADCSRA = (1 << ADSC); // Start A2D Conversions char c[4]; char f[4]; int tempc=0; int val, m, tempf, k; int sum=0; set_cursor(0,4); write_string("project"); set_cursor(1,4); write_data(29); write_string("h"); write_data(28); write_string("iako"); set_cursor(2,3); write_data(22); write_string("epmometpo"); Σ.Ε.Ι. Καβάλας. χολή Σεχνολογικών Εφαρμογών. Σμήμα Ηλεκτρολογίας. ελ. 52
_delay_ms(5000); write_instruction(instruction_clear_display); set_cursor(0,3); write_string("a"); write_data(25); write_string("o TOY"); write_data(26); write_string(" :"); set_cursor(1,0); write_string("b.kapatziba"); set_cursor(2,0); write_string("a.xatzh"); write_data(25); write_string("etpoy"); _delay_ms(5000); write_instruction(instruction_clear_display); Σ.Ε.Ι. Καβάλας. χολή Σεχνολογικών Εφαρμογών. Σμήμα Ηλεκτρολογίας. ελ. 53
for(;;) { val=0; sum=0; tempc=0; tempf=0; m=0; k=0; set_cursor(0,0); write_string("h "); write_data(22); write_string("epmokpa"); write_data(26); write_string("ia"); set_cursor(1,4); write_string("einai :"); for(int i=0; i<8; i++) { sum += ADCW; _delay_ms(50); } Σ.Ε.Ι. Καβάλας. χολή Σεχνολογικών Εφαρμογών. Σμήμα Ηλεκτρολογίας. ελ. 54
val = sum / 8.; tempc = (5. * val * 100.)/(1024. * 1.6); tempf = (tempc * 9./5.) + 32. ; //va8moi celcius if (tempc<100) { set_cursor(2,4); write_data(223); m=4; } else if (tempc<10) { set_cursor(2,3); write_data(223); m=3; } Σ.Ε.Ι. Καβάλας. χολή Σεχνολογικών Εφαρμογών. Σμήμα Ηλεκτρολογίας. ελ. 55
//va8moi fahrenhait if (tempf<100) { set_cursor(2,11); write_data(223); k=11; } else if (tempf<10) { set_cursor(2,10); write_data(223); k=10; } itoa(tempc, c, 10); set_cursor(2,2); write_string(c); Σ.Ε.Ι. Καβάλας. χολή Σεχνολογικών Εφαρμογών. Σμήμα Ηλεκτρολογίας. ελ. 56
itoa(tempf, f, 10); set_cursor(2,9); write_string(f) set_cursor(2,(m+1)); write_string("c "); set_cursor(2,(k+1)); write_string("f "); } return 0; } Σ.Ε.Ι. Καβάλας. χολή Σεχνολογικών Εφαρμογών. Σμήμα Ηλεκτρολογίας. ελ. 57
Σο υποπρόγραμμα της LCD είναι το παρακάτω: Αρχείο <lcd.h> #include <avr/interrupt.h> #include <avr/io.h> #include <util/delay.h> #define LCD_PORT PORTC #define PIN_ENABLE #define PIN_RS #define PIN_RW PC5 PC6 PC4 #define CHARACTER_BUFFER_BASE_ADDRESS 0b10000000 #define CHARACTERS_PER_ROW 16 #define INSTRUCTION_CLEAR_DISPLAY 0b00000001 // 0x01 #define INSTRUCTION_FUNCTION_SET_INIT_0 0b00110011 // 0x33 #define INSTRUCTION_FUNCTION_SET_INIT_1 0b00110010 // 0x32 #define INSTRUCTION_FUNCTION_SET_INIT_2 0b00101001 // 0x29 Σ.Ε.Ι. Καβάλας. χολή Σεχνολογικών Εφαρμογών. Σμήμα Ηλεκτρολογίας. ελ. 58
#define INSTRUCTION_INSTRUCTION_SET_0 0b00101000 // 0x28 #define INSTRUCTION_INSTRUCTION_SET_1 0b00101001 // 0x29 #define INSTRUCTION_BIAS_SET // 0x15- #define INSTRUCTION_POWER_CONTROL // 0x55-0b00010101 0b01010101 #define INSTRUCTION_FOLLOWER_CONTROL 0b01101110 // 0x6E- #define INSTRUCTION_CONTRAST_SET 0b01110010 // 0x72- #define INSTRUCTION_DISPLAY_ON 0b00001100 // 0x0F #define INSTRUCTION_ENTRY_MODE 0b00000110 // 0x06 void write(char); void write_instruction(char); void write_data(char); void set_cursor(char, char); void write_string(char*); void initialize_display(void); Σ.Ε.Ι. Καβάλας. χολή Σεχνολογικών Εφαρμογών. Σμήμα Ηλεκτρολογίας. ελ. 59
Αρχείο <lcd.c> #include "lcd.h" void write(char data) { char port_buffer = LCD_PORT; //write the high nibble first... char nibble = (data & 0xF0) >> 4; LCD_PORT = nibble; LCD_PORT = (1 << PIN_ENABLE); _delay_ms(1); LCD_PORT = port_buffer; _delay_ms(1); nibble = data & 0x0F; LCD_PORT = nibble; LCD_PORT = (1 << PIN_ENABLE); _delay_ms(1); LCD_PORT = port_buffer; Σ.Ε.Ι. Καβάλας. χολή Σεχνολογικών Εφαρμογών. Σμήμα Ηλεκτρολογίας. ελ. 60
} void write_instruction(char instruction) { } //RS low = instruction LCD_PORT &= ~(1 << PIN_RS); write(instruction); void write_data(char data) { } //RS high = data LCD_PORT = (1 << PIN_RS); write(data); void set_cursor(char row, char column) { write_instruction(character_buffer_base_addre SS + row * CHARACTERS_PER_ROW + column); } void write_string(char* string) { while (*string) { Σ.Ε.Ι. Καβάλας. χολή Σεχνολογικών Εφαρμογών. Σμήμα Ηλεκτρολογίας. ελ. 61
write_data(*string); *string++; } } void initialize_display(void) { //wait for a short period, maybe the voltage needs to stabilize first _delay_ms(50); //initialize 4 bit mode write_instruction(instruction_function_set_in IT_0); write_instruction(instruction_function_set_in IT_1); write_instruction(instruction_function_set_in IT_2); write_instruction(instruction_power_control); L); write_instruction(instruction_follower_contro write_instruction(instruction_contrast_set); write_instruction(instruction_instruction_set _0); Σ.Ε.Ι. Καβάλας. χολή Σεχνολογικών Εφαρμογών. Σμήμα Ηλεκτρολογίας. ελ. 62
write_instruction(instruction_display_on); write_instruction(instruction_clear_display); write_instruction(instruction_entry_mode); } Σ.Ε.Ι. Καβάλας. χολή Σεχνολογικών Εφαρμογών. Σμήμα Ηλεκτρολογίας. ελ. 63
C Programming for Microcontrollers ζσγγραθέας Joe Pardue. Εκδόζεις από Smiley Micros Οκηώβριος 2008 www.avrfreaks.com www.wikipedia.com www.atmel.com www.smileymicros.com www.alldatasheet.com www.national.com www.lcd-module.de/eng/pdf/doma/dog-me.pdf http://embdev.net www.hlektronika.gr --Σέλος-- Σ.Ε.Ι. Καβάλας. χολή Σεχνολογικών Εφαρμογών. Σμήμα Ηλεκτρολογίας. ελ. 64