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

Wort-Uhr: 5 βήματα
Wort-Uhr: 5 βήματα

Βίντεο: Wort-Uhr: 5 βήματα

Βίντεο: Wort-Uhr: 5 βήματα
Βίντεο: Покинутый дом_Рассказ_Слушать 2024, Νοέμβριος
Anonim
Wort-Uhr
Wort-Uhr

Γεια σας μαζί!

Αυτό θα είναι το πρώτο μου διδακτικό και αν έχετε ιδέες πώς να το βελτιώσετε ή να το καταλάβετε ευκολότερα, μη διστάσετε να επικοινωνήσετε μαζί μου!

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

Μια λέξη για τα "μη Γερμανικά" μέλη … Συγγνώμη για το γεγονός ότι αυτό είναι απλώς ένα "German Wort Uhr". Μπορεί να μετατραπεί εύκολα σε αγγλικά ή σε οποιαδήποτε άλλη γλώσσα, αλλά ως Γερμανός το έκανα στη γλώσσα μου. Εάν χρειάζεστε υποστήριξη για τη γλώσσα σας επικοινωνήστε μαζί μου και θα προσπαθήσω να σας βοηθήσω.

Ας ξεκινήσουμε λοιπόν…

Βήμα 1: Το σχηματικό

Το Σχηματικό
Το Σχηματικό

Το σχήμα είναι ευθεία προς τα εμπρός και αν η εικόνα είναι κακή για ανάγνωση, υπάρχει επίσης ένα αρχείο PDF.

Ας ξεκινήσουμε στην κάτω αριστερή γωνία. Υπάρχει ένα απλό τροφοδοτικό που χρησιμοποιεί ένα LM7805 για να δημιουργήσει μια σταθερή έξοδο 5V για το PIC, καταχωρητές αλλαγής ταχυτήτων (74HC164) και τσιπ πραγματικού χρόνου DS3231. Όλα τα LED παρέχονται επίσης από αυτό το μέρος. Το D22 στο δεξί άκρο είναι μόνο για ένδειξη τροφοδοσίας και μπορεί εύκολα να αφαιρεθεί αν δεν το θέλετε.

Μπορείτε να χρησιμοποιήσετε οποιοδήποτε τροφοδοτικό DC για ρολόι με λιγότερο από 40V, αλλά στη συνέχεια θα πρέπει να επιλέξετε την κατάλληλη τιμή για το C7. Θα πρέπει να έχει ονομαστική τάση τουλάχιστον διπλάσια από την τάση εισόδου και να θυμάστε ότι δημιουργείτε θερμότητα στο LM7805, οπότε θα πρέπει να προσπαθήσετε να διατηρήσετε την τάση εισόδου όσο το δυνατόν χαμηλότερη γιατί όλα τα άλλα είναι απλώς σπατάλη ενέργειας. Η καλύτερη εφαρμογή είναι κάτι μεταξύ 9V και 12V DC.

Μην ασχολείστε με την πολικότητα του τροφοδοτικού σας … Το p-channel MOSFET (Q1) λειτουργεί ως ψευδής προστασία πολικότητας και το ρολόι δεν θα λειτουργήσει και δεν θα πάθει καμία ζημιά. Μπορείτε να το ελέγξετε στο "power" LED D22 εάν είναι τοποθετημένο.

Στη δεξιά πλευρά του σχηματικού είναι οι σειριακοί παράλληλοι καταχωρητές βάρδιας. Αποφάσισα να τα χρησιμοποιήσω επειδή δεν ήθελα να χρησιμοποιήσω ένα τεράστιο PIC με πολλές θύρες εισόδου/εξόδου. Wantedθελα να χρησιμοποιήσω ένα μικρότερο και είχα ακόμα 16F1829 στο σπίτι, οπότε η επιλογή ήταν ήδη σαφής. Τα δεδομένα (IN_1, IN_2 και IN_3) παρέχονται από το PIC (δείτε την ενότητα κωδικού παρακάτω) και το REGISTER_CLK επίσης. Για απλότητα στον κώδικα και τη διάταξη PCB χρησιμοποίησα δύο από τα 74HC164 για τις ώρες και το τελευταίο για τη "λογική".

Στην επάνω αριστερή γωνία είναι το PIC και όλα τα απαραίτητα μέρη. Χρησιμοποίησα το εσωτερικό ρολόι, οπότε δεν απαιτείται ταλαντωτής. Μόνο τρεις αντιστάσεις για SCL, SDA και MCLR. Για το γεγονός ότι χρησιμοποίησα τα 32kHz ως ένδειξη "ακριβών δευτερολέπτων" δεν υπάρχει ανάγκη για μια αρκετά σταθερή και ακριβή συχνότητα για το PIC.

Στη μέση υπάρχει το DS3231 με ελάχιστο σε εξωτερικά μέρη. Στην πραγματικότητα χρησιμοποίησα μόνο τις εισόδους SDA και SCL για επικοινωνία μέσω I²C και την έξοδο 32kHZ ως εξωτερική αναφορά ρολογιού για το χρονόμετρο 1 του PIC16F1829. Για αυτήν την έξοδο, το φύλλο δεδομένων λέει ότι απαιτείται εξωτερική αντίσταση έλξης. Τα άλλα αποτελέσματα που δεν χρησιμοποίησα σε αυτό το έργο και τα άφησα ασύνδετα.

Επίσης στη μέση, τα LED … Όπως μπορείτε να διαβάσετε στο σχηματικό, χρησιμοποίησα μπλε LED (αυτά με καθαρό περίβλημα) και τιμή αντίστασης 1k Ohms. Εάν σκοπεύετε να κάνετε αυτό το έργο μόνοι σας, θα πρέπει να επιλέξετε τις τιμές αυτών των αντιστάσεων ανάλογα με το χρώμα και τον τύπο των LED που επιλέγετε. Λάβετε επίσης υπόψη πού θέλετε να ρυθμιστεί το ρολόι. Το ένα μου στέκεται στο υπνοδωμάτιό μου, επομένως δεν ήθελα τα LED να είναι πολύ φωτεινά και επέλεξα μεγαλύτερη τιμή για τις αντιστάσεις. Κάντε μερικές δοκιμές σε ένα breadboard με LED και τιμές αντίστασης πριν τα τοποθετήσετε στο PCB.

Βήμα 2: Διάταξη

Σχέδιο
Σχέδιο
Σχέδιο
Σχέδιο
Σχέδιο
Σχέδιο

Αφού ολοκληρώσετε το σχηματικό, ήρθε η ώρα να δρομολογήσετε το PCB. Για αυτό χρησιμοποίησα το KiCAD (για σχηματικό επίσης). Δεν υπάρχουν πολλά να πούμε, απλά δρομολογήστε τις γραμμές.

Για το γεγονός ότι εκτύπωσα το περίβλημα του ρολογιού μόνος μου, ήταν πολύ σημαντικό πού βρίσκονται τα LED στο επάνω στρώμα. Έβαλα μόνο τα LED και τις αντιστάσεις στο επάνω στρώμα, επειδή παρήγγειλα το PCB μου να είναι μερικώς τοποθετημένο (όλα τα εξαρτήματα SMD) και επειδή η εταιρεία που επέλεξα γι 'αυτό τοποθετεί μόνο μέρη στη μία πλευρά και όχι διπλής όψης.

Μπορείτε να δείτε την τοποθέτηση στις δύο τρισδιάστατες εικόνες που έφτιαξα από το KiCAD.

Εάν ενδιαφέρεστε … Είναι δυνατή η εξαγωγή του KiCAD PCB στο Eagle και τότε είναι αρκετά εύκολο να κατασκευάσετε το περίβλημα, επειδή έχετε μια αναφορά από το PCB.

Βήμα 3: "Λογική" του "Wort-Uhr"

Το μεγαλύτερο μέρος για αυτό το έργο ήταν ο κωδικός για το PIC…

Στην αρχή να βρούμε τη «λογική» του χρόνου ομιλίας στα γερμανικά και να τον μεταφράσουμε σε κώδικα.

Δυστυχώς, δεν ήταν δυνατή η απευθείας μεταφόρτωση του αρχείου Excel, αλλά ελπίζω ότι η εξαγωγή PDF είναι αρκετά ευανάγνωστη για εσάς. Εάν όχι, επικοινωνήστε μαζί μου και θα σας στείλω το αρχικό αρχείο Excel. Στο PDF μπορείτε να δείτε πώς ρυθμίζω τη λογική για το ρολόι μου. Μπορείτε να δείτε πώς πέρασα μέσα από τα διαφορετικά βήματα χρόνου και πώς είναι η ορθογραφία. Ο υπολογισμός μέσα στον κώδικα (κυρίως if-else statement) μπορεί να προκύψει από τις πληροφορίες στη δεξιά πλευρά του πίνακα. Ένα μέρος είναι για λεπτά και ένα μέρος για ώρες.

Όπως μπορείτε να δείτε, αυτό δεν είναι μαγικό και μπορεί εύκολα να κωδικοποιηθεί σε C. Ε Στα γερμανικά (ίσως αυτό να είναι μόνο ένα βαυαρικό) η «επόμενη ώρα» χρησιμοποιείται αρκετά νωρίς.

Για κωδικοποίηση χρησιμοποίησα το MPLABX ως IDE της επιλογής μου.

Βήμα 4: Αποσπάσματα κώδικα

Αποσπάσματα κώδικα
Αποσπάσματα κώδικα
Αποσπάσματα κώδικα
Αποσπάσματα κώδικα

Δεν θα δημοσιεύσω τον κωδικό μου εδώ, αλλά αν σκοπεύετε να γράψετε τον δικό σας κώδικα, θα σας δώσω κάποιες συμβουλές για αυτό που "σκόνταψα" κατά τη διάρκεια της ανάπτυξης…

Πρώτα το "μητρώο"-συμπλήρωση:

Εάν μεταφέρετε νέα δεδομένα στα μητρώα πολύ συχνά και σε πολύ σύντομους κύκλους, έκανα την εμπειρία, ότι τα LED άρχισαν να τρεμοπαίζουν. Έτσι έκανα κάποιες "σημαίες αποκλεισμού", ότι μόλις πριν από ένα λεπτό γίνεται ένας νέος "υπολογισμός" του χρόνου ομιλίας και γίνεται ενημέρωση καταχώρισης.

Ο κωδικός για τη συμπλήρωση των μητρώων βρίσκεται στην παραπάνω εικόνα. Όπως μπορείτε να δείτε, συμπληρώνω και τους 3 καταχωρητές παράλληλα, έτσι χρειάζομαι 3 ακίδες του PIC για δεδομένα και 1 ακίδες για το CLK. Το 74HC164 αναλαμβάνει νέα δεδομένα για μια μετάβαση στη γραμμή CLK από το 0 στο 1.

Ο υπόλοιπος κώδικας εξαρτάται κυρίως από στοιχεία PIC, τον "λογικό χρόνο"-λογική και χειρισμό επικοινωνίας και κουμπιών. Η επικοινωνία παρέχεται κυρίως από το Microchip MPLABX επειδή χρησιμοποίησα την ενότητα MSSP.

Μια καλή ιδέα είναι να διαβάσετε το φύλλο δεδομένων του DS3231 επειδή τα δεδομένα αποθηκεύονται στο εσωτερικό ως BCD, οπότε ίσως χρειαστεί να το "μετατρέψετε" στον κώδικά σας. Όσον αφορά εμένα, είμαι ένας τύπος "μαθαίνω να κάνω" και ΦΥΣΙΚΑ δεν διάβασα το φύλλο δεδομένων … Μου κόστισε πολλά νεύρα και ώρες.

Όπως ίσως έχετε παρατηρήσει, υπάρχουν δύο τρόποι "διατήρησης του χρόνου σε καλό δρόμο" με αυτήν την εφαρμογή.

  1. Μπορείτε να διαβάσετε τον πραγματικό χρόνο από το DS3231
  2. Μπορείτε να "μετράτε δευτερόλεπτα" στο ίδιο το PIC και απλά να συγχρονίζετε την ώρα με το DS3231 κατά καιρούς

Εξαρτάται από εσάς και οι δύο τρόποι είναι πρακτικοί και ευθείς. Χρησιμοποίησα την πρώτη επιλογή και συγχρονίστηκα μόνο κατά τη ρύθμιση του χρόνου μέσω των κουμπιών (χρόνος γραφής στο DS3231) ή κάθε 24 ώρες (χρόνος ανάγνωσης από το DS3231), επειδή ήθελα να εφαρμόσω περισσότερη λογική μόνος μου. Γυρίζω επίσης το ρολόι μου κατά τη διάρκεια της νύχτας (23:00 έως 05:00), έτσι ήταν λίγο πιο εύκολο κατά τη γνώμη μου.

Βήμα 5: Η στέγαση

Τελευταίο αλλά όχι λιγότερο σημαντικό, είναι η ώρα να ρίξουμε μια σύντομη ματιά στο περίβλημα.

Όπως ανέφερα παραπάνω, έφτιαξα το περίβλημα μόνος μου (χρησιμοποιώντας Eagle) και τα εκτύπωσα με τον τρισδιάστατο εκτυπωτή μου, ώστε να παρακολουθώ τις θέσεις των διαφορετικών LED.

Συνημμένα μπορείτε να βρείτε τα αρχεία STL αν θέλετε να τα χρησιμοποιήσετε.

Ελπίζω ότι αυτό το διδακτικό θα σας βοηθήσει κατά την κατασκευή του δικού σας "Wort-Uhr". Εάν εξακολουθούν να υπάρχουν "ανοιχτές ερωτήσεις", μη διστάσετε να επικοινωνήσετε μαζί μου. Ο καλύτερος τρόπος για να σχολιάσετε παρακάτω, επειδή μπορεί να μην είστε ο μόνος που έχετε μια συγκεκριμένη ερώτηση.

Συνιστάται: