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

Minidot 2 - το Holoclock: 6 βήματα
Minidot 2 - το Holoclock: 6 βήματα

Βίντεο: Minidot 2 - το Holoclock: 6 βήματα

Βίντεο: Minidot 2 - το Holoclock: 6 βήματα
Βίντεο: My daughter shooting her first gun. (G2C) 2024, Ιούλιος
Anonim
Minidot 2 - το Holoclock
Minidot 2 - το Holoclock
Minidot 2 - το Holoclock
Minidot 2 - το Holoclock

Λοιπόν, ίσως το holoclock είναι λίγο ανακριβές…. Χρησιμοποιεί ολογραφική ταινία διασποράς στο μπροστινό μέρος για να δώσει λίγο βάθος. Βασικά αυτό το διδακτικό είναι μια ενημέρωση του προηγούμενου Minidot που βρίσκεται εδώ: https://www.instructables.com/id /EEGLXQCSKIEP2876EE/και επαναχρησιμοποίηση πολλών κώδικα και κυκλωμάτων από το Microdot που βρίσκεται εδώ: https://www.instructables.com/id/EWM2OIT78OERWHR38Z/EagleCAD αρχεία και κώδικας Sourceboost περιλαμβάνεται στα συνημμένα αρχεία zip. Γιατί; Το προηγούμενο Minidot ήταν υπερβολικά περίπλοκο, από το Microdot έμαθα πώς να κάνω RTC σε PIC χρησιμοποιώντας μόνο κρύσταλλο 32.768 και δεν χρειαζόταν να χρησιμοποιήσω ειδικό τσιπ RTC. Επίσης ήθελα να απαλλαγώ από τα τσιπ οθόνης από το προηγούμενο Minidot. Έτσι, τώρα υπάρχει μόνο ένα τσιπ ρυθμιστή ισχύος και ένα PIC16F88…. Μόνο δύο μάρκες. Οι άλλοι λόγοι για μια ενημέρωση ήταν ότι το Minidot μου ήταν λίγο αναξιόπιστο λόγω της ξεχωριστής πλακέτας διακόπτη και ήθελα ένα απαλό ξεθώριασμα μεταξύ μοτίβων κουκίδων ως καθώς και κάποιου είδους αισθητήρα φωτισμού περιβάλλοντος για να μειώσει την οθόνη τη νύχτα. Το άλλο Minidot είχε σταθερή φωτεινότητα και φωτίζει ένα δωμάτιο τη νύχτα. Η συσκευή κατασκευάστηκε με τη βοήθεια του πακέτου λογισμικού EagleCad και του μεταγλωττιστή Sourceboost. Θα χρειαστεί να έχετε κάποια εμπειρία με ηλεκτρονικά και προγραμματισμό ελεγκτών PIC για να ξεκινήσετε αυτό το έργο. Λάβετε υπόψη ότι αυτό δεν είναι διδακτικό ούτε για ηλεκτρονικά ούτε για προγραμματισμό PIC, οπότε κρατήστε τις ερωτήσεις σχετικές με το σχέδιο Miniclock. Ανατρέξτε στις παραπάνω οδηγίες ή σε πολλές άλλες οδηγίες σε αυτόν τον ιστότοπο για συμβουλές σχετικά με τη χρήση του EagleCad ή τον προγραμματισμό PIC. Εδώ λοιπόν είναι….. Minidot 2, The Holoclock …… ή Minidot The Next Generation ………….

Βήμα 1: Το κύκλωμα

Το Κύκλωμα
Το Κύκλωμα
Το Κύκλωμα
Το Κύκλωμα
Το Κύκλωμα
Το Κύκλωμα

Αυτό το κύκλωμα μοιάζει πολύ με το Microdot. Σημειώστε ότι ο πίνακας charlieplex είναι ουσιαστικά πανομοιότυπος … μόνο μερικές καρφίτσες έχουν μετακινηθεί.

Ένας κρύσταλλος 20Mhz προστέθηκε στο κύκλωμα Microdot για να χρονομετρήσει το PIC πολύ πιο γρήγορα, αυτό επιτρέπει τη γρήγορη σάρωση του πίνακα και επιτρέπει την εφαρμογή ενός αλγορίθμου εξασθένισης. Ο αλγόριθμος ρύθμισης φωτεινότητας ήταν πολύ σημαντικός για να λειτουργήσει η διασταύρωση και η λειτουργία του φωτισμού περιβάλλοντος. Αυτό θα ήταν αδύνατο με το Microdot, λόγω της χαμηλότερης ταχύτητας του ρολογιού, καθώς ορισμένοι κύκλοι σάρωσης έπρεπε να δαπανηθούν για τη μείωση του φωτισμού. Ανατρέξτε στην επόμενη ενότητα για μια περιγραφή της λειτουργίας Dimming. Τα άλλα πράγματα που πρέπει να σημειωθούν είναι η χρήση ενός ρυθμιστή αντλίας φόρτισης MCP1252 για την παροχή 5V, το αγαπημένο μου τσιπ αυτή τη στιγμή. Εάν τροποποιήσατε το κύκλωμα, θα μπορούσατε να χρησιμοποιήσετε ένα απλό παλιό 7805 ……. Έχω μετακινήσει τώρα τους διακόπτες προς τα εμπρός, εξοικονομεί συναγερμούς στο πίσω μέρος του ρολογιού μετά από διακοπές ρεύματος για επαναφορά του χρόνου και τώρα όλα είναι μόνο ένα PCB…. Κανένα πρόβλημα καλωδίωσης. Επίσης, πρέπει να σημειωθεί η συμπερίληψη ενός LDR. Αυτό χρησιμοποιείται σε ένα διαχωριστή τάσης που ανιχνεύεται από τον πείρο A/D στο PIC. Όταν ο PIC αντιλαμβάνεται ότι το επίπεδο φωτισμού περιβάλλοντος είναι χαμηλό (δηλαδή τη νυχτερινή ώρα), ο αλγόριθμος dimming διατηρεί τη συστοιχία charlieplex σκοτεινή για περισσότερους κύκλους από ό, τι όταν το επίπεδο φωτισμού είναι υψηλό. Δεν μπόρεσα να βρω ένα σύμβολο LDR στη βιβλιοθήκη Eaglecad, οπότε χρησιμοποίησα ένα σύμβολο LED….. μην ξεγελιέστε είναι ένα LDR. Δείτε την πραγματική εικόνα του PCB παρακάτω. Ένα πράγμα που πρέπει να σημειωθεί όταν χρησιμοποιείτε πολύχρωμα LED σε μια σειρά charliplex. Πρέπει να βεβαιωθείτε ότι η τάση εμπρός των LED είναι λίγο πολύ η ίδια. Εάν όχι, τότε ενδέχεται να προκύψουν αδέσποτα μονοπάτια ρεύματος και να ανάψουν πολλά LED. Έτσι, η χρήση LED 5 mm ή υψηλότερης ισχύος για αυτήν τη διαμόρφωση δεν θα λειτουργήσει καθώς συνήθως υπάρχει μεγάλη διαφορά μεταξύ των πράσινων/μπλε LED και των κόκκινων/κίτρινων LED. Σε αυτήν την περίπτωση χρησιμοποίησα 1206 led SMD και ιδιαίτερα πράσινα/μπλε LED υψηλής απόδοσης. Οι τάσεις προς τα εμπρός δεν ήταν όμως θέμα εδώ. Εάν θέλετε να χρησιμοποιήσετε ένα μείγμα πράσινων/μπλε και κόκκινων/κίτρινων LED υψηλότερης ισχύος σε μια σειρά charlieplex, θα πρέπει να διαχωρίσετε τα διαφορετικά χρώματα σε δύο συστοιχίες charliplex. Υπάρχουν πολυάριθμες εξηγήσεις για το charlieplexing που μπορούν να γκουγκλιστούν …… Δεν θα μπω σε λεπτομέρειες εδώ. Σας αφήνω να κάνετε μια έρευνα. (Πατήστε το μικρό εικονίδιο "i" στη γωνία της παρακάτω εικόνας για να δείτε μια μεγαλύτερη έκδοση)

Βήμα 2: Ο αλγόριθμος φωτεινότητας - Διαμόρφωση πλάτους παλμού Charliplexed

Ο αλγόριθμος φωτεινότητας - Διαμόρφωση πλάτους παλμού Charliplexed
Ο αλγόριθμος φωτεινότητας - Διαμόρφωση πλάτους παλμού Charliplexed

Όπως αναφέρθηκε προηγουμένως, ήθελα τα διαφορετικά μοτίβα κουκκίδων για την ώρα να ξεθωριάζουν ομαλά και όχι να σπρώχνουν από το ένα μοτίβο στο άλλο. Δείτε το βίντεο για επίδειξη. Στη μέση είναι το νέο ρολόι Minidot, στα δεξιά είναι το παλιότερο Minidot. Παρατηρήστε πόσο πιο ωραίο είναι το νέο. (FYI οι άλλες οθόνες στο παρασκήνιο είναι η κατάσταση κατάστασης του υπερυπολογιστή Minicray και το συλλεγέν σωματίδιο Nebulon που τροφοδοτεί τη Minicray σε ένα πεδίο μαγνητικού περιορισμού αντιύλης. Δείτε εδώ: https://www.youtube.com/watch? V = bRupDulR4MEγια επίδειξη του θαλάμου συγκράτησης νεφελού) Εάν κοιτάξετε τον κωδικό, ανοίξτε το αρχείο display.c. Σημειώστε ότι υπάρχουν τέσσερις συστοιχίες για τη χαρτογράφηση των τιμών tris/port για να φωτίσουν οποιοδήποτε συγκεκριμένο πίνακα και δύο πίνακες (ένας περισσότερο από τον κωδικό Microdot) για τον καθορισμό των LED που πρέπει να φωτίζονται για οποιοδήποτε συγκεκριμένο μοτίβο LEDs.eg:

// LED1 LED2 LED3… ανυπόγραφο γράμμα LEDS_PORTA [31] = {0x10, 0x00, 0x00,… χωρίς υπογραφή char LEDS_TRISA [31] = {0xef, 0xff, 0xff,… ανυπόγραφο φορτίο LEDS_PORTB [31] = {0x00, 0x02, 0x04, … Ανυπόγραφο char LEDS_TRISB [31] = {0xfd, 0xf9, 0xf9,… ανυπόγραφο char nLedsA [30]; ανυπόγραφο char nLedsB [30];Για να ανάψετε το LED1 για παράδειγμα, πρέπει να ρυθμίσετε τους καταχωρητές TRIS TRISA: B = 0xef: 0xfd και τους καταχωρητές PORT PORTA: B = 0x10: 0x00 κ.ο.κ. Εάν γράψετε τις τιμές tris στο δυαδικό, θα σημειώσετε ότι ανά πάσα στιγμή, είναι ενεργοποιημένες μόνο δύο έξοδοι. Τα άλλα είναι όλα ρυθμισμένα σε Tri-state (άρα TRIS register). Αυτό είναι το κεντρικό στοιχείο για τη θεραπεία του καρκίνου. Θα σημειώσετε επίσης ότι η μία έξοδος είναι πάντα ένα λογικό "1" και η άλλη είναι πάντα ένα λογικό "0"…. Η κατεύθυνση του οποίου ανάβει όποιο LED είναι μεταξύ αυτών των δύο γραμμών εξόδου. Η τελευταία τιμή στη θύρα/tris Οι πίνακες είναι μια μηδενική τιμή για να μην ενεργοποιήσετε καθόλου LED. Στο Microdot, η συνάρτηση update_display περνούσε συνεχώς μέσω άλλου πίνακα (nLeds ) για να δείτε αν η συγκεκριμένη λυχνία LED θα φωτιζόταν. Αν ήταν, τότε οι αντίστοιχες τιμές tris/port καθορίστηκαν και η λυχνία LED φωτίστηκε για ένα χρονικό διάστημα. Διαφορετικά, η μηδενική τιμή αποστέλλεται στα μητρώα PICs TRIS/PORT και δεν ανάβει κανένα LED για κάποιο χρονικό διάστημα. Όταν γίνει αρκετά γρήγορα, αυτό έδωσε ένα μοτίβο. Το υπόλοιπο πρόγραμμα θα διάβαζε περιοδικά τις τιμές RTC και θα δημιουργούσε ένα ωραίο τυχαίο μοτίβο σε αυτόν τον πίνακα…. Και έτσι άλλαξε η οθόνη. Για να γίνει μια λειτουργία dimming, αυτή επεκτάθηκε ελαφρώς, έτσι ώστε μετά την ανάφλεξη των 30 LED (ή όχι) τότε θα ξοδευτούν επιπλέον περίοδοι για την αποστολή μηδενικών τιμών εάν η οθόνη μειωνόταν….. για πλήρη φωτεινότητα τότε δεν θα ξοδευτούν επιπλέον περίοδοι. Όταν επαναληφθεί εάν υπήρχαν πολλές μηδενικές περίοδοι στις φωτιζόμενες λυχνίες LED, η οθόνη θα ήταν αμυδρή. Στην πραγματικότητα, πρόκειται για διαμόρφωση πλάτους παλμών πολλαπλής….. ή επειδή το υλικό έχει διαμορφωθεί σε διάταξη charlieplex, και στη συνέχεια διαμόρφωση πλάτους παλμού charlieplex. Το δεύτερο διάγραμμα παρακάτω δείχνει τη βασική ρύθμιση για αυτό. Το ονομάζω πλαίσιο σάρωσης. Οι πρώτες 30 περίοδοι στο πλαίσιο χρησιμοποιούνται για να περάσουν από τις λυχνίες LED…..και ένας μεταβλητός αριθμός επιπλέον περιόδων καθορίζει πόσο αμυδρή θα είναι η οθόνη. Αυτός ο κύκλος επαναλαμβάνεται. Περισσότερες μηδενικές περίοδοι σημαίνει λιγότερο χρόνο για να ανάψει ένα LED ανά καρέ (επειδή ο αριθμός των περιόδων αυξήθηκε). Σημειώστε ότι ο κάθετος άξονας δεν σημαίνει επίπεδο τάσης. Η πραγματική κατάσταση των ακίδων που πηγαίνουν στις λυχνίες LED ποικίλλει ανάλογα με τη θέση της στον πίνακα charlieplex….. στο διάγραμμα σημαίνει απλώς ενεργοποίηση ή απενεργοποίηση. Αυτό σήμαινε επίσης ότι το συνολικό μήκος του πλαισίου στο χρόνο αυξήθηκε επίσης, μειώνοντας έτσι την ανανέωση τιμή. Καθώς οι λυχνίες LED έγιναν πιο αμυδρές, άρχισαν να τρεμοπαίζουν με άλλα λόγια. Έτσι, αυτή η μέθοδος είναι χρήσιμη μόνο σε ένα βαθμό. Για το ρολόι, ήταν εντάξει. Μια λειτουργία ονομάζεται διακεκομμένα που διαβάζει τον μετατροπέα A/D στο PIC και ορίζει αυτό το επίπεδο φωτεινότητας. Εάν διαβάσετε τον κώδικα, ελέγχεται επίσης αν είναι ενεργοποιημένη η λυχνία LED που βρίσκεται πλησιέστερα στο LDR και δεν κάνει καμία ρύθμιση επιπέδου, έτσι σταματάει η οθόνη να αναβοσβήνει απροσδόκητα όταν αλλάξει το μοτίβο. Στη συνέχεια, η λειτουργία διασταύρωσης διασταυρώσεων.

Βήμα 3: Αλγόριθμος φωτεινότητας - το εφέ Cross Fade Effect και Double Buffering

Αλγόριθμος φωτεινότητας - το εφέ σταδιακής εξασθένισης και το διπλό buffering
Αλγόριθμος φωτεινότητας - το εφέ σταδιακής εξασθένισης και το διπλό buffering

Η μετάβαση από το ένα μοτίβο στο άλλο ήταν προηγουμένως άμεση. Για αυτό το ρολόι ήθελα να δείξω ένα μοτίβο που σταδιακά μειώνεται στη φωτεινότητα και το επόμενο μοτίβο σταδιακά αυξάνεται … δηλ. Ένα σταυρό ξεθώριασμα.

Δεν χρειαζόταν να έχω μεμονωμένα LED για να ελέγχονται σε ξεχωριστά επίπεδα φωτεινότητας για να ξεθωριάζουν. Απλώς χρειάστηκε το πρώτο μοτίβο σε μία φωτεινότητα και το δεύτερο σε χαμηλή φωτεινότητα. Στη συνέχεια, σε σύντομο χρονικό διάστημα, θα μειώσω λίγο τη φωτεινότητα του πρώτου και θα αυξήσω το δεύτερο…..αυτό θα συνέχιζε μέχρι το δεύτερο μοτίβο στο σύνολό του. Στη συνέχεια, το ρολόι θα περίμενε μέχρι να εμφανιστεί το επόμενο μοτίβο και θα υπάρξει άλλη μετάβαση. Έτσι έπρεπε να αποθηκεύσω δύο μοτίβα. Αυτό που εμφανίζεται αυτήν τη στιγμή και το δεύτερο μοτίβο που επρόκειτο να εμφανιστεί. Αυτά είναι σε πίνακες nLedsA και nLedsB. (σημειώστε καμία σχέση με τις θύρες σε αυτήν την περίπτωση). Αυτό είναι το διπλό buffer. Η συνάρτηση update_display () τροποποιήθηκε για να κυκλώσει οκτώ καρέ και να εμφανίσει έναν αριθμό πλαισίων από τον πρώτο πίνακα και μετά τον άλλο. Η αλλαγή του αριθμού των πλαισίων που διατίθενται σε κάθε buffer στους οκτώ κύκλους καθόρισε πόσο φωτεινό θα ήταν κάθε μοτίβο. Όταν τελειώσαμε με την ποδηλασία μεταξύ των buffer, αλλάξαμε τα buffer "display" και "next display", έτσι η συνάρτηση δημιουργίας μοτίβων θα έγραφε μόνο στο buffer "επόμενης οθόνης". Το παρακάτω διάγραμμα το δείχνει ελπίζω. Θα πρέπει να μπορείτε να δείτε ότι η μετάβαση θα διαρκέσει 64 καρέ σάρωσης. Στην εικόνα, το μικρό ένθετο δείχνει το διάγραμμα πλαισίων σάρωσης από την προηγούμενη σελίδα με κομψό τρόπο. Λίγα λόγια για το ποσοστό ανανέωσης. Όλα αυτά πρέπει να γίνουν πολύ γρήγορα. Έχουμε τώρα δύο επίπεδα επιπλέον υπολογισμού, ένα για τη φωτεινότητα της οθόνης περιβάλλοντος και ένα για τους οκτώ κύκλους καρέ που δαπανήθηκαν για τη μετάβαση μεταξύ δύο ρυθμιστικών. Επομένως, αυτός ο κωδικός έπρεπε να γραφτεί σε συναρμολόγηση, αλλά είναι αρκετά καλός σε 'C'.

Βήμα 4: Κατασκευή - το PCB

Κατασκευή - το PCB
Κατασκευή - το PCB
Κατασκευή - το PCB
Κατασκευή - το PCB

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

Το μόνο που πρέπει να σημειωθεί στην κατασκευή του PCB είναι η συμπερίληψη ενός συνδετήρα για τον προγραμματισμό του PIC. Αυτό συνδέεται με τις ακίδες ICSP στο PIC και θα χρειαστείτε έναν προγραμματιστή ICSP. Και πάλι χρησιμοποίησα ένα εύχρηστο σύνδεσμο junkbox. Μπορείτε να το παραλείψετε και να κολλήσετε σύρματα στα μαξιλάρια, αν θέλετε. Εναλλακτικά, εάν έχετε μόνο έναν προγραμματιστή με πρίζα, μπορείτε να δημιουργήσετε μια κεφαλίδα που συνδέεται στην πρίζα σας και στη συνέχεια να την κολλήσετε στα τακάκια ICSP. Εάν το κάνετε αυτό, τότε αποσυνδέστε το Rx και συνδέστε το Ry που είναι απλώς σύνδεσμοι μηδενικού ωμ (απλά χρησιμοποιώ μια κόλλα συγκόλλησης). Αυτό θα αποσυνδέσει την υπόλοιπη ισχύ του κυκλώματος από το PIC, ώστε να μην επηρεάσει τον προγραμματισμό. Ένας προγραμματιστής με πρίζα χρησιμοποιεί απλώς τις ακίδες ICSP όπως ένας προγραμματιστής ICSP, δεν υπάρχει καμία μαγεία. Πρέπει επίσης να το κάνετε αυτό εάν κατά λάθος έχετε ξεχάσει να βάλετε μια καθυστέρηση στον κωδικό πριν ξεκινήσει το RTC. Για τον 16F88 οι ακίδες προγραμματισμού ICSP είναι οι ίδιες με τις ακίδες που απαιτούνται για τον κρύσταλλο 32.768kHz που χρησιμοποιείται για το RTC …… εάν ο εξωτερικός ταλαντωτής T1 (δηλαδή ο RTC) λειτουργεί πριν το ICSP ξεκινήσει να λειτουργεί, τότε ο προγραμματισμός θα αποτύχει Το Κανονικά, εάν υπάρχει επαναφορά στον πείρο MCLR και υπάρχει καθυστέρηση, τότε τα δεδομένα ICSP μπορούν να σταλούν σε αυτές τις καρφίτσες και ο προγραμματισμός μπορεί να ξεκινήσει σωστά. Ωστόσο, με την απομόνωση της ισχύος στο PIC, ο προγραμματιστής ICSP (ή ο προγραμματιστής με κεφαλίδα) μπορεί να ελέγξει την ισχύ της συσκευής και να αναγκάσει ένα πρόγραμμα. Τα άλλα πράγματα που πρέπει να σημειωθούν είναι ότι τα κρυστάλλινα τακάκια στο PCB σχεδιάστηκαν αρχικά για κρυστάλλους SMD. Ανυπομονούσα να παραδοθούν μερικά, οπότε ο κρύσταλλος ρολογιού 32.768kHz συγκολλήθηκε στην κορυφή όπως φαίνεται και ο κρύσταλλος των 20MHz συνδέθηκε τρυπώντας μερικές τρύπες στα τακάκια, σπρώχνοντας τον κρύσταλλο μέσα από το κάτω μέρος και κολλώντας στο μπλουζα. Μπορείτε να δείτε τις καρφίτσες στα δεξιά του PIC16F88.

Βήμα 5: Η ολογραφική ταινία και η στέγαση

Η ολογραφική ταινία και η στέγαση
Η ολογραφική ταινία και η στέγαση
Η ολογραφική ταινία και η στέγαση
Η ολογραφική ταινία και η στέγαση
Η ολογραφική ταινία και η στέγαση
Η ολογραφική ταινία και η στέγαση

Η τελική κατασκευή είναι απλά η τοποθέτηση του PCB στη θήκη και μετά τον προγραμματισμό, η τοποθέτησή του με μια δόση θερμής κόλλας. Τρεις οπές επιτρέπουν την πρόσβαση στους μικροδιακόπτες από μπροστά.

Το αξιοσημείωτο μέρος αυτού του ρολογιού είναι η χρήση μιας ολογραφικής μεμβράνης διαχύτη. Αυτή είναι μια ειδική ταινία που είχα γύρω μου και προσφέρει ένα ωραίο βάθος στη συσκευή. Θα μπορούσατε να χρησιμοποιήσετε απλό χαρτί ανίχνευσης (στο οποίο θα έφερνα το PCB πιο κοντά στο μπροστινό μέρος) ή οποιοδήποτε άλλο διαχύτη όπως αυτά που χρησιμοποιούνται σε φωτιστικά φθορισμού. Η εμπειρία σχετικά με το μόνο που χρειάζεται να κάνει είναι να σας επιτρέψει να κάνετε διάκριση μεταξύ του αριθμού των φωτιζόμενων LED ή αλλιώς η καταμέτρηση των κουκίδων για να πείτε ότι ο χρόνος θα είναι δύσκολος. Χρησιμοποίησα ολογραφικό υλικό διασποράς από το Physical Optics Coorporation (www.poc.com) με κυκλική διασπορά 30 μοιρών, ενώ η οθόνη κατάστασης υπερυπολογιστή που εμφανίζεται αλλού στο διδάσκον χρησιμοποίησε μια ταινία με ελλειπτική διασπορά 15x60 βαθμού. Θα μπορούσατε να χρησιμοποιήσετε κάποια ταινία συσκότισης για να κρύψετε τα λαμπερά εσωτερικά της ημέρας για να έχετε μια πιο μυστηριώδη εμφάνιση. Θα μπορούσατε ακόμη και να αφήσετε την οθόνη καθαρή και να αφήσετε τους άλλους να δουν τα εσωτερικά όπως εγώ. Η βάση ήταν δύο κομμάτια αλουμινίου ράβδου "L" με ένα κομμάτι κομμένο στο κάτω μέρος για να επιτρέψει μια κάμψη. Σημειώστε σε αυτές τις εικόνες προστέθηκε επιπλέον φωτισμός για να μπορείτε να δείτε τα καλύμματα της οθόνης κλπ. Στον κανονικό φωτισμό του σαλονιού, τα LED είναι πιο σημαντικά, ακόμη και στο φως της ημέρας.

Βήμα 6: Λογισμικό και διεπαφή χρήστη

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

Για να ρυθμίσετε την ώρα, πατήστε πρώτα SW1. Η συσκευή θα αναβοσβήνει όλες τις λυχνίες LED μερικές φορές και στη συνέχεια η ομάδα των 10 ωρών LED των SW3 θα αυξήσει την επιλεγμένη ομάδα SW2 θα μετακινηθεί στην επόμενη ομάδα LED, κάθε φορά που θα αναβοσβήνει σύντομα όλα τα LED της ομάδας. Ο κωδικός είναι γραμμένος για την έκδοση 6.70 του μεταγλωττιστή Sourceboost 'C'. Ο κωδικός RTC βρίσκεται στα αρχεία t1rtc.c/h και έχει λειτουργία διακοπής στο χρονόμετρο T1 του PIC. Ο χρονοδιακόπτης T1 έχει ρυθμιστεί να διακόπτει κάθε 1 δευτερόλεπτο. Σε κάθε δευτερόλεπτο, η μεταβλητή για το χρόνο αυξάνεται. Επίσης ένα χρονόμετρο τσιμπούρι μετρά αντίστροφα κάθε δευτερόλεπτο μαζί με το χρόνο. Αυτό χρησιμοποιείται για τον προσδιορισμό του χρόνου μετάβασης της οθόνης. Η λειτουργία διακοπής χρησιμοποιεί επίσης τη διακοπή χρονοδιακόπτη T0 για ανανέωση της οθόνης, καλώντας μια λειτουργία στην οθόνη.γ Τα αρχεία display.h/display.c περιέχουν τις λειτουργίες για την ενημέρωση της οθόνης και την εμφάνιση του χρόνου Τα αρχεία ελέγχου.γ/ώρα για να ρυθμίσετε την ώρα και να διαβάσετε τους διακόπτες Τα αρχεία holoclock.c/h είναι οι κύριοι βρόχοι και η προετοιμασία.

Συνιστάται: