Τεχνολογία αισθητήρων θερμοκρασίας

Κατασκευή ψηφιακού θερμομέτρου με ψηφιακό αισθητήρα θερμοκρασίας DS18B20

Ψηφιακός αισθητήρας θερμομέτρου DS18B20 αισθητήρα θερμοκρασίας + Μονάδα προσαρμογέα τερματικού με σετ καλωδίων

Εισαγωγή: Αυτό το άρθρο εξηγεί λεπτομερώς την εφαρμογή του προσαρμοσμένου ψηφιακού αισθητήρα θερμοκρασίας DS18B20 στην κατασκευή ενός ψηφιακού θερμομέτρου. Συμπεριλαμβανομένης της αρχής λειτουργίας, σύνδεση υλικού, προγραμματισμός λογισμικού και εφαρμογή προσομοίωσης. Παρέχετε πλήρες διάγραμμα προσομοίωσης προεξοχών, Πηγαίος κώδικας C και ανάλυση αποτελεσμάτων για να βοηθήσει τους αναγνώστες να κατανοήσουν και να εξασκήσουν σε βάθος τη χρήση του DS18B20.

Πληροφορίες παραμέτρων: τροφοδοτικό: 3.0V – 5.5V; Ρυθμιζόμενη ανάλυση: 9 – 12 κομμάτι; Κλίμακα θερμοκρασίας: -55 ℃ έως +125 ℃; Παραγωγή : κόκκινος (VCC), κίτρινος (ΔΕΔΟΜΕΝΑ), μαύρος (GND);
Αυτό που παίρνεις: θα πάρετε 4 Αισθητήρες θερμοκρασίας DS18B20, 4 μονάδες προσαρμογέα και 4 θηλυκό σε θηλυκό συρματόσχοινα; Η μονάδα προσαρμογέα έχει μια αντίσταση έλξης, που μπορεί να είναι συμβατό με το Raspberry Pi χωρίς εξωτερική αντίσταση;
Αισθητήρας θερμοκρασίας DS18B20: το μέγεθος του περιβλήματος από ανοξείδωτο χάλυβα είναι περίπου. 6 x 50 mm/ 0.2 x 2 ίντσα, και το ψηφιακό θερμικό καλώδιο θερμοκρασίας έχει συνολικό μήκος περίπου. 1 m/ 39.4 ίντσα, που είναι αρκετό για να καλύψει τις ανάγκες σας;
Ποιοτικό υλικό: ο καθετήρας είναι κατασκευασμένος από ποιοτικό ανοξείδωτο υλικό, που είναι αδιάβροχο, ανθεκτικό στην υγρασία και δεν σκουριάζει εύκολα, ώστε να αποφευχθούν βραχυκυκλώματα;
Ευρεία εφαρμογή: αυτός ο αισθητήρας θερμοκρασίας DS18B20 είναι συμβατός με το Raspberry Pi, και εφαρμόζεται ευρέως στην παρακολούθηση θερμοκρασίας της τάφρου καλωδίων, λέβητας, Τι, γεωργικό θερμοκήπιο, καθαρό δωμάτιο, και τα λοιπά.

DS18B20 Αισθητήρας θερμοκρασίας -55 να +125 Βαθμοί Κελσίου, Συμβατό με Raspberry Pi

DS18B20 Αισθητήρας θερμοκρασίας -55 να +125 Βαθμοί Κελσίου, Συμβατό με Raspberry Pi

Αδιάβροχος αισθητήρας επιφανειακής βάσης DS18B20 ψηφιακός αισθητήρας θερμοκρασίας

Αδιάβροχος αισθητήρας επιφανειακής βάσης DS18B20 ψηφιακός αισθητήρας θερμοκρασίας

Ψηφιακός αισθητήρας θερμομέτρου DS18B20 αισθητήρα θερμοκρασίας + Μονάδα προσαρμογέα τερματικού με σετ καλωδίων

Ψηφιακός αισθητήρας θερμομέτρου DS18B20 αισθητήρα θερμοκρασίας + Μονάδα προσαρμογέα τερματικού με σετ καλωδίων

1. Χαρακτηριστικά αισθητήρα DS18B20
Ο αισθητήρας DS18B20 παίζει βασικό ρόλο στον τομέα της σύγχρονης παρακολούθησης θερμοκρασίας. Μπορεί να μετρήσει τη θερμοκρασία με υψηλή ακρίβεια, και η ανάλυσή του μπορεί να ρυθμιστεί ανάλογα με τις ανάγκες, ώστε να επιτυγχάνεται παρακολούθηση της θερμοκρασίας με διαφορετικούς βαθμούς ακρίβειας. Εξάλλου, Το μικρό μέγεθος του DS18B20 το καθιστά κατάλληλο για χρήση σε περιβάλλοντα με περιορισμένο χώρο, και τα εύχρηστα χαρακτηριστικά του μειώνουν το τεχνικό όριο από αρχάριους σε επαγγελματίες.

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

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

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

2. Λεπτομερής επεξήγηση του πρωτοκόλλου επικοινωνίας 1-Wire του DS18B20
Ο λόγος για τον οποίο οι αισθητήρες DS18B20 χρησιμοποιούνται ευρέως οφείλεται σε μεγάλο βαθμό στο μοναδικό πρωτόκολλο επικοινωνίας του – 1-Πρωτόκολλο ενσύρματης επικοινωνίας. Αυτό το πρωτόκολλο απλοποιεί τις απαιτήσεις για συνδέσεις υλικού και παρέχει έναν αποτελεσματικό τρόπο μετάδοσης δεδομένων. Αυτό το κεφάλαιο θα αναλύσει σε βάθος τον μηχανισμό λειτουργίας και τη διαδικασία ανταλλαγής δεδομένων του πρωτοκόλλου επικοινωνίας 1 γραμμής για να θέσει μια σταθερή βάση για την επακόλουθη πρακτική προγραμματισμού.
2.1 Βασικά Πρωτόκολλο Επικοινωνίας 1 Wire
2.1.1 Χαρακτηριστικά του πρωτοκόλλου επικοινωνίας 1-Wire:
Ονομάζεται επίσης πρωτόκολλο επικοινωνίας 1-Wire DS18B20 “ενιαίο λεωφορείο” τεχνολογία. Διαθέτει τα ακόλουθα χαρακτηριστικά: – Ενιαίο λεωφορείο επικοινωνίας: Μόνο μία γραμμή δεδομένων χρησιμοποιείται για αμφίδρομη μετάδοση δεδομένων, γεγονός που μειώνει σημαντικά την πολυπλοκότητα της καλωδίωσης σε σύγκριση με την παραδοσιακή μέθοδο επικοινωνίας με αισθητήρα πολλαπλών καλωδίων. – Σύνδεση πολλαπλών συσκευών: Υποστηρίζει τη σύνδεση πολλαπλών συσκευών σε έναν δίαυλο δεδομένων, και αναγνωρίζει και επικοινωνεί μέσω κωδικών αναγνώρισης συσκευών. – Χαμηλή κατανάλωση ρεύματος: Κατά την επικοινωνία, η συσκευή μπορεί να βρίσκεται σε κατάσταση αναμονής χαμηλής κατανάλωσης όταν δεν συμμετέχει στην επικοινωνία. – Υψηλή ακρίβεια: Με μικρότερο χρόνο μετάδοσης δεδομένων, Μπορεί να μειώσει τις εξωτερικές παρεμβολές και να βελτιώσει την ακρίβεια των δεδομένων.
2.1.2 Μορφή δεδομένων και ανάλυση χρονισμού της 1-wire επικοινωνίας
Η μορφή δεδομένων του πρωτοκόλλου επικοινωνίας 1 καλωδίου ακολουθεί έναν συγκεκριμένο κανόνα χρονισμού. Περιλαμβάνει χρονισμό αρχικοποίησης, συγγραφή χρόνου και ανάγνωση χρόνου:
Χρόνος εκκίνησης: Ο κεντρικός υπολογιστής ξεκινά πρώτα τον χρονισμό ανίχνευσης παρουσίας (Παλμός Παρουσίας) κατεβάζοντας το λεωφορείο για ορισμένο χρονικό διάστημα, και ο αισθητήρας στέλνει στη συνέχεια έναν παλμό παρουσίας ως απόκριση.
Γράψτε το χρονοδιάγραμμα: Όταν ο κεντρικός υπολογιστής στέλνει ένα χρονισμό εγγραφής, κατεβαίνει πρώτα το λεωφορείο για περίπου 1-15 μικροδευτερόλεπτα, στη συνέχεια απελευθερώνει το λεωφορείο, και ο αισθητήρας κατεβάζει το λεωφορείο μέσα 60-120 μικροδευτερόλεπτα για να ανταποκριθεί.
Διαβάστε το χρονοδιάγραμμα: Ο κεντρικός υπολογιστής ειδοποιεί τον αισθητήρα να στείλει δεδομένα τραβώντας προς τα κάτω το δίαυλο και απελευθερώνοντάς τον, και ο αισθητήρας θα εξάγει το bit δεδομένων στο δίαυλο μετά από μια ορισμένη καθυστέρηση.

3. Μέθοδος σύνδεσης υλικού θερμομέτρου
Η σύνδεση υλικού είναι το πρώτο και πιο σημαντικό βήμα στην κατασκευή ενός ψηφιακού θερμομέτρου. Η σωστή σύνδεση μεταξύ του αισθητήρα DS18B20 και του μικροελεγκτή θα εξασφαλίσει ακριβή μετάδοση δεδομένων και θα παρέχει μια σταθερή βάση για περαιτέρω προγραμματισμό λογισμικού και επεξεργασία δεδομένων. Αυτό το κεφάλαιο θα εισαγάγει λεπτομερώς τις αρχές σχεδιασμού διεπαφής μεταξύ DS18B20 και μικροελεγκτή και τα συγκεκριμένα βήματα της σύνδεσης κυκλώματος, και καλύπτουν το σχετικό περιεχόμενο τροφοδοσίας και ρύθμισης σήματος.
3.1 Διεπαφή μεταξύ DS18B20 και μικροελεγκτή
3.1.1 Αρχές σχεδίασης κυκλωμάτων διεπαφής
Ο σχεδιασμός του κυκλώματος διασύνδεσης του DS18B20 πρέπει να ακολουθεί αρκετές βασικές αρχές για να διασφαλίσει σταθερή και αποτελεσματική λειτουργία της συσκευής:
Σταθερή παροχή ρεύματος: Το DS18B20 μπορεί να λάβει ρεύμα από τη γραμμή δεδομένων “DQ” (κάλεσε “λειτουργία παρασιτικής ισχύος”), ή μπορεί να τροφοδοτηθεί ανεξάρτητα από ένα εξωτερικό τροφοδοτικό. Ανεξάρτητα από τη μέθοδο που χρησιμοποιείται, το τροφοδοτικό πρέπει να είναι σταθερό για να αποτρέπονται σφάλματα μετάδοσης δεδομένων που προκαλούνται από διακυμάνσεις στο τροφοδοτικό.
Ακεραιότητα σήματος: Δεδομένου ότι το DS18B20 μεταδίδει δεδομένα μέσω μιας μόνο γραμμής, Η ακεραιότητα του σήματος είναι ιδιαίτερα κρίσιμη. Είναι απαραίτητο να ληφθεί υπόψη η ικανότητα κατά των παρεμβολών του σήματος και η αντιστοίχιση των ηλεκτρικών χαρακτηριστικών του σήματος.
Προστασία κυκλώματος: Προστασία από υπερένταση και ηλεκτροστατική εκφόρτιση (ESD) στη σχεδίαση του κυκλώματος θα πρέπει να περιλαμβάνονται μέτρα προστασίας για την αποφυγή ζημιάς στον αισθητήρα ή στον μικροελεγκτή.

3.1.2 Ειδικά βήματα για τη σύνδεση κυκλώματος
Η σύνδεση του DS18B20 σε έναν μικροελεγκτή συνήθως ακολουθεί τα ακόλουθα βήματα:
Σύνδεση ισχύος: Συνδέστε τον ακροδέκτη VDD του DS18B20 σε τροφοδοτικό 3,3 V ή 5 V (ανάλογα με το επίπεδο τάσης του μικροελεγκτή), και τον πείρο GND στη γραμμή γείωσης.
Σύνδεση γραμμής δεδομένων: Ο ακροδέκτης DQ συνδέεται με έναν ψηφιακό ακροδέκτη I/O του μικροελεγκτή. Προκειμένου να διασφαλιστεί η σταθερότητα της μετάδοσης δεδομένων, μπορεί να προστεθεί μια pull-up αντίσταση μεταξύ της γραμμής δεδομένων και του τροφοδοτικού, με τυπική τιμή 4,7kΩ έως 10kΩ.
Επεξεργασία παλμικής ακίδας επαναφοράς και παρουσίας: Κανονικά, τον πείρο επαναφοράς (RST) και παρουσία παλμικού πείρου (PAR) του DS18B20 δεν χρειάζεται να συνδεθεί εξωτερικά, είναι εσωτερικά χρησιμοποιούμενα σήματα.

Σε αυτή την ενότητα, σχεδιάσαμε ένα βασικό κύκλωμα μέσω του οποίου ο αισθητήρας θερμοκρασίας DS18B20 μπορεί να συνδεθεί σε έναν μικροελεγκτή. Ακολουθεί ένα παράδειγμα διαγράμματος κυκλώματος που βασίζεται στο Arduino Uno και η αντίστοιχη περιγραφή:

διάγραμμα ροής LR
DS18B20 — |VDD| 5V
DS18B20 — |GND| GND
DS18B20 — |DQ| 2
DQ — |Τράβηγμα| 5V

Μεταξύ αυτών, Το DS18B20 αντιπροσωπεύει τον ψηφιακό αισθητήρα θερμοκρασίας, 5V είναι η ισχύς εξόδου του μικροελεγκτή, Το GND είναι το καλώδιο γείωσης, και 2 αντιπροσωπεύει την καρφίτσα του Arduino No. 2, που χρησιμοποιείται για τη μετάδοση δεδομένων. Η σύνδεση μεταξύ DQ και 5V αντιπροσωπεύει την αντίσταση έλξης.


3.2 Τροφοδοσία και ρύθμιση σήματος
3.2.1 Επιλογή μεθόδου τροφοδοσίας
Το DS18B20 παρέχει δύο μεθόδους τροφοδοσίας:
Λειτουργία παρασιτικής ισχύος: Σε αυτή τη λειτουργία, τη γραμμή δεδομένων (DQ) δεν μπορεί μόνο να μεταδώσει δεδομένα, αλλά και τροφοδοτούν το DS18B20. Αυτή τη στιγμή, η τάση υψηλού επιπέδου στη γραμμή δεδομένων πρέπει να είναι τουλάχιστον 3,0 V για να διασφαλιστεί επαρκές ρεύμα τροφοδοσίας. Αυτή η λειτουργία χρησιμοποιείται συνήθως όταν το μήκος του διαύλου είναι μικρό και η μετάδοση δεδομένων δεν είναι πολύ συχνή.

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

3.2.2 Φιλτράρισμα και σταθεροποίηση σήματος
Προκειμένου να διασφαλιστεί η σταθερότητα του σήματος και η ακριβής ανάγνωση δεδομένων, το σήμα πρέπει να φιλτραριστεί και να σταθεροποιηθεί σωστά:
Αντίσταση έλξης: Η αντίσταση pull-up προστίθεται μεταξύ της γραμμής δεδομένων και του τροφοδοτικού για να διασφαλιστεί ότι η γραμμή δεδομένων βρίσκεται σε κατάσταση υψηλού επιπέδου όταν είναι σε αδράνεια.
Κύκλωμα απεγκλωβισμού: Για την εξάλειψη λανθασμένων μετρήσεων που προκαλούνται από παρεμβολές γραμμής ή στιγμιαίες διακυμάνσεις τάσης, το σήμα μπορεί να αποσυρθεί από το λογισμικό στην πλευρά του μικροελεγκτή.
Προστασία ESD: Εξαρτήματα προστασίας ESD (όπως οι δίοδοι TVS) προστίθενται στις θύρες των αισθητήρων και των μικροελεγκτών για την αποφυγή ζημιών που προκαλούνται από ηλεκτροστατική εκφόρτιση.

Αυτή η ενότητα επεξεργάζεται περαιτέρω τους παράγοντες που πρέπει να λαμβάνονται υπόψη κατά την επιλογή τροφοδοσίας και ρύθμισης σήματος σε μορφή πίνακα:
| Σχέδιο | Λειτουργία παρασιτικής ισχύος | Λειτουργία εξωτερικής τροφοδοσίας | Περιγραφή | | — | — | — | — | | Ισχύοντα σενάρια | Σύντομες γραμμές, σπάνια δεδομένα | Μεγάλες ουρές, συχνά δεδομένα | Επιλέξτε σύμφωνα με τα πραγματικά σενάρια εφαρμογής | | Σταθερότητα τροφοδοσίας | Χαμηλότερος | Πιο ψηλά | Το εξωτερικό τροφοδοτικό συνιστάται για μεγάλες γραμμές ή υψηλές συχνότητες | | Κόστος | Χαμηλότερος | Πιο ψηλά | Το εξωτερικό τροφοδοτικό απαιτεί πρόσθετα εξαρτήματα διαχείρισης ενέργειας | | Κατά των παρεμβολών | Πιο αδύναμα | Πιο δυνατό | Το εξωτερικό τροφοδοτικό είναι πιο κατάλληλο για περιβάλλοντα υψηλής παρεμβολής |

Οι παραπάνω μέθοδοι σύνδεσης και στρατηγικές επεξεργασίας σήματος μπορούν να ενσωματώσουν αποτελεσματικά τον αισθητήρα θερμοκρασίας DS18B20 σε οποιοδήποτε σύστημα μικροελεγκτή. Το επόμενο κεφάλαιο θα εισαγάγει τον τρόπο χρήσης της γλώσσας C για να:


Πρακτική λειτουργικού προγραμματισμού του DS18B20:
4. DS18B20 ψηφιακό θερμόμετρο προγραμματισμού γλώσσας C
4.1 Βάση προγραμματισμού και προετοιμασία περιβάλλοντος
4.1.1 Ιδέες σχεδίασης προγράμματος και κατασκευή πλαισίου
Πριν ξεκινήσετε να γράφετε το πρόγραμμα γλώσσας C του ψηφιακού θερμομέτρου DS18B20, πρέπει πρώτα να καθορίσετε τις βασικές ιδέες του σχεδιασμού του προγράμματος. Ο αισθητήρας DS18B20 επικοινωνεί με τον μικροελεγκτή μέσω του πρωτοκόλλου επικοινωνίας 1 καλωδίου. Επομένως, το κύριο καθήκον του προγράμματος είναι να υλοποιήσει τις σχετικές λειτουργίες του πρωτοκόλλου επικοινωνίας 1 καλωδίου, συμπεριλαμβανομένης της προετοιμασίας του DS18B20, αποστολή οδηγιών, ανάγνωση δεδομένων θερμοκρασίας, και μετατροπή και εμφάνιση των δεδομένων ανάγνωσης.

Το πλαίσιο του προγράμματος χωρίζεται χονδρικά στα ακόλουθα μέρη:
Αρχικοποίηση: Εκκινήστε τον μικροελεγκτή και τον αισθητήρα DS18B20.
Κύριος βρόχος: Περιέχει έναν βρόχο που διαβάζει συνεχώς δεδομένα αισθητήρα.
1-βιβλιοθήκη λειτουργιών ενσύρματης επικοινωνίας: Περιέχει λειτουργίες για την υλοποίηση του πρωτοκόλλου επικοινωνίας ενός καλωδίου.

Επεξεργασία δεδομένων: Μετατρέψτε τα ανεπεξέργαστα δεδομένα που επιστρέφονται από τον αισθητήρα σε αναγνώσιμες τιμές θερμοκρασίας.
Έξοδος εμφάνισης: Εμφανίστε τα επεξεργασμένα δεδομένα θερμοκρασίας στην οθόνη LCD ή στείλτε τα στον υπολογιστή μέσω της σειριακής θύρας.

Αδιάβροχος αισθητήρας θερμοκρασίας DS18b20 από ανοξείδωτο χάλυβα 1-Wire 1, 2, 5 μέτρα

Αδιάβροχος αισθητήρας θερμοκρασίας DS18b20 από ανοξείδωτο χάλυβα 1-Wire 1, 2, 5 μέτρα

DS18B20 Ψηφιακός αισθητήρας θερμοκρασίας 1 καλωδίου

DS18B20 Ψηφιακός αισθητήρας θερμοκρασίας 1 καλωδίου

Κιτ μονάδας αισθητήρα θερμοκρασίας DS18B20 με 1 Αδιάβροχο ψηφιακό ανοξείδωτο χάλυβα m-3,2 Ft

Κιτ μονάδας αισθητήρα θερμοκρασίας DS18B20 με 1 Αδιάβροχο ψηφιακό ανοξείδωτο χάλυβα m-3,2 Ft

4.1.2 Κατασκευή και διαμόρφωση περιβάλλοντος ανάπτυξης
Για να προγραμματίσετε και να αναπτύξετε το ψηφιακό θερμόμετρο DS18B20, πρέπει να προετοιμάσετε το περιβάλλον ανάπτυξης και να το ρυθμίσετε κατάλληλα. Τα παρακάτω είναι τα βασικά βήματα για την ανάπτυξη:

Επιλέξτε το περιβάλλον ανάπτυξης: Επιλέξτε το κατάλληλο ολοκληρωμένο περιβάλλον ανάπτυξης (IDE) ανάλογα με τον τύπο του μικροελεγκτή, όπως για ανάπτυξη που βασίζεται στον μικροελεγκτή της σειράς ARM Cortex-M. Μπορείτε να χρησιμοποιήσετε το Keil MDK ή STM32CubeIDE.

Ρυθμίστε τις παραμέτρους του μεταγλωττιστή: Σύμφωνα με το IDE που χρησιμοποιείται, ρυθμίστε τις παραμέτρους του μεταγλωττιστή για να διασφαλίσετε ότι ο κώδικας της γλώσσας C μπορεί να μεταγλωττιστεί σωστά.
Δημιουργήστε τον πίνακα ανάπτυξης υλικού: Επιλέξτε μια κατάλληλη πλακέτα ανάπτυξης μικροελεγκτή, όπως με βάση το STM32, ESP32, και τα λοιπά.
Συνδέστε την πλακέτα ανάπτυξης: Συνδέστε τον αισθητήρα DS18B20 στην καθορισμένη ακίδα του μικροελεγκτή μέσω του πρωτοκόλλου επικοινωνίας 1 καλωδίου.
Γράψτε κώδικα: Δημιουργήστε ένα νέο έργο γλώσσας C στο IDE και ξεκινήστε να γράφετε κώδικα προγράμματος.
Μεταγλώττιση και εντοπισμός σφαλμάτων: Χρησιμοποιήστε το εργαλείο IDE για να μεταγλωττίσετε τον κώδικα και να τον εκτελέσετε στον πίνακα ανάπτυξης για εντοπισμό σφαλμάτων.

#συμπεριλαμβάνω <stdio.h>

// Δήλωση βιβλιοθήκης λειτουργίας επικοινωνίας πρώτης γραμμής DS18B20
άκυρο DS18B20_Init();
void DS18B20_Reset();
άκυρο DS18B20_WriteByte(ανυπόγραφο char dat);
ανυπόγραφο char DS18B20_ReadByte();
int DS18B20_ReadTemperature();

int main() {
// Εκκινήστε τον αισθητήρα DS18B20
DS18B20_Θερμότητα();
// Κύριος βρόχος
ενώ(1) {
// Διαβάστε την τιμή θερμοκρασίας
int temperature = DS18B20_ReadTemperature();
// Τιμή θερμοκρασίας εξόδου σε σειριακή θύρα ή άλλη συσκευή προβολής
εκτύπωση(“Τρέχουσα θερμοκρασία: %dn”, θερμοκρασία);
}
απόδοση 0;
}


4.2 Εφαρμογή προγράμματος ανάγνωσης θερμοκρασίας DS18B20
4.2.1 Κατασκευή της βιβλιοθήκης λειτουργιών επικοινωνίας ενός καλωδίου
Για να πραγματοποιηθεί η ένδειξη θερμοκρασίας του DS18B20, πρέπει πρώτα να δημιουργήσετε μια βιβλιοθήκη λειτουργιών επικοινωνίας ενός καλωδίου. Ακολουθούν οι μέθοδοι υλοποίησης πολλών βασικών λειτουργιών:

DS18B20_Θερμότητα(): Αρχικοποιήστε το χρονισμό επικοινωνίας ενός καλωδίου.
DS18B20_Reset(): Επαναφέρετε τον αισθητήρα και εντοπίστε τον παλμό του.
DS18B20_WriteByte(ανυπόγραφο char dat): Γράψτε ένα byte δεδομένων στον αισθητήρα.
DS18B20_ReadByte(): Διαβάστε ένα byte δεδομένων από τον αισθητήρα.
DS18B20_ReadTemperature(): Διαβάστε τη θερμοκρασία και μετατρέψτε την.

Η υλοποίηση της βιβλιοθήκης λειτουργιών επικοινωνίας ενός καλωδίου του DS18B20 είναι αρκετά περίπλοκη επειδή απαιτεί ακριβή έλεγχο των αλλαγών στο επίπεδο της ακίδας για να ακολουθήσει το πρωτόκολλο επικοινωνίας ενός καλωδίου. Το παρακάτω είναι ένα παράδειγμα υλοποίησης συνάρτησης:
void DS18B20_Reset() {
// Ακολουθία επαναφοράς επικοινωνίας μίας γραμμής, συμπεριλαμβανομένου του τραβήγματος προς τα κάτω της γραμμής δεδομένων, καθυστέρηση, ελευθερώνοντας το λεωφορείο, και ανίχνευση του παλμού παρουσίας
// …
}

Ο σκοπός αυτής της λειτουργίας είναι να στείλει έναν παλμό επαναφοράς στο DS18B20. Αφού η επαναφορά είναι επιτυχής, το DS18B20 θα επιστρέψει έναν παλμό παρουσίας.


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

Επαναφέρετε τον αισθητήρα.
Στείλτε το “πλοίο ΡΩΜΗ” εντολή (0xCC).
Στείλτε το “μετατροπή θερμοκρασίας” εντολή (0x44).
Περιμένετε να ολοκληρωθεί η μετατροπή.
Στείλτε το “διαβάστε την εγγραφή” εντολή (0xBE).
Διαβάστε δύο byte δεδομένων θερμοκρασίας.

Ο παρακάτω κώδικας δείχνει πώς να διαβάσετε την τιμή θερμοκρασίας του DS18B20:

int DS18B20_ReadTemperature() {
ανυπόγραφο char temp_low, θερμοκρασία_υψηλή;
ανυπόγραφο int temp;

// Επαναφέρετε τον αισθητήρα και παραλείψτε τις οδηγίες ROM
DS18B20_Reset();
DS18B20_WriteByte(0xCC); // Παράλειψη εντολών ROM
// Αποστολή εντολής θερμοκρασίας μετατροπής
DS18B20_WriteByte(0x44);
// Περιμένετε να ολοκληρωθεί η μετατροπή. Εδώ πρέπει να περιμένετε σύμφωνα με το χρόνο μετατροπής του DS18B20
// …

// Επαναφέρετε τον αισθητήρα και διαβάστε τα δεδομένα θερμοκρασίας
DS18B20_Reset();
DS18B20_WriteByte(0xCC); // Παράλειψη εντολών ROM
DS18B20_WriteByte(0xBE); // Εντολή ανάγνωσης εγγραφής

// Διαβάστε δύο byte δεδομένων
temp_low = DS18B20_ReadByte();
temp_high = DS18B20_ReadByte();
// Συνδυάστε δύο byte δεδομένων σε έναν ακέραιο 16-bit
θερμοκρασία = (θερμοκρασία_υψηλή << 8) | temp_low;
// Επιστρέψτε την τιμή θερμοκρασίας, μετατροπή κατάλληλα με βάση την ανάλυση του DS18B20
θερμοκρασία επιστροφής;
}


4.2.3 Εντοπισμός σφαλμάτων προγράμματος και χειρισμός εξαιρέσεων

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

Ακολουθούν ορισμένες στρατηγικές εντοπισμού σφαλμάτων και χειρισμού εξαιρέσεων:

Επαλήθευση δεδομένων: Μετά από κάθε ανάγνωση δεδομένων, χρησιμοποιήστε ένα άθροισμα ελέγχου ή ένα bit ελέγχου για να επιβεβαιώσετε την ορθότητα των δεδομένων.
Λήψη εξαίρεσης: Προσθέστε έναν μηχανισμό καταγραφής εξαίρεσης στο πρόγραμμα, όπως ένας μηχανισμός επανάληψης χρονικού ορίου, επαναφέρετε τον αισθητήρα, και τα λοιπά.
Πληροφορίες εντοπισμού σφαλμάτων: Προσθέστε επαρκή έξοδο πληροφοριών εντοπισμού σφαλμάτων στο πρόγραμμα για να βοηθήσετε στον εντοπισμό του προβλήματος.
int main() {
// Εκκινήστε τον αισθητήρα DS18B20
DS18B20_Θερμότητα();
// Κύριος βρόχος
ενώ(1) {
εσωτερική θερμοκρασία;
// Διαβάστε τη θερμοκρασία και ελέγξτε για σφάλματα
θερμοκρασία = DS18B20_ReadTemperature();
αν (θερμοκρασία < 0) {
εκτύπωση(“Σφάλμα ανάγνωσης θερμοκρασίας!\n”);
// Μπορείτε να επιλέξετε να προσπαθήσετε ξανά ή άλλους μηχανισμούς χειρισμού σφαλμάτων
} αλλού {
εκτύπωση(“Τρέχουσα θερμοκρασία: %dn”, θερμοκρασία);
}
}
απόδοση 0;
}

Αυτό το κεφάλαιο εισάγει τη βάση προγραμματισμού γλώσσας C και την προετοιμασία περιβάλλοντος του ψηφιακού θερμομέτρου DS18B20, καθώς και την εφαρμογή του προγράμματος ανάγνωσης θερμοκρασίας, και τονίζει τη σημασία του εντοπισμού σφαλμάτων προγραμμάτων και του χειρισμού εξαιρέσεων. Μέσα από την εισαγωγή αυτού του κεφαλαίου, Οι αναγνώστες θα πρέπει να είναι σε θέση να δημιουργήσουν ένα περιβάλλον ανάπτυξης, κατανοήσουν τη σημασία της βιβλιοθήκης λειτουργιών επικοινωνίας πρώτης γραμμής, και γράψτε ένα βασικό πρόγραμμα ανάγνωσης θερμοκρασίας. Τα επόμενα κεφάλαια θα εμβαθύνουν περαιτέρω στην κατασκευή και χρήση του περιβάλλοντος προσομοίωσης Proteus, παρέχοντας μια μέθοδο δοκιμής προσομοίωσης για την πραγματική συναρμολόγηση υλικού.


5. Διάγραμμα προσομοίωσης Proteus και ανάλυση αποτελεσμάτων προσομοίωσης
5.1 Κατασκευή περιβάλλοντος προσομοίωσης Proteus
5.1.1 Βασική λειτουργία του λογισμικού Proteus
Πριν ξεκινήσετε την κατασκευή του μοντέλου προσομοίωσης του ψηφιακού θερμομέτρου DS18B20, πρέπει πρώτα να κατανοήσετε και να κυριαρχήσετε τη βασική λειτουργία του λογισμικού Proteus. Το Proteus είναι ένα ισχυρό λογισμικό προσομοίωσης ηλεκτρονικών κυκλωμάτων που δεν μπορεί μόνο να σχεδιάσει σχηματικά κυκλώματα, αλλά και σχεδιάζουν διατάξεις PCB κυκλωμάτων και παρέχουν λειτουργίες προσομοίωσης. Ακολουθούν ορισμένα βασικά βήματα που θα σας βοηθήσουν να ξεκινήσετε με το Proteus:

Ανοίξτε το λογισμικό Proteus και δημιουργήστε ένα νέο έργο.
Αναζητήστε και επιλέξτε τα απαιτούμενα στοιχεία στη βιβλιοθήκη στοιχείων, όπως αισθητήρες DS18B20, μικροελεγκτές, προμηθεία τροφοδοσίας, καλώδια σύνδεσης, και τα λοιπά.
Σύρετε τα επιλεγμένα στοιχεία στην περιοχή σχεδίασης και χρησιμοποιήστε το ποντίκι για να τα τοποθετήσετε και να τα διατάξετε.
Χρησιμοποιήστε το εργαλείο καλωδίωσης για να συνδέσετε τις ακίδες κάθε εξαρτήματος για να σχηματίσετε ένα πλήρες κύκλωμα.
Κάντε διπλό κλικ σε ένα στοιχείο ή καλώδιο για να τροποποιήσετε τις ιδιότητές του, όπως η τιμή αντίστασης, τάση τροφοδοσίας, και τα λοιπά.

Βεβαιωθείτε ότι όλα τα εξαρτήματα έχουν συνδεθεί σωστά και ελέγξτε για σφάλματα ή παραλείψεις.

5.1.2 Δημιουργήστε ένα έργο προσομοίωσης DS18B20
Τα βήματα για τη δημιουργία ενός έργου προσομοίωσης για το ψηφιακό θερμόμετρο DS18B20 είναι τα εξής:

Ξεκινήστε το Proteus και επιλέξτε “Νέο Έργο” για τη δημιουργία ενός νέου έργου.
Αφού ορίσετε το όνομα και την τοποθεσία του έργου, κλικ “Επόμενος”.
Επιλέξτε ένα πρότυπο έργου, όπως “Βασισμένο σε μικροεπεξεργαστή”, και κάντε κλικ “Επόμενος”.
Στο “Στοιχεία Έργου” αυτί, έλεγχος “Συμπεριλάβετε προεπιλεγμένα στοιχεία” και επιλέξτε έναν μικροελεγκτή (όπως PIC, AVR, και τα λοιπά.) και έναν αισθητήρα DS18B20.
Κλικ “Φινίρισμα” για την ολοκλήρωση της δημιουργίας του έργου.

Επόμενος, δημιουργήστε ένα σχηματικό κύκλωμα:
Επιλέξτε το “ΕΠΙΛΕΞΤΕ ΣΥΣΚΕΥΗ” εργαλείο, βρείτε και επιλέξτε τον μικροελεγκτή και τον αισθητήρα DS18B20 στη βιβλιοθήκη στοιχείων.
Χρησιμοποιήστε το “ΤΟΠΟΘΕΤΗΣΗ ΣΥΣΚΕΥΗΣ” εργαλείο για την τοποθέτηση του επιλεγμένου στοιχείου στην περιοχή σχεδιασμού.
Χρησιμοποιήστε το “ΣΥΡΜΑ” εργαλείο για τη σύνδεση του μικροελεγκτή και των σχετικών ακίδων του αισθητήρα DS18B20.
Μετά την ολοκλήρωση της σύνδεσης, χρησιμοποιήστε το “ΚΕΙΜΕΝΟ” εργαλείο για την προσθήκη σχολιασμών στο διάγραμμα κυκλώματος για εύκολη κατανόηση και τροποποίηση.

5.2 Δοκιμή προσομοίωσης και ανάλυση δεδομένων
5.2.1 Ορίστε παραμέτρους και συνθήκες προσομοίωσης
Πριν ξεκινήσει η προσομοίωση, πρέπει να ορίσετε τις παραμέτρους και τις συνθήκες για την εκτέλεση της προσομοίωσης:
Κάντε διπλό κλικ στο στοιχείο του μικροελεγκτή για να εισέλθετε στη διεπαφή ρυθμίσεων ιδιοτήτων.
Επιλέξτε τη διαδρομή αρχείου προγράμματος που γράφτηκε προηγουμένως στο “Αρχείο προγράμματος”.
Ρυθμίστε τις παραμέτρους τροφοδοσίας για να διασφαλίσετε ότι τόσο ο μικροελεγκτής όσο και ο αισθητήρας DS18B20 έχουν τη σωστή τάση τροφοδοσίας.
Επόμενος, ορίστε τις παραμέτρους χρόνου για την προσομοίωση:
Στον πίνακα ελέγχου προσομοίωσης, επιλέγω “Καθολικές ρυθμίσεις”.
Προσαρμόστε την ταχύτητα προσομοίωσης και τον μέγιστο χρόνο προσομοίωσης.
Ορίστε τα κατάλληλα σημεία διακοπής για την ανάλυση δεδομένων κατά τη διάρκεια της διαδικασίας προσομοίωσης.

5.2.2 Προσομοίωση και ανάγνωση δεδομένων θερμοκρασίας
Εκτελέστε την προσομοίωση και προσομοίωση δεδομένων θερμοκρασίας:
Κάντε κλικ στο “Παιχνίδι” κουμπί στον πίνακα ελέγχου προσομοίωσης για να ξεκινήσει η προσομοίωση.
Χρησιμοποιήστε το “ΕΝΤΟΠΙΣΜΟΣ ΣΦΑΛΜΑΤΩΝ” εργαλείο για να δείτε την κατάσταση λειτουργίας του προγράμματος και τις τιμές μεταβλητών.
Προσομοιώστε τον αισθητήρα DS18B20 για να διαβάσετε την τιμή θερμοκρασίας, που συνήθως επιτυγχάνεται με την τροποποίηση του εικονικού θερμομέτρου στο περιβάλλον προσομοίωσης.

Για να διαβάσετε δεδομένα θερμοκρασίας στην προσομοίωση, μπορείτε να ανατρέξετε στα παρακάτω βήματα:
Βρείτε τις ρυθμίσεις προσομοίωσης θερμοκρασίας στις ιδιότητες του στοιχείου DS18B20.
Τροποποιήστε την τιμή θερμοκρασίας για να ελέγξετε την απόκριση του συστήματος κάτω από διαφορετικές συνθήκες θερμοκρασίας.
Παρατηρήστε πώς το πρόγραμμα μικροελεγκτή επεξεργάζεται τα δεδομένα θερμοκρασίας.

5.2.3 Ανάλυση αποτελεσμάτων και αντιμετώπιση προβλημάτων
Αναλύστε τα αποτελέσματα της προσομοίωσης και επιβεβαιώστε την απόδοση του θερμομέτρου:
Παρακολουθήστε τα δεδομένα στο παράθυρο εξόδου για να ελέγξετε εάν η ένδειξη θερμοκρασίας είναι ακριβής.
Χρησιμοποιήστε το εργαλείο ανάλυσης λογικής για να παρακολουθήσετε εάν η διαδικασία επικοινωνίας δεδομένων είναι κανονική.
Ελέγξτε για τυχόν μη φυσιολογικά σήματα ή ασταθείς εξόδους.

Εκτελέστε διάγνωση σφαλμάτων και εντοπισμό σφαλμάτων:
Εάν η ένδειξη θερμοκρασίας είναι ανακριβής ή υπάρχει σφάλμα, ελέγξτε τη μέθοδο σύνδεσης και τη διαμόρφωση του DS18B20.
Αναλύστε τον κώδικα του προγράμματος για να βεβαιωθείτε ότι οι αλγόριθμοι επικοινωνίας πρώτης γραμμής και μετατροπής δεδομένων εφαρμόζονται σωστά.
Χρησιμοποιήστε το “Στάση” λειτουργία του λογισμικού προσομοίωσης για παύση της προσομοίωσης και παρατήρηση της τρέχουσας κατάστασης του συστήματος.