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

Ξυπνητήρι Basys 3: 9 Βήματα
Ξυπνητήρι Basys 3: 9 Βήματα

Βίντεο: Ξυπνητήρι Basys 3: 9 Βήματα

Βίντεο: Ξυπνητήρι Basys 3: 9 Βήματα
Βίντεο: 9 σπιτικές θεραπείες για την οστεοπόρωση 2024, Οκτώβριος
Anonim
Ξυπνητήρι Basys 3
Ξυπνητήρι Basys 3

Το έργο μας δημιουργεί ξυπνητήρι χρησιμοποιώντας τον πίνακα 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

Counter Hour
Counter Hour
Counter Hour
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

Universal Seven Segment Display Driver
Universal Seven Segment Display Driver
Universal Seven Segment Display Driver
Universal Seven Segment Display Driver
Universal Seven Segment Display Driver
Universal Seven Segment Display Driver

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

Βήμα 7: Σύνδεση αρχείου

Σύνδεσμος αρχείου
Σύνδεσμος αρχείου
Σύνδεσμος αρχείου
Σύνδεσμος αρχείου
Σύνδεσμος αρχείου
Σύνδεσμος αρχείου

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

Βήμα 8: Arduino

Arduino
Arduino
Arduino
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 με τον ακροδέκτη εισόδου του προγράμματος οδήγησης ηχείων.

Συνιστάται: