Πίνακας περιεχομένων:

Θερμόμετρο εσωτερικού/εξωτερικού χώρου USB (ή, «Η πρώτη μου συσκευή USB»): 4 βήματα (με εικόνες)
Θερμόμετρο εσωτερικού/εξωτερικού χώρου USB (ή, «Η πρώτη μου συσκευή USB»): 4 βήματα (με εικόνες)

Βίντεο: Θερμόμετρο εσωτερικού/εξωτερικού χώρου USB (ή, «Η πρώτη μου συσκευή USB»): 4 βήματα (με εικόνες)

Βίντεο: Θερμόμετρο εσωτερικού/εξωτερικού χώρου USB (ή, «Η πρώτη μου συσκευή USB»): 4 βήματα (με εικόνες)
Βίντεο: 10+1 tips για να μην ξελιγώνεις την μπαταρία του iPhone 2024, Ιούλιος
Anonim
Θερμόμετρο εσωτερικού/εξωτερικού χώρου USB (ή, «Η πρώτη μου συσκευή USB»)
Θερμόμετρο εσωτερικού/εξωτερικού χώρου USB (ή, «Η πρώτη μου συσκευή USB»)

Αυτός είναι ένας απλός σχεδιασμός που δείχνει το περιφερειακό USB στα PIC 18F. Υπάρχουν πολλά παραδείγματα για τα τσιπ 18F4550 40 ακίδων στο διαδίκτυο, αυτός ο σχεδιασμός δείχνει τη μικρότερη έκδοση 28 ακίδων 18F2550. Το PCB χρησιμοποιεί εξαρτήματα τοποθέτησης στην επιφάνεια, αλλά όλα τα εξαρτήματα είναι διαθέσιμα σε εκδόσεις μέσω οπών. Χρησιμοποιώ εξαρτήματα επιτοίχιας τοποθέτησης επειδή είναι πιο γρήγορο να φτιάχνω την σανίδα χωρίς τρύπες. Το τελικό αποτέλεσμα είναι ένα μικρό περιφερειακό USB που μετρά τις θερμοκρασίες εσωτερικού/εξωτερικού χώρου. Τα δεδομένα είναι διαθέσιμα στον υπολογιστή μέσω μιας εικονικής σειριακής θύρας. Στο παράδειγμα χρησιμοποιούνται αισθητήρες θερμοκρασίας, αλλά μπορούν να προστεθούν και άλλοι αναλογικοί αισθητήρες. PS Δείτε μια ζωντανή γραφική παράσταση των δεδομένων από τον καταγραφέα μου εδώ: https://www.syndicit.com/stream/ian/nieuwemarkt/indoor_temperature/? Format = γραφική παράσταση

Βήμα 1: Επισκόπηση σχεδιασμού

Επισκόπηση σχεδίου
Επισκόπηση σχεδίου
Επισκόπηση σχεδίου
Επισκόπηση σχεδίου
Επισκόπηση σχεδίου
Επισκόπηση σχεδίου

Απαιτούμενα στοιχεία PIC

Αυτό το περιφερειακό USB βασίζεται στο PIC 18F2550 28 ακίδων. Αυτό το τσιπ διαθέτει όλα όσα χρειάζονται για μια διεπαφή USB πλήρους ταχύτητας. Ένας πυκνωτής 0.1uf μεταξύ ισχύος και γείωσης αποσυνδέει το PIC από το τροφοδοτικό. Ένας κρύσταλλος 20MHz (χρησιμοποιείται για τη δημιουργία εσωτερικού ρολογιού 48MHz) και δύο πυκνωτές 27pf. Αντίσταση 10Κ από την τροφοδοσία στην ακίδα MCLR. Πρόσθεσα μια ισοδύναμη δίοδο 1n4148 μεταξύ της αντίστασης και της ισχύος, έτσι ώστε τα 13+βολτ που τοποθετήθηκαν στο MCLR κατά τον προγραμματισμό να μην βλάψουν άλλα εξαρτήματα στην πλακέτα κυκλώματος. Μια κεφαλίδα ICSP (5 ακίδες) χρησιμοποιείται για τον προγραμματισμό και τον εντοπισμό σφαλμάτων της συσκευής. Απαιτούμενα στοιχεία USB Μια θηλυκή υποδοχή USB τύπου "Β". Απαιτείται 220nf-440nf χωρητικότητας για τον εσωτερικό ρυθμιστή τάσης USB. Χρησιμοποιώ δύο πυκνωτές 0.1uf (ίδιοι που χρησιμοποιούνται για αποσύνδεση) χωρίς πρόβλημα. Ένα LED με αντίσταση περιορισμού ρεύματος 330ohm χρησιμοποιείται για την εμφάνιση της κατάστασης σύνδεσης USB. Απαιτούμενα στοιχεία αισθητήρα Χρησιμοποίησα τον αισθητήρα θερμοκρασίας μικροτσίπ TC1047A ως αισθητήρα θερμοκρασίας εσωτερικού χώρου. Συγκολλάται φυσικά στον πίνακα - αυτό το κάνει να τρέχει μερικούς βαθμούς πιο ζεστό από τη θερμοκρασία δωματίου. Μια κεφαλίδα χρησιμοποιείται για τη σύνδεση ενός εξωτερικού αισθητήρα θερμοκρασίας (έκδοση TO-92 του TC1047a). Ένας επιπλέον πυκνωτής 0,1uf βοηθά στην αποσύνδεση ενός μακρού καλωδίου που τρέχει από το υπόλοιπο της πλακέτας. Τα επίπεδα τάσης USB δεν είναι αρκετά συνεπή για να μετρήσουν και να υπολογίσουν με ακρίβεια τη θερμοκρασία από τους αναλογικούς αισθητήρες. Χρησιμοποιείται εξωτερική αναφορά τάσης (MCP1525, 2.5volt). Η αναφορά τάσης απαιτεί έναν πυκνωτή στην έξοδο από 1uf έως 10uf. Χωρίς αυτόν τον πυκνωτή η αναφορά τάσης δεν θα λειτουργήσει.

Βήμα 2: Υλικολογισμικό

Το υλικολογισμικό χρησιμοποιεί την κλάση USB CDC για να μιμηθεί μια σειριακή θύρα. Η συσκευή θα εμφανιστεί ως εικονική θύρα com σε υπολογιστή. Το υλικολογισμικό χωρίζεται σε τρεις ενότητες: 1. Το πρόγραμμα οδήγησης USB φροντίζει να απαριθμήσει τη συσκευή σε υπολογιστή και να εξομοιώσει μια θύρα COM. 2. Μια ρουτίνα σέρβις διαβάζει εναλλάξ τις τιμές θερμοκρασίας και τις μετατρέπει σε αναγνώσιμη μορφή. Η ταυτόχρονη εκτέλεση και των δύο αυτών λειτουργιών προκάλεσε τη διακοπή της σύνδεσης της συσκευής USB με τον υπολογιστή (χρονική καθυστέρηση). Η μετατροπή των τιμών των κυμαινόμενων σημείων σε συμβολοσειρά στον κύκλο υπηρεσιών μετά τη μετατροπή καθάρισε το πρόβλημα συνδεσιμότητας.* 3. Τέλος, μια κύρια ρουτίνα λαμβάνει byte που αποστέλλονται από τον υπολογιστή και επιστρέφει τις ζητούμενες μετρήσεις. Πολλαπλά μέτρα διαχωρίζονται με κόμμα, οι γραμμές τερματίζονται με μηδενικό χαρακτήρα (εξάδα 0x00) Το υλικολογισμικό επίδειξης δέχεται τις ακόλουθες εντολές: Τιμή εξάγωνου Επιστρέφει 0x00 Θερμοκρασία εσωτερικού χώρου (αισθητήρας επί του σκάφους) 0x01 Θερμοκρασία εξωτερικού χώρου (εξωτερική κεφαλίδα) 0x02 Και οι δύο θερμοκρασίες (κόμμα διαχωρίζεται) Η θερμοκρασία υπολογίζεται με βάση την αναφορά 2,5 volt και τη μετατόπιση και κλίση του Microchip TC1047A. Άλλοι αισθητήρες θερμοκρασίας μπορεί να έχουν διαφορετικά χαρακτηριστικά. Το φύλλο δεδομένων TC1047A είναι διαθέσιμο εδώ: https://ww1.microchip.com/downloads/en/DeviceDoc/21498c.pdfΤο υλικολογισμικό είναι γραμμένο σε MPLAB με τον επίδειξη μεταγλωττιστή PIC C18. https://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=1406&dDocName=en010014&part=SW006011Το πραγματικό υλικολογισμικό USB παρέχεται από το Microchip. Το αρχικό περιβάλλον είναι διαθέσιμο εδώ: https://www.microchip.com/stellent/idcplg? IdcService = SS_GET_PAGE & nodeId = 1824 & appnote = en021631Για να επεξεργαστείτε το υλικολογισμικό: εξαγάγετε ολόκληρη τη δομή καταλόγου της πηγής στον βασικό σας κατάλογο (c: / MCHPFSUSB) Το Στη συνέχεια, μπορείτε να φορτώσετε το αρχείο χώρου εργασίας στο MPLAB. Για να ξεπεράσετε το πρόβλημα συνδεσιμότητας, η ρουτίνα υπηρεσίας USB καλείται σε διάφορα σημεία της ρουτίνας float2string. Αυτό θα ήταν καλύτερο να διορθωθεί με συντήρηση του περιφερειακού USB σε διακοπή. Χρησιμοποίησα το hack έτσι ώστε το υλικολογισμικό να παραμείνει όσο το δυνατόν πιο κοντά στην έκδοση αναφοράς.

Βήμα 3: Δοκιμή της συσκευής

Δοκιμή της συσκευής
Δοκιμή της συσκευής
Δοκιμή της συσκευής
Δοκιμή της συσκευής
Δοκιμή της συσκευής
Δοκιμή της συσκευής

Οι οδηγίες είναι για τα παράθυρα, αλλά η συσκευή μπορεί να συνδεθεί με οτιδήποτε έχει προγράμματα οδήγησης προσομοίωσης σειριακής θύρας CDC.

Προγραμματίστε τη συσκευή με το υλικολογισμικό. Όλα τα bit διαμόρφωσης θα πρέπει να ρυθμιστούν σωστά στο υλικολογισμικό. Συνδέστε τη συσκευή σε μια θύρα USB. Τα Windows θα το εντοπίσουν και θα σας ζητήσουν να επιλέξετε πρόγραμμα οδήγησης. ΝΑ ΕΙΣΤΕ ΣΙΓΟΥΡΕΣ ΓΙΑ ΝΑ ΚΑΝΕΤΕ ΚΛΙΚ ‘BROWSE FOR CUSTOM DRIVER’. Μεταβείτε στη θέση του αρχείου.inf που περιλαμβάνεται στο αρχείο έργου (driver-win2k_winxp). Τα Windows θα χρησιμοποιήσουν αυτό το αρχείο για να εγκαταστήσουν τη συσκευή. *Σημείωση για το πρόγραμμα οδήγησης CDC - το πρόγραμμα οδήγησης προσομοίωσης σειριακής θύρας CDC περιλαμβάνεται στα Windows. Το αρχείο.inf (παρέχεται από το Microchip) απλώς λέει στα Windows να συνδέσουν αυτά τα προγράμματα οδήγησης στη συσκευή. Για να μάθετε σε ποια θύρα COM εκχωρήθηκε η συσκευή κάντε τα εξής: Μεταβείτε στον πίνακα ελέγχου (έναρξη-> ρυθμίσεις-> πίνακας ελέγχου) Κάντε διπλό κλικ στο «σύστημα» Κάντε κλικ στην καρτέλα «υλικό». Κάντε κλικ στο «Διαχείριση συσκευών» Κάντε κλικ στο «+» δίπλα στις θύρες Εμφανίζεται μια λίστα θυρών COM στο σύστημα. Έχω δει τη συσκευή να εμφανίζεται ως COM 3 και 4, αλλά θα διαφέρει ανάλογα με το σύστημα. Εάν δεν είναι προφανές ποια θύρα είναι νέα, δοκιμάστε αυτό: Αποσυνδέστε τη συσκευή από τη θύρα USB. Μια από τις θύρες θα εξαφανιστεί. Αυτή είναι η θύρα COM της συσκευής #. Συνδέστε ξανά τη συσκευή, η θύρα θα εμφανιστεί ξανά. Η μικρή εφαρμογή VB (περιλαμβάνεται η πηγή) μπορεί να χρησιμοποιηθεί για τον έλεγχο της συσκευής. Εισαγάγετε την εντολή προς αποστολή, κάντε κλικ στο «Έναρξη». Η απάντηση θα εμφανιστεί στο παράθυρο.

Βήμα 4: Τι άλλο μπορεί να κάνει;

Τι άλλο μπορεί να κάνει
Τι άλλο μπορεί να κάνει

Αυτός ο πίνακας επίδειξης είναι ένα καλό σημείο εκκίνησης για έναν μικρό μετεωρολογικό σταθμό στο σπίτι: Προσθέστε έναν αισθητήρα υγρασίας HIH3160 ή αντικαταστήστε τον αναλογικό αισθητήρα θερμοκρασίας με τον σειριακό αισθητήρα θερμοκρασίας και υγρασίας υψηλής ακρίβειας Sensiron HT74. Προσθέστε έναν αισθητήρα πίεσης Freescale MPX (a) 4115 σε μετρήστε τη βαρομετρική πίεση. Θέλετε να κοινοποιήσετε αυτά τα δεδομένα στον ιστό; Να το συμπεριλάβετε στον δικό σας ιστότοπο, να το δείτε στο google earth ή να λάβετε ενημερώσεις στο καλάμι RSS; Δείτε αυτό το οδηγό σχετικά με την ενσωμάτωση αυτής της συσκευής με το backend ιστού syndicIT.com:

Συνιστάται: