Πίνακας περιεχομένων:
- Βήμα 1: Διάγραμμα μαύρου κουτιού
- Βήμα 2: Αργό ρολόι
- Βήμα 3: Μετρητής
- Βήμα 4: Counter Hour
- Βήμα 5: Συναγερμός
- Βήμα 6: Πρόγραμμα οδήγησης οθόνης Universal Seven Segment
- Βήμα 7: Σύνδεση αρχείου
- Βήμα 8: Arduino
- Βήμα 9: Δρομολόγηση καλωδίων
Βίντεο: Ξυπνητήρι Basys 3: 9 Βήματα
2024 Συγγραφέας: John Day | [email protected]. Τελευταία τροποποίηση: 2024-01-30 08:35
Το έργο μας δημιουργεί ξυπνητήρι χρησιμοποιώντας τον πίνακα FPGA Basys 3, ένα Arduino και έναν πίνακα οδηγών ηχείων. Ο χρήστης μπορεί να εισάγει την τρέχουσα ώρα στον πίνακα χρησιμοποιώντας 11 διακόπτες εισόδου στο Basys 3 και να κλειδώσει την τιμή χρησιμοποιώντας το μεσαίο κουμπί στον πίνακα. Ο χρήστης μπορεί στη συνέχεια να εισαγάγει την ώρα αφύπνισης χρησιμοποιώντας τους ίδιους διακόπτες, αλλά να πατήσει το αριστερό κουμπί για να κλειδώσει τον χρόνο αφύπνισης. Εάν έχει εισαχθεί λάθος ώρα, μπορείτε να πατήσετε το κουμπί επαναφοράς (επάνω κουμπί) και η τρέχουσα ώρα ρολογιού και η ώρα αφύπνισης θα ρυθμιστούν σε 00:00. Ο χρήστης μπορεί στη συνέχεια να ξεκινήσει το ρολόι χρησιμοποιώντας τον αριστερότερο διακόπτη και να ενεργοποιήσει το ξυπνητήρι χρησιμοποιώντας τον επόμενο διακόπτη. Όταν το ξυπνητήρι είναι ενεργοποιημένο, το ξυπνητήρι θα ηχήσει όταν η ώρα του ρολογιού και η ώρα ρύθμισης ταιριάζουν.
Βήμα 1: Διάγραμμα μαύρου κουτιού
Ξεκινήσαμε το έργο μας σχεδιάζοντας ένα διάγραμμα μαύρου κουτιού για να απεικονίσουμε τις εισόδους και τις εξόδους που απαιτούνται στο πρόγραμμά μας. Οι ακόλουθες είσοδοι για το πρόγραμμά μας, όπως είσοδος 5-bit (Hour_in), αρχικοποιήθηκαν για να καθορίσουν το 24ωρο, 6-bit (Min_in) για εμφάνιση έως και 60 λεπτά, ένα κουμπί επαναφοράς (Rst_b) για να επιτρέψει στο χρήστη να αλλάζουν την ώρα εισόδου τους, μια είσοδο 1 bit (alm_en) που φορτώνει την είσοδο συναγερμού, μια είσοδο 1 bit (alarm_sw) για να απενεργοποιήσει το ξυπνητήρι όταν είναι ενεργοποιημένο, μια είσοδο 1 bit (e_sec) που ελέγχει όταν ο μετρητής θα εκτελεστούν δευτερόλεπτα, μια είσοδος 1-bit (Led_btn) που ορίζει την τρέχουσα ώρα, και τέλος μια είσοδος 1-bit (clk) που ελέγχει τον χρόνο που εμφανίζεται από την πλακέτα Basys 3. Οι έξοδοι είναι η (alm_on) που στέλνει το σήμα στο Arduino, η έξοδος sseg που εμφανίζει τον χρόνο εισόδου στο Basys 3 και η έξοδος ανόδου που ελέγχει πού εμφανίζονται οι είσοδοι στην οθόνη των επτά τμημάτων.
Βήμα 2: Αργό ρολόι
Το αργό ρολόι ή το αρχείο clock_div2 δημιουργεί ένα ρολόι του οποίου η συχνότητα είναι 2 hz. Εάν τροφοδοτήσουμε αυτό το ρολόι στον μετρητή δευτερολέπτων, η τιμή των δευτερολέπτων θα αυξάνεται κατά ένα κάθε δευτερόλεπτο. Το αργό ρολόι χρησιμοποιείται για τη δημιουργία ενός αξιόπιστου σήματος ρολογιού που αλλάζει από χαμηλό σε υψηλό μία φορά το δευτερόλεπτο.
Βήμα 3: Μετρητής
Μετρητής στοιχείων (λεπτά και δευτερόλεπτα):
Η βασική λειτουργία των λεπτών και των δευτερολέπτων είναι ότι είναι μετρητές. Ο μετρητής λεπτών λαμβάνει την είσοδο (Vin) που είναι σήμα από τις εισόδους (Min_in) και στη συνέχεια μετρά μέχρι να φτάσει στην επιθυμητή εισαγόμενη είσοδο. Τα δευτερόλεπτα χρειάζονται μόνο την είσοδο του διακόπτη (e_Sec), επειδή δεν μπορεί να εμφανιστεί στο επτά τμήμα και μετράει στο παρασκήνιο όταν ο διακόπτης είναι υψηλός "1". Και οι δύο παράγουν εκεί τιμή στο (Qout) και, στη συνέχεια, αποθηκεύεται στο (data) που το στέλνει στο SSEG, το οποίο γίνεται στο αρχείο σύνδεσης. Επίσης, όταν τα λεπτά και τα δευτερόλεπτα φτάσουν τις τιμές των 59, επαναφέρεται και η έξοδός τους είναι «1» για να αυξηθούν τα λεπτά/ώρα. Μπορεί επίσης να αντιστοιχιστεί με επαναφορά (rst_b) στις εισόδους τους.
Βήμα 4: Counter Hour
Erρα μετρητή εξαρτημάτων
Ομοίως, στον μετρητή στοιχείων των λεπτών και των δευτερολέπτων το στοιχείο ώρας λαμβάνει εισόδους όπως το (Vin) που είναι ένα σήμα από τη σύνδεση της εισόδου αρχείου (Hour_in) και έχει εξόδους που συνδέονται με τον ίδιο τρόπο τα λεπτά και τα δευτερόλεπτα. Όταν η τιμή καταμέτρησης της ώρας φτάσει τα 24 00, επαναφέρεται σε 00 00.
Βήμα 5: Συναγερμός
Το αρχείο.vhd συναγερμού αποτελείται από d-flip-flops που είναι συσκευές αποθήκευσης που μπορούν να αποθηκεύσουν ψηφιακά δεδομένα. Το αρχείο συναγερμού χρησιμοποιείται για την αποθήκευση της ώρας κατά την οποία θα ενεργοποιηθεί ο συναγερμός. Για να αποθηκεύσουμε τα δεδομένα των ωρών (είσοδος 5 bit) και των λεπτών (είσοδος 6 bit) πρέπει να σφραγίσουμε 11 d-flip-flops στο αρχείο συναγερμού. Για να γίνει αυτό, πρέπει πρώτα να εισαγάγουμε τη λογική που διέπει τη λειτουργία των d-flip-flops και να χαρτογραφήσουμε τα εξαρτήματα. Κάθε ένα από τα 11 d-flip-flops θα αποθηκεύσει ένα bit δεδομένων από τις εισόδους και θα επιτρέψει την αντιστοίχιση των δεδομένων στις εξόδους του αρχείου συναγερμού. Επειδή τα d-flip-flops αποθηκεύουν δεδομένα, είμαστε σε θέση να χρησιμοποιήσουμε τα δεδομένα σε μεταγενέστερο χρονικό σημείο ακόμη και αν οι διακόπτες εισόδου έχουν αλλάξει.
Βήμα 6: Πρόγραμμα οδήγησης οθόνης Universal Seven Segment
Το γενικό πρόγραμμα οδήγησης οθόνης επτά τμημάτων λαμβάνει τις εισόδους από το ρολόι και το ρολόι και είναι σε θέση να τις εξάγει στην οθόνη των επτά τμημάτων στον πίνακα. Ο οδηγός μπορεί να βγάλει δύο ξεχωριστές μετρήσεις στον πίνακα ταυτόχρονα. Χρησιμοποιήσαμε αυτήν τη λειτουργία για να εμφανίσουμε χωριστά τόσο την ώρα όσο και την ώρα. Η επίδειξη επτά τμημάτων είναι σε θέση να ενεργοποιήσει μόνο έναν αριθμό τη φορά, οπότε το αρχείο sseg πρέπει να χρησιμοποιεί πολυπλεξία για να εμφανίζει ταυτόχρονα όλους τους αριθμούς της εποχής. Το σήμα ρολογιού των σανίδων εισάγεται στο sseg για να διατηρηθεί ο σωστός χρόνος για την πολυπλεξία. Ένας δυαδικός σε δυαδικός κωδικοποιημένος δεκαδικός κωδικοποιητής είναι απαραίτητος για τη μετατροπή των εισόδων στο αρχείο σε μια μορφή που μπορεί να εξαχθεί στην οθόνη των επτά τμημάτων. Η τελική έξοδος του αρχείου sseg αντιστοιχίζεται στην οθόνη των επτά τμημάτων και στην οθόνη εμφανίζεται ο σωστός χρόνος.
Βήμα 7: Σύνδεση αρχείου
Το αρχείο σύνδεσης συνδέει όλες τις άλλες πτυχές του προγράμματος και χαρτογραφεί τα σήματα στη σωστή θέση τους. Κάθε στοιχείο εισάγεται και τεκμηριώνεται μέσα στο αρχείο. Τα σήματα χρησιμοποιούνται για τη μεταφορά δεδομένων από το ένα συστατικό στο άλλο. Η χαρτογράφηση της θύρας θα ακολουθήσει το διάγραμμα μαύρου κουτιού που παρατίθεται παραπάνω. Το αρχείο συνδέσμου διατηρεί επίσης τη λογική που διέπει όταν ενεργοποιείται ο συναγερμός. Μέχρι τώρα, το μεγαλύτερο μέρος του έργου θα έχει ολοκληρωθεί. Το υπόλοιπο έργο δρομολογεί κάθε σήμα στην κατάλληλη θέση.
Βήμα 8: Arduino
Το arduino χρησιμοποιείται για την ενεργοποίηση του ηχείου καθώς και τον έλεγχο του τόνου και της διάρκειας της νότας που παίζεται μέσω του ηχείου. Το arduino διαβάζει ένα ψηφιακό σήμα από την πλακέτα Basys 3. Όταν αυτό το σήμα είναι υψηλό, το arduino θα βγάλει ένα σήμα PWM που ελέγχει τον τόνο και τη διάρκεια του συναγερμού. Το σήμα εξόδου από το arduino συνδέεται με το σήμα εισόδου μιας πλακέτας οδηγού ηχείων που αυξάνει την ένταση του ηχείου. Το arduino κάνει αυτή τη διαδικασία πολύ γρήγορα επαναλαμβάνοντας πολλές φορές το δευτερόλεπτο.
Βήμα 9: Δρομολόγηση καλωδίων
Ο πίνακας arduino και Basys 3 πρέπει να είναι φυσικά συνδεδεμένοι για τη μεταφορά σημάτων μεταξύ των πλακετών. Το πρώτο καλώδιο με καλώδιο θα είναι ο πείρος γείωσης του JA PMOD του Basys 3 έως τον πείρο γείωσης του arduino. Στη συνέχεια συνδέστε ένα καλώδιο από τον πείρο 1 του JA PMOD του Basys 3 στον ψηφιακό πείρο 7 του arduino. Στη συνέχεια, συνδέστε δύο ακίδες γείωσης από το arduino στις ακίδες γείωσης του προγράμματος οδήγησης ηχείων. Στη συνέχεια, συνδέστε την έξοδο 3,3 V του arduino στο pin Vcc του προγράμματος οδήγησης ηχείων. Στη συνέχεια, συνδέστε τον ψηφιακό ακροδέκτη 9 του arduino με τον ακροδέκτη εισόδου του προγράμματος οδήγησης ηχείων.
Συνιστάται:
Έξυπνο ξυπνητήρι με χρήση Magicbit (Arduino): 10 βήματα
Έξυπνο ξυπνητήρι χρησιμοποιώντας Magicbit (Arduino): Αυτό το σεμινάριο δείχνει πώς να φτιάξετε ένα έξυπνο ξυπνητήρι χρησιμοποιώντας οθόνη OLED στον πίνακα προγραμματισμού Magicbit χωρίς να χρησιμοποιήσετε καμία μονάδα RTC
Δίδυμο ξυπνητήρι από κουτάκια σόδας: 7 βήματα (με εικόνες)
Δίδυμο ξυπνητήρι κουδουνιών από δοχεία σόδας: Αυτό το εγχειρίδιο σας δείχνει πώς να φτιάξετε ένα διπλό ξυπνητήρι από κουτιά σόδας. Το έργο χρησιμοποιεί δοχεία σόδας όπου αφαιρέθηκε το μελάνι (Σύνδεσμος: Αφαίρεση μελανιού από δοχεία σόδας). Για να γίνει αυτό το ξυπνητήρι πλήρως λειτουργικό, ενσωματώθηκε μια μονάδα ρολογιού DIY Quartz
Ένα θορυβώδες ξυπνητήρι: 3 βήματα
Ένα θορυβώδες ξυπνητήρι: Είμαι φοιτητής 13 ετών στην Ταϊβάν. Κάνω πράγματα με το Arduino για πρώτη φορά, αν μπορείτε να μου πείτε πώς να βελτιώσω αυτό το έργο, αφήστε μου σχόλια για να μπορέσω να κάνω το καλύτερο. (Ευχαριστώ ) Αυτό το ρολόι μπορεί να σε ξυπνήσει όταν κοιμάσαι, αλλά εγώ
Έξυπνο Ξυπνητήρι: Ένα Έξυπνο Ξυπνητήρι Με Raspberry Pi: 10 Βήματα (με Εικόνες)
Έξυπνο Ξυπνητήρι: Ένα Έξυπνο Ξυπνητήρι Κατασκευασμένο Με Βατόμουρο Π: Θέλατε ποτέ ένα έξυπνο ρολόι; Αν ναι, αυτή είναι η λύση για εσάς! Έφτιαξα το Smart Alarm Clock, αυτό είναι ένα ρολόι που μπορείτε να αλλάξετε την ώρα αφύπνισης σύμφωνα με τον ιστότοπο. Όταν χτυπήσει το ξυπνητήρι, θα ακουστεί ένας ήχος (βομβητής) και 2 φώτα θα
LED Ξυπνητήρι Sunrise με Προσαρμόσιμο Ξυπνητήρι Τραγουδιού: 7 Βήματα (με Εικόνες)
LED Ξυπνητήρι Sunrise με Προσαρμόσιμο Ξυπνητήρι Τραγουδιού: Το Κίνητρό μου Αυτό το χειμώνα η κοπέλα μου είχε πολύ πρόβλημα να ξυπνήσει το πρωί και φαινόταν να πάσχει από SAD (Seasonal Affective Disorder). Παρατηρώ μάλιστα πόσο πιο δύσκολο είναι να ξυπνάς το χειμώνα αφού ο ήλιος δεν έχει έρθει