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

Θερμοχρωμική οθόνη θερμοκρασίας & υγρασίας - Έκδοση PCB: 6 βήματα (με εικόνες)
Θερμοχρωμική οθόνη θερμοκρασίας & υγρασίας - Έκδοση PCB: 6 βήματα (με εικόνες)

Βίντεο: Θερμοχρωμική οθόνη θερμοκρασίας & υγρασίας - Έκδοση PCB: 6 βήματα (με εικόνες)

Βίντεο: Θερμοχρωμική οθόνη θερμοκρασίας & υγρασίας - Έκδοση PCB: 6 βήματα (με εικόνες)
Βίντεο: Το μέλλον στις στολές παραλλαγής; 2024, Ιούλιος
Anonim
Image
Image
Σχεδιασμός του θερμαντήρα PCB
Σχεδιασμός του θερμαντήρα PCB

Πριν από λίγο καιρό έκανα ένα έργο που ονομάζεται Thermochromic Temperature & Humidity Display (Οθόνη Θερμοχρωμικής Θερμοκρασίας & Υγρασίας) όπου έχτισα μια οθόνη 7 τμημάτων από πλάκες χαλκού που θερμάνθηκαν/ψύχθηκαν από στοιχεία peltier. Οι πλάκες χαλκού καλύφθηκαν με ένα θερμοχρωμικό φύλλο που αλλάζει χρώμα με τη θερμοκρασία. Αυτό το έργο είναι μια μικρότερη έκδοση της οθόνης η οποία αντί για peltiers χρησιμοποιεί ένα PCB με ίχνη θέρμανσης όπως προτείνεται από τον χρήστη DmitriyU2 στην ενότητα σχολίων. Η χρήση θερμαντήρα PCB επιτρέπει έναν πολύ απλούστερο και πιο συμπαγή σχεδιασμό. Η θέρμανση είναι επίσης πιο αποδοτική, γεγονός που οδηγεί σε ταχύτερη αλλαγή χρώματος.

Δείτε το βίντεο για να δείτε πώς λειτουργεί η οθόνη.

Δεδομένου ότι μου είχαν απομείνει μερικά PCB, πουλάω επίσης αυτήν την οθόνη στο κατάστημά μου Tindie.

Προμήθειες

  • PCB θερμαντήρα (δείτε το GitHub μου για αρχεία Gerber)
  • Έλεγχος PCB (δείτε το GitHub μου για αρχεία Gerber και BoM)
  • Αισθητήρας DHT22 (π.χ. ebay.de)
  • Τρισδιάστατη εκτυπωμένη βάση (δείτε το GitHub μου για αρχείο stl)
  • Θερμοχρωμικό αυτοκόλλητο φύλλο, 150x150 mm, 30-35 ° C (SFXC)
  • Μπουλόνι M2x6 + παξιμάδι
  • 2x κεφαλίδα ακίδων 1x9, 2,54 mm (π.χ. mouser.com)
  • 2x συνδετήρας πλακέτας SMD 1x9, 2,54 mm (π.χ. mouser.com)

Βήμα 1: Σχεδιάζοντας το PCB του θερμαντήρα

Σχεδιασμός του θερμαντήρα PCB
Σχεδιασμός του θερμαντήρα PCB
Σχεδιασμός του θερμαντήρα PCB
Σχεδιασμός του θερμαντήρα PCB

Το θερμαντικό PCB σχεδιάστηκε στο Eagle. Οι διαστάσεις του PCB είναι 100x150 mm επειδή 150x150 mm είναι το τυπικό μέγεθος των θερμοχρωμικών φύλλων που χρησιμοποίησα. Στην αρχή έκανα ένα σκίτσο των τμημάτων στο Fusion360 το οποίο αποθηκεύτηκε ως dxf και στη συνέχεια εισήχθη στο Eagle. Τα τμήματα έχουν κενά μεταξύ τους και συνδέονται μόνο με μικρές γέφυρες. Αυτό βελτιώνει τη θερμομόνωση των μεμονωμένων τμημάτων και συνεπώς επιτρέπει ταχύτερη θέρμανση και μειώνει το «θερμικό διασταύρωση». Τα τμήματα γέμισαν με ίχνη PCB στο επάνω στρώμα (εμφανίζονται με κόκκινο χρώμα) χρησιμοποιώντας το εργαλείο μαίανδρου στο Eagle. Χρησιμοποίησα πλάτος διαδρομής και απόσταση 6 mil που είναι το ελάχιστο μέγεθος που μπορεί να κατασκευαστεί από την PCBWay χωρίς επιπλέον κόστος. Κάθε ίχνος περιστρέφεται ανάμεσα σε δύο vias, τα οποία στη συνέχεια συνδέονται με τις ακίδες μέσω του κάτω στρώματος (εμφανίζονται με μπλε χρώμα) χρησιμοποιώντας πολύ παχύτερα ίχνη 32 mil. Όλα τα τμήματα έχουν κοινό έδαφος.

Δεν έκανα κανέναν υπολογισμό για τη θερμαντική ισχύ που απαιτείται για μια ορισμένη αύξηση της θερμοκρασίας ούτε υπολόγισα την αναμενόμενη αντίσταση ενός τμήματος. Σκέφτηκα ότι οποιαδήποτε ρύθμιση της ισχύος θέρμανσης μπορεί να γίνει χρησιμοποιώντας ένα σήμα PWM με διαφορετικό κύκλο λειτουργίας. Αργότερα διαπίστωσα ότι τα τμήματα θερμαίνονται αρκετά γρήγορα όταν τροφοδοτούνται μέσω της θύρας USB 5V χρησιμοποιώντας κύκλο λειτουργίας ~ 5%. Το συνολικό ρεύμα κατά τη θέρμανση και των 17 τμημάτων είναι περίπου 1,6 Α.

Όλα τα αρχεία του σκάφους μπορούν να βρεθούν στο GitHub μου.

Βήμα 2: Σχεδιασμός του ελεγκτή PCB

Σχεδιασμός του ελεγκτή PCB
Σχεδιασμός του ελεγκτή PCB
Σχεδιασμός του ελεγκτή PCB
Σχεδιασμός του ελεγκτή PCB
Σχεδιασμός του ελεγκτή PCB
Σχεδιασμός του ελεγκτή PCB

Για τον έλεγχο της θερμάστρας PCB επιλέγω ένα SAMD21E18 MCU το οποίο επίσης χρησιμοποίησα στο έργο μου GlassCube. Αυτός ο μικροελεγκτής διαθέτει αρκετές ακίδες για τον έλεγχο και των 17 τμημάτων θερμαντήρα και την ανάγνωση του αισθητήρα DHT22. Διαθέτει επίσης εγγενή USB και μπορεί να αναβοσβήνει με το πρόγραμμα εκκίνησης του Adafruit's CircuitPython. Μια υποδοχή micro USB χρησιμοποιήθηκε ως τροφοδοτικό και για τον προγραμματισμό του MCU. Τα τμήματα του θερμαντήρα ελέγχονται από 9 MOSFET δύο καναλιών (SP8K24FRATB). Αυτά μπορούν να χειριστούν έως 6 Α και έχουν τάση κατωφλίου πύλης <2,5 V, ώστε να μπορούν να εναλλάσσονται με το λογικό σήμα 3,3 V από το MCU. Βρήκα αυτό το νήμα πολύ χρήσιμο για να με βοηθήσει να σχεδιάσω το κύκλωμα ελέγχου θερμαντήρα.

Παρήγγειλα τα PCB από το PCBWay και τα ηλεκτρονικά μέρη ξεχωριστά από το Mouser και τα συγκέντρωσα μόνος μου για να εξοικονομήσω κόστος. Χρησιμοποίησα έναν διανομέα πάστας συγκόλλησης που τοποθέτησε τα μέρη με το χέρι και τα συγκολλούσα με έναν θερμαντήρα IC υπέρυθρης ακτινοβολίας. Ωστόσο, λόγω της σχετικά μεγάλης ποσότητας εξαρτημάτων που εμπλέκονται και της απαιτούμενης επανεπεξεργασίας, αυτό ήταν αρκετά κουραστικό και σκέφτομαι να χρησιμοποιήσω μια υπηρεσία συναρμολόγησης στο μέλλον.

Και πάλι τα αρχεία του πίνακα μπορούν να βρεθούν στο GitHub μου. Εκεί μπορείτε να βρείτε μια βελτιωμένη έκδοση του PCB που χρησιμοποιεί υποδοχή USB-C αντί για micro USB. Επίσης, διόρθωσα την απόσταση μεταξύ των οπών για τον αισθητήρα DHT22 και πρόσθεσα μια υποδοχή 10 ακίδων για ευκολότερο φλας του bootloader μέσω J-Link.

Βήμα 3: CircuitPython Bootloader

Στην αρχή, έλαμψα το SAMD21 με ένα bootloader UF2 βασισμένο στο Trinket M0 του Adafruit. Ο φορτωτής εκκίνησης έπρεπε να τροποποιηθεί ελαφρώς επειδή το Trinket έχει ένα LED συνδεδεμένο σε έναν από τους πείρους που χρησιμοποιώ για θέρμανση. Διαφορετικά, αυτός ο πείρος θα ανέβει για μικρό χρονικό διάστημα μετά την εκκίνηση και θα θερμάνει το συνδεδεμένο τμήμα με πλήρη ισχύ. Το φλας του bootloader γίνεται με τη σύνδεση ενός J-Link στο MCU μέσω των θυρών SWD και SWC. Η όλη διαδικασία περιγράφεται λεπτομερώς στον ιστότοπο του Adafruit. Μετά την εγκατάσταση του bootloader, το MCU αναγνωρίζεται ως μονάδα flash όταν συνδέεται μέσω της θύρας micro USB και οι επόμενοι εκκινητές μπορούν να εγκατασταθούν απλά σύροντας ένα αρχείο UF2 στη μονάδα δίσκου.

Ως επόμενο βήμα ήθελα να εγκαταστήσω ένα bootloader CircuitPython. Ωστόσο, δεδομένου ότι ο πίνακας μου χρησιμοποιεί πολλές καρφίτσες που δεν είναι συνδεδεμένες στο Trinket M0, έπρεπε πρώτα να τροποποιήσω ελαφρώς τη διαμόρφωση της πλακέτας. Και πάλι υπάρχει ένα εξαιρετικό σεμινάριο για αυτό στον ιστότοπο του Adafruit. Βασικά, κάποιος πρέπει να σχολιάσει μερικές αγνοημένες καρφίτσες στο mpconfigboard.h και στη συνέχεια να μεταγλωττίσει τα πάντα. Τα προσαρμοσμένα αρχεία εκκίνησης είναι επίσης διαθέσιμα στο GitHub μου.

Βήμα 4: Κωδικός CircuitPython

CircuitPython Code
CircuitPython Code
CircuitPython Code
CircuitPython Code

Αφού εγκατασταθεί ο φορτωτής εκκίνησης CircuitPython, μπορείτε απλώς να προγραμματίσετε τον πίνακα αποθηκεύοντας τον κωδικό σας ως αρχείο code.py απευθείας στη μονάδα flash USB. Ο κώδικας που έγραψα διαβάζει τον αισθητήρα DHT22 και στη συνέχεια εμφανίζει εναλλάξ τη θερμοκρασία και την υγρασία θερμαίνοντας τα αντίστοιχα τμήματα. Όπως ήδη αναφέρθηκε, η θέρμανση γίνεται με εναλλαγή των MOSFET με σήμα PWM. Αντί να διαμορφώσω τους πείρους ως εξόδους PWM, δημιούργησα ένα "ψεύτικο" σήμα PWM με χαμηλή συχνότητα μεταγωγής 100 Hz στον κώδικα χρησιμοποιώντας καθυστερήσεις. Για να μειώσω περαιτέρω την τρέχουσα κατανάλωση, δεν ενεργοποιώ τα τμήματα ταυτόχρονα αλλά διαδοχικά, όπως φαίνεται στο παραπάνω διάγραμμα. Υπάρχουν επίσης μερικά κόλπα για να κάνετε τη θέρμανση των τμημάτων πιο ομοιόμορφη. Πρώτα απ 'όλα, ο κύκλος λειτουργίας είναι λίγο διαφορετικός για κάθε τμήμα. Για παράδειγμα, η παύλα του σημείου "%" χρειάζεται πολύ μεγαλύτερο κύκλο λειτουργίας λόγω της υψηλότερης αντίστασής του. Επίσης διαπίστωσα ότι τα τμήματα που περιβάλλονται από πολλά άλλα τμήματα πρέπει να θερμαίνονται λιγότερο. Επιπλέον, εάν ένα τμήμα θερμάνθηκε στο προηγούμενο "τρέξιμο", ο κύκλος λειτουργίας μπορεί να μειωθεί στο επόμενο. Τέλος, ο χρόνος θέρμανσης και ψύξης προσαρμόζεται στη θερμοκρασία περιβάλλοντος που μετράται βολικά από τον αισθητήρα DHT22. Για να βρω εύλογες σταθερές χρόνου βαθμονόμησα την οθόνη σε ένα κλιματικό θάλαμο στον οποίο ευτυχώς έχω πρόσβαση στη δουλειά.

Μπορείτε να βρείτε τον πλήρη κώδικα στο GitHub μου.

Βήμα 5: Συναρμολόγηση

Συνέλευση
Συνέλευση
Συνέλευση
Συνέλευση
Συνέλευση
Συνέλευση

Η συναρμολόγηση της οθόνης είναι αρκετά εύκολη και μπορεί να χωριστεί στα ακόλουθα βήματα

  1. Συγκολλήστε γυναικείες κεφαλίδες καρφιτσών για θερμαντικό PCB
  2. Συνδέστε αυτοκόλλητο θερμοχρωμικό φύλλο στο θερμαντικό PCB
  3. Συγκολλήστε τον αισθητήρα DHT22 στο PCB του ελεγκτή και στερεώστε με μπουλόνι και παξιμάδι M2
  4. Συγκολλήστε αρσενικές κεφαλίδες καρφιτσών σε ελεγκτή PCB
  5. Συνδέστε και τα δύο PCB και τοποθετήστε τα στη βάση εκτύπωσης 3D

Βήμα 6: Ολοκληρωμένο έργο

Ολοκληρωμένο Έργο
Ολοκληρωμένο Έργο
Ολοκληρωμένο Έργο
Ολοκληρωμένο Έργο

Είμαι αρκετά ευχαριστημένος με το τελειωμένο παιχνίδι που τρέχει συνεχώς στο σαλόνι μας. Ο στόχος της δημιουργίας μιας μικρότερης, απλούστερης έκδοσης της αρχικής μου θερμοχρωμικής οθόνης επιτεύχθηκε σίγουρα και θα ήθελα να ευχαριστήσω για άλλη μια φορά τον χρήστη DmitriyU2 για την πρόταση. Το έργο με βοήθησε επίσης να βελτιώσω τις δεξιότητες σχεδιασμού PCB στο Eagle και έμαθα για τη χρήση των MOSFET ως διακόπτες.

Θα μπορούσε κάποιος να βελτιώσει περαιτέρω τον σχεδιασμό κάνοντας ένα ωραίο περίβλημα για τα PCB. Σκέφτομαι επίσης να φτιάξω ένα ψηφιακό ρολόι στο ίδιο στυλ.

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

PCB Design Challenge
PCB Design Challenge
PCB Design Challenge
PCB Design Challenge

Βραβείο κριτών στο PCB Design Challenge

Συνιστάται: