Σομζασ: Ηλεκτρονικόσ Εκπαιδευτικόσ: Μπουλταδάκθσ τζλιοσ Μάθημα: υλλογι και μεταφορά δεδομζνων μζςω Η/Τ, Αιςκθτιρεσ-Ενεργοποιθτζσ Αντικείμενο: α) Μζτρθςθ κερμοκραςίασ με το αιςκθτιριο LM335 και μεταφορά δεδομζνων ςτον Η/Τ β) μεταφορά τιμϊν αναλογικισ τάςθσ ςτον Η/Τ τθν άςκθςθ αυτι κα χρθςιμοποιιςουμε το καταγραφικό LOGGER IV τθσ εταιρείασ SMART KIT Electronics μαηί με τα ςυνοδευτικά καλϊδια και το αιςκθτιριο κερμοκραςίασ LM335 που περιζχονται ςτο αντίςτοιχο ΚΙΣ και τα οποία υπάρχουν ςτα Εργαςτθριακά Κζντρα (Ε.Κ.) τθσ Δ.Σ.Ε.Ε. Εικόνα από το τεχνικό Εγχειρίδιο τθσ SMART KIT Electronics 1) Αν δεν υπάρχει DB-9 ςειριακόσ ςυνδετιρασ, ςυνδζουμε το μετατροπζα USB to Serial ςε μια κφρα USB του Η/Τ μασ που είμαςτε ςίγουροι ότι λειτουργεί ςωςτά. τθ περίπτωςι μασ ςυνδζςαμε μετατροπζα τθσ PROMAG που φαίνεται ςτθν παρακάτω φωτογραφία
2) Aκολουκϊντασ τισ οδθγίεσ που ζχουμε ςε αντίςτοιχο φφλλο ζργου για τισ οδθγίεσ χριςθσ τθσ ςειριακισ επικοινωνίασ και ελζγχουμε τθν επιτυχι εγκατάςταςθ από τθ διαδρομι Τπολογιςτήσ μου / δεξί κλικ Ιδιότητεσ/Διαχείριςη υςκευών οπότε διαπιςτϊνουμε ότι θ ςειριακι επικοινωνία εκ μζρουσ του Η/Τ κα γίνει μζςω τθσ ομάδασ καταχωρθτϊν ςειριακισ επικοινωνίασ COM6. τθν περίπτωςι μασ ζχουμε ςυνδζςει ζνα μετατροπζα USB to Serial τθσ PROMAG και μετά τθν επιτυχι εγκατάςταςθ άναψε το πορτοκαλί φωτάκι LINK. 3) Από τθ μελζτθ του τεχνικοφ εγχειριδίου που ςυνοδεφει το καταγραφικό LOGGER IV βρίςκουμε ότι ο ενςωματωμζνοσ μικροελεγκτισ του καταγραφικοφ μεταφζρει τα δεδομζνα με ρυκμίςεισ ςειριακισ επικοινωνίασ με a. Ρυκμό μεταφοράσ 4800 bps b. Stop bit :1 επομζνωσ data bit:8 c. parity : none d. τφποσ επικοινωνίασ :half duplex Ζτςι με δεξί κλικ ςτο παράκυρο Διαχείριςθ υςκευϊν ςτον οδθγό Prolific USB to serial Comm Port (COM6) και επιλζγοντασ Ιδιότθτεσ ρυκμίηουμε τουσ καταχωρθτζσ τθσ ςειριακισ επικοινωνίασ COM6 του Η/Τ ςφμφωνα με τισ οδθγίεσ του καταγραφικοφ όπωσ φαίνεται ςτθν παρακάτω εικόνα:
4) Χωρίσ να ζχουμε ςυνδζςει τθν τροφοδοςία του LOGGER IV, ςυνδζουμε με το ςυνοδευτικό ςειριακό καλϊδιο το LOGGER IV με τον Η/Τ. a. Ο ςυνδετιρασ DB-9 του καλωδίου με ςυνδετιρα USB to Serial από τθ μεριά του Η/Τ b. και ο ςυνδετιρασ RJ11 του καλωδίου ςτθν υποδοχι ςτο LOGGER IV. 5) Σοποκετοφμε τον επιλογζα RS232 tester/logger ςτθ LOGGER ςτο πίςω μζροσ του καταγραφικοφ. Εικόνα από το τεχνικό Εγχειρίδιο τθσ SMART KIT Electronics 6) Σοποκετοφμε τον επιλογζα SENSOR(INT/EXT) ςτθ κζςθ ΕΧΣ και ςυνδζουμε το αιςκθτιριο κερμοκραςίασ LM335 (20 mv/ K) ςτθν υποδοχι TEMP ςτο πίςω μζροσ του καταγραφικοφ. 7) ΠΡΟΟΧΗ: ςυνδζουμε τϊρα τθν τροφοδοςία του LOGGER IV αφοφ πρϊτα ζχουμε ςυνδζςει τουσ ςυνδετιρεσ ςειριακισ επικοινωνίασ γιατί υπάρχει κίνδυνοσ καταςτροφισ είτε τθσ μθτρικισ κάρτασ του Η/Τ είτε του θλεκτρονικοφ κυκλϊματοσ επειδι τα λογικά ςιματα 0 και 1 τθσ ςειριακισ επικοινωνίασ αντιςτοιχοφν ςε τάςεισ +12V και -12V αντίςτοιχα. 8) Μετά τθ ςφνδεςθ τθσ τροφοδοςίασ, ςτθν οκόνθ LCD του καταγραφικοφ εμφανίηονται διαγνωςτικά μθνφματα που ολοκλθρϊνονται με τθν ζνδειξθ ALL Functions=OK. τθ ςυνζχεια εμφανίηεται θ ζνδειξθ τθσ κερμοκραςίασ ςε βακμοφσ Kelvin. 9) Με τθ βοικεια του ποτενςιόμετρου Σ.ADJ (temperature adjust) κάνουμε βακμονόμθςθ τθσ μζτρθςθσ κερμοκραςίασ ωσ εξισ: αν γνωρίηουμε π.χ μζςω ενόσ άλλου κερμόμετρου ότι θ κερμοκραςία ςτο εργαςτιριο δοκιμϊν είναι π.χ 20 C τότε θ ζνδειξθ τθσ κερμοκραςίασ ςτθν οκόνθ LCD του καταγραφικοφ πρζπει να είναι 273+20=293 K
10) Σρζχουμε τθν εφαρμογι LoggerIV-6_volt.EXE αναπτφςςουμε μια δικι μασ εφαρμογι με βάςθ τισ εντολζσ ςε Visual Basic 5 που δίνονται παρακάτω. Σο παράκυρο τθσ προτεινόμενθσ εφαρμογισ. Όταν τρζχουμε τθν εφαρμογι εμφανίηονται προκαταρκτικά μθνφματα που ηθτοφν να ορίςουμε τθ ςειριακι κφρα ςτθν οποία ςυνδζουμε (ςυνικωσ μζςω μετατροπζα USB to serial) το καταγραφικό Logger IV. Κουμπί Μζτρηςε: το πατάμε και αρχίηει θ διαδικαςία ενόσ οριςμζνου αρικμοφ μετριςεων Πεδίο Κειμζνου Μήνυμα από ειριακή Θφρα: βλζπουμε το μινυμα που ςτζλνει το καταγραφικό ςτον Η/Τ. Ο πρϊτοσ αρικμόσ είναι θ κερμοκραςία ςε βακμοφσ Kelvin και ο δεφτεροσ αρικμόσ είναι θ τάςθ ςτθ μορφι π.χ. 290 για τάςθ 2.90 Volts Κουμπί Αποθήκευςε: για τθν αποκικευςθ των μετριςεων Κουμπί Φόρτωςη Αρχείου μετρήςεων: για τθν επαναφόρτωςθ και απεικόνιςθ ιδθ αποκθκευμζνων μετριςεων Κουμπί βήςε Γραφικό: για κακαριςμό του παρακφρου γραφικϊν από τισ μετριςεισ που είτε λιφκθκαν μζςω τθσ ςειριακισ κφρασ είτε από αποκθκευμζνο αρχείο μετριςεων Στη ςυνζχεια δίνεται ζνασ προτεινόμενοσ κώδικασ που προφανώσ μπορεί και να τροποποιηθεί ή και να βελτιωθεί. Μπορείτε να αποςτείλετε ζνα αρχείο με το παράθυρο τησ εφαρμογήσ και το βελτιωμζνο από εςάσ κώδικα ςτην ηλεκτρονική διεφθυνςη του ςχολείου (mail@1epalsykeon.thess.sch.gr ) για να το αναρτήςουμε. Option Explicit Option Base 1 Dim a() As Variant ' θ εντολι Dim για τον οριςμό του πίνακα μπορεί να ' οριςκεί και ςτθν ενότθτα γενικϊν δθλϊςεων του πίνακα ' και επίςθσ μπορεί και να μθν ζχει ορίςματα ςισ παρενκζςεισ Dim counter As Integer Dim numofmeas, comnumb, min, max As Integer Dim tiempo As Long Dim meas As Integer Private Sub Form_Load()
'οδθγίεσ ρφκμιςθσ LoggerIV MsgBox "SENSOR=EXT, RS232/LOGGER=LOGGER, Turn ON and wait for OK", 65, "1. οδθγίεσ ρφκμιςθσ LoggerIV.." 'οδθγίεσ εφρεςθσ ςειριακισ κφρασ MsgBox "ΗΤ μου δεξί κλικ/ιδιότθτεσ/διαχείριςθ υςκευϊν/θφρεσ COM&LPT", 65, "Εφρεςθ ςειριακισ κφρασ Η/Τ.." ' ορίηω ςε ποιά κφρα COMn ζχει ςυνδεκεί το όργανο.. comnumb = InputBox("Δϊςε ακζραιο 1-9 αφοφ ελζγξεισ τθ Διαχείριςθ υςκευϊν :", "Διλωςθ Αρικμοφ κφρασ COMn ςειριακισ επικοιν.",, _ ' ορίηω πόςεσ μετριςεισ κερμοκραςίασ κα πάρω numofmeas = InputBox("Πόςεσ μετριςεισ κα κάνετε :", "Πλικοσ μετριςεων",, _ ' ορίηω το είδοσ μζτρθςθσ meas = InputBox("Θερμοκραςία δϊςε 1:, Αναλογικι τάςθ δϊςε 2:", "Επιλογι μζτρθςθσ:",, _ If meas <> 1 And meas <> 2 Then End ' ορίηω ελάχιςτθ τιμι του y άξονα-ψ If meas = 1 Then min = InputBox("Δϊςε ελάχιςτθ τιμι:", "Ορια του άξονα ψ:",, _ ' ορίηω μζγιςτθ τιμι του y άξονα-ψ If meas = 1 Then max = InputBox("Δϊςε μζγιςτθ τιμι:", "Ορια του άξονα ψ:",, _ ReDim a(numofmeas) '---ρυκμίςεισ γραφικϊν Picture1.ScaleMode = 0 If meas = 1 Then Picture1.Scale (1, max)-(numofmeas, min) If meas = 2 Then Picture1.Scale (1, 5)-(numofmeas, 0) Picture1.BackColor = vbwhite Picture1.DrawWidth = 5 Picture1.AutoRedraw = True '--- ρυκμίςεισ πεδίων κειμζνου txtcounter.fontsize = 20 txtcounter.forecolor = vbblue txttemp.fontsize = 25 txttemp.forecolor = vbred '---------------------------------- 'οδθγίεσ ενεργοποίθςθσ μζτρθςθσ MsgBox "Πατιςτε το πλικτρο Μζτρθςε μζχρι να ζρκει μινυμα...", 65, "2. οδθγίεσ αποκατάςταςθσ επικοινωνίασ.." ' Αρχικοποίθςθ τθσ ςειριακισ κφρασ MSComm1.CommPort = comnumb ' 4800 baud, no parity, 8 data, and 1 stop bits. MSComm1.Settings = "4800,N,8,1" MSComm1.PortOpen = True Private Sub cmdclear_click() Picture1.Cls Private Sub cmdenable_click()
Dim Instring, Buffer As String Dim k1 As String Dim k2 As Variant For counter = 1 To numofmeas ' κάνουμε μετριςεισ MSComm1.Output = "I:" + Chr$(13) ' περιμζνουμε μζχρι να διαβάςουμε το χαρακτιρα ">" από το Logger IV Do DoEvents Buffer = Buffer & MSComm1.Input Loop Until InStr(Buffer$, ">") Instring = Buffer Buffer = "" txtrs232.text = Instring If meas = 1 Then k1 = Mid(Instring, 1, 4) ' για μζτρθςθ κερμοκραςίασ If meas = 2 Then k1 = Mid(Instring, 6, 3) ' για μζτρθςθ τάςθσ από δεφτερθ αναλογικι είςοδο k2 = Val(k1) If meas = 2 Then k2 = k2 / 100 'το loggeriv ςτζλνει τον αρικμό 380 για τάςθ 3.80 Volts a(counter) = k2 ' τοποκετϊ τισ μετριςεισ ςε πίνακα για ' προςωρινι αποκικευςθ ςτθ μνιμθ RAM txtcounter.text = counter txttemp.text = k2 '--- ηωγραφίηω τα ςθμεία Picture1.PSet (counter, k2), vbred ' δθμιουργοφμε μια χρονοκακυςτζρθςθ μεταξφ των ςθμείων αν κζλουμε καλϊντασ τθν Delay ' Call Delay(10000) Next counter Private Sub cmdexit_click() ' Close the serial port. MSComm1.PortOpen = False End Private Sub cmdopen_click() Dim filename As String filename = InputBox("Δϊςτε το όνομα Αρχείου", "Αποκικευςθ ςε αρχείο",, _ Open filename For Input As 1 Input #1, numofmeas For counter = 1 To numofmeas ' διαβάηω μετριςεισ από αρχείο Input #1, counter, a(counter) ' ηωγραφίηω τισ μετριςεισ Picture1.PSet (counter, a(counter)), vbred Next counter Close 1
Private Sub cmdsave_click() Dim filename As String filename = InputBox("Δϊςτε το όνομα Αρχείου ςτον δίςκο D..", "Αποκικευςθ ςε αρχείο",, _ Open filename For Output As 1 Print #1, numofmeas For counter = 1 To numofmeas Print #1, counter, a(counter) Next counter Close 1 Public Sub Delay(tiempo As Integer) Dim kd1, kd2 As Integer kd1 = 0 kd2 = 0 For kd1 = 0 To tiempo For kd2 = 0 To tiempo kd2 = kd2 + 1 Next kd2 kd1 = kd1 + 1 Next kd1