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

L I G H T S: 5 Βήματα
L I G H T S: 5 Βήματα

Βίντεο: L I G H T S: 5 Βήματα

Βίντεο: L I G H T S: 5 Βήματα
Βίντεο: LIGHT x TRANNOS - 24HRS (Official Music Video) 2024, Νοέμβριος
Anonim
ΦΩΤΑ
ΦΩΤΑ

Ο σκοπός αυτού του τελικού έργου ήταν να δημιουργήσει κάτι που θα επικεντρώνεται στη βιωσιμότητα και θα εφαρμόζει έννοιες ψηφιακού σχεδιασμού, και για να το κάνω αυτό, αποφάσισα να σχεδιάσω ένα κλιμακούμενο σύστημα εξοικονόμησης ενέργειας χρησιμοποιώντας vhdl και φτιαγμένο για τον πίνακα Basys 3 (σειρά Artix-7 35T). Επεκτάσιμο επειδή οποιοσδήποτε αριθμός αισθητήρων μπορεί να τοποθετηθεί σε ένα δωμάτιο και οποιοσδήποτε αριθμός αυτών των συστημάτων μπορεί να τοποθετηθεί γύρω από ένα κτίριο ή ένα σπίτι. Αυτό που θα έκανε αυτό το σύστημα, είναι η θεωρητική εξοικονόμηση χιλιάδων δολαρίων σε εμπορικά κτίρια και η μείωση ενός μεγάλου ποσοστού κατανάλωσης ενέργειας σε μικρότερες οικιστικές κοινότητες, εφαρμόζοντας ένα συνδεδεμένο σύστημα ενεργών και παθητικά ελεγχόμενων φώτων, ανιχνευτών κίνησης, χρονοδιακόπτη που εμφανίζονται σε οθόνες επτά τμημάτων και διακόπτες ελέγχου. Αυτό το παράδειγμα ασχολείται με ένα μόνο σύστημα με τρεις ανιχνευτές κίνησης, έναν κύριο διακόπτη, έναν χειροκίνητο/κανονικό διακόπτη, τέσσερις οθόνες επτά τμημάτων και ένα μόνο φως που ελέγχει το σύστημα.

Για παράδειγμα, σε ένα επιλεγμένο δωμάτιο, θα τοποθετηθούν αρκετοί ανιχνευτές κίνησης (αυτός ο σχεδιασμός έχει τρεις) και ο καθένας θα στείλει ένα σήμα (1) αν ανιχνεύσει κίνηση και (0) αν δεν το κάνει. Εάν τουλάχιστον ένας από τους ανιχνευτές κίνησης εντοπίσει κίνηση, τα φώτα ανάβουν εάν δεν είναι ήδη αναμμένα και παραμένουν αναμμένα εάν είναι ήδη αναμμένα. Οποιαδήποτε στιγμή όλοι οι ανιχνευτές κίνησης δεν ανιχνεύουν τίποτα, ένας χρονοδιακόπτης αρχίζει να μετρά αντίστροφα για ένα ορισμένο χρονικό διάστημα (ρυθμιζόμενο στον κωδικό) και οι λυχνίες παραμένουν αναμμένες ενώ ο χρονοδιακόπτης μετρά αντίστροφα. Μόλις τελειώσει η αντίστροφη μέτρηση του χρονοδιακόπτη, ο χρονοδιακόπτης σταματά και τα φώτα σβήνουν. Εάν τουλάχιστον ένας ανιχνευτής κίνησης ανιχνεύσει κίνηση ενώ ο χρονοδιακόπτης μετρά αντίστροφα, ο χρονοδιακόπτης σταματά και επαναρυθμίζεται. Και αν τουλάχιστον ένας ανιχνευτής κίνησης ανιχνεύσει κίνηση ενώ τα φώτα είναι σβηστά, τα φώτα ανάβουν αμέσως.

Αυτό το σύστημα έχει δύο λειτουργίες, μία με το χρονόμετρο όπως αναφέρθηκε παραπάνω και μια δεύτερη όπου υπάρχει ένας διακόπτης που ελέγχει τα φώτα χειροκίνητα (αγνοώντας τους αισθητήρες). Υπάρχει ένας κύριος διακόπτης που επιτρέπει στον χρήστη να επιλέξει ποια λειτουργία θέλει να χρησιμοποιήσει με βάση όποια από αυτές αισθάνεται ότι θα εξοικονομήσει περισσότερη ενέργεια συνολικά. Πρώην. Ένα δωμάτιο όπως ένας διάδρομος θα μπορούσε να επωφεληθεί από τη λειτουργία παθητικού χρονοδιακόπτη- οι χρήστες δεν είναι σίγουροι πότε θα περάσουν οι άνθρωποι, αλλά το να ανάβεις και να σβήνεις τα φώτα κάθε φορά που μπαίνουν και βγαίνουν θα ήταν ενόχληση, ενώ ένα τέτοιο δωμάτιο καθώς ένα υπνοδωμάτιο με έναν μόνο χρήστη θα ήταν καλύτερα χειροκίνητο. Και ο κύριος διακόπτης θα ήταν χρήσιμος σε περιπτώσεις όπως εάν το άτομο που ζει στην κρεβατοκάμαρα θα έφευγε για μεγάλο χρονικό διάστημα, τότε ο κύριος διακόπτης θα μπορούσε να απενεργοποιηθεί και η λειτουργία χρονοδιακόπτη θα λειτουργήσει για εξοικονόμηση ενέργειας πιο αποτελεσματικά.

Έτσι, σε αυτό το σύστημα, υπάρχουν δύο μηχανές κατάστασης, η μία είναι η κύρια μηχανή κατάστασης και η άλλη για το χρονόμετρο αντίστροφης μέτρησης. Το μηχάνημα κύριας κατάστασης έχει πέντε καταστάσεις που ορίζονται ως εξής: 1. "φώτα αναμμένα, ανίχνευση κίνησης" (id = 000), 2. "φώτα αναμμένα, καμία κίνηση δεν εντοπίστηκε" (id = 001), 3. "φώτα σβηστά, καμία κίνηση εντοπίστηκε "(id = 010), 4." ενεργοποιήθηκε χειροκίνητα "(id = 011) και 5." απενεργοποιήθηκε χειροκίνητα "(id = 100). Αυτό το μηχάνημα κύριας κατάστασης έχει τέσσερις εισόδους: τον κύριο διακόπτη (ms), τον χειροκίνητο/κανονικό διακόπτη (ns), ένα σήμα που είναι υψηλό όταν τουλάχιστον ένας διακόπτης ανιχνεύει κίνηση και είναι χαμηλά σε διαφορετική περίπτωση (orx) και ένα σήμα που είναι υψηλή μόλις τελειώσει ο χρονοδιακόπτης και είναι χαμηλός διαφορετικά (td). Το μηχάνημα κύριας κατάστασης έχει δύο εξόδους: φώτα (φώτα) και ένα σήμα που υποδεικνύει πότε πρέπει να ενεργοποιηθεί το χρονόμετρο αντίστροφης μέτρησης (χρονόμετρο) ή (t) (και τα δύο χρησιμοποιούνται εναλλακτικά).

Το δεύτερο μηχάνημα κατάστασης, το χρονόμετρο αντίστροφης μέτρησης, έχει 12 καταστάσεις: 10 από αυτές έχουν αναγνωριστικά που σχετίζονται με τον αριθμό που εμφανίζει το επτά τμήμα- «seg 10» (id = 1010), «seg 9» (id = 1001), […], "Seg 2" (id = 0010), "seg 1" (id = 0001), και οι άλλες δύο καταστάσεις εμφανίζουν μηδέν, αντιπροσωπεύοντας το χρονόμετρο εκτός λειτουργίας- οπότε υπάρχει το πρώτο κενό "κενό 1" (id = 1111) και το δεύτερο κενό "κενό 2" (id = 0000). Ο χρονομετρητής αντίστροφης μέτρησης έχει μία είσοδο: χρονόμετρο (t) και τρεις εξόδους: ο αριθμός που εμφανίζεται σε δυαδικό επίπεδο με τέσσερα bit (bin) και ένα σήμα που δείχνει ότι ο χρονοδιακόπτης έχει τελειώσει (td).

Βήμα 1: Διάγραμμα μαύρου κουτιού

Διάγραμμα μαύρου κουτιού
Διάγραμμα μαύρου κουτιού

Αυτή είναι μια επισκόπηση του πώς υποτίθεται ότι λειτουργεί ολόκληρο το σύστημα και περιγράφεται με ένα διάγραμμα μαύρου κουτιού.

  • Το ρολόι χρησιμοποιείται για να χρονομετρήσει την κύρια μηχανή κατάστασης και τον αποκωδικοποιητή επτά τμημάτων. απαιτείται πιο αργό ρολόι για τον κάτω μετρητή, οπότε υπάρχει μια μονάδα διαίρεσης ρολογιού που παίρνει την είσοδο του ρολογιού και εξάγει ένα πιο αργό ρολόι για τον κάτω μετρητή.
  • Η ενδιάμεση μεταβλητή (orx) στο περιτύλιγμα είναι συνδεδεμένη με τους αισθητήρες κίνησης και θα είναι υψηλή εάν τουλάχιστον ένας από τους αισθητήρες ανιχνεύσει κάτι, και χαμηλός διαφορετικά. η boolean εξίσωση για αυτό είναι ακριβώς orx = s (2) ή s (1) ή s (0).
  • Ο κύριος fsm ελέγχει σε ποια γενική κατάσταση βρίσκεται το σύστημα, ανάλογα με τις εισόδους (orx, ms, ns, td) και εξάγει την τρέχουσα κατάσταση στην οποία εμφανίζεται (sm) απλοποιημένη με τα δύο σήματα για τα οποία χρησιμοποιείται (χρονόμετρο και φώτα).

    • (χρονόμετρο) είναι ένα σήμα περιτύλιξης που αποστέλλεται στον κάτω μετρητή fsm ως είσοδό του και ελέγχεται από την τρέχουσα κατάσταση του κύριου fsm. Υποδεικνύει πότε πρέπει να ενεργοποιηθεί το χρονόμετρο.
    • (φώτα) είναι ένα σήμα περιτύλιξης που χρησιμοποιείται για τον έλεγχο του led και ελέγχεται από την τρέχουσα κατάσταση του κύριου fsm.
  • Ο κάτω μετρητής fsm ελέγχει τι εμφανίζει το επτά τμήμα ανάλογα με την είσοδο (χρονόμετρο) και εξάγει την τρέχουσα κατάσταση στην οποία εμφανίζεται (sd) απλοποιημένη με τα δύο σήματα για τα οποία χρησιμοποιείται (td και bin).

    • (td) είναι ένα σήμα περιτύλιξης που αποστέλλεται στον κύριο fsm ως είσοδό του και ελέγχεται από την τρέχουσα κατάσταση του κάτω μετρητή fsm. Λειτουργεί ως σήμα ανάδρασης που υποδεικνύει πότε έχει τελειώσει ο χρονοδιακόπτης.
    • (bin) είναι ένα σήμα περιτύλιξης τεσσάρων δυαδικών ψηφίων που συνδέεται με τέσσερα δυαδικά ψηφία μηδέν («0000» & bin) και τα συνδυασμένα οκτώ δυαδικά ψηφία αποστέλλονται στο (q), ένα σήμα περιτύλιξης οκτώ δυαδικών ψηφίων, το οποίο με τη σειρά του αποστέλλεται στα επτά αποκωδικοποιητής τμήματος κάτω (ALU_VAL).
  • Η ενότητα επτά τμημάτων είναι η ίδια με αυτήν στο Polylearn. Οι κύριες είσοδοί του λαμβάνουν έναν αριθμό 8 bit (bin) έως (ALU_VAL) για εμφάνιση σε τέσσερις διαφορετικές οθόνες επτά τμημάτων χρησιμοποιώντας τις εξόδους (SEGMENTS) στο σήμα περιτύλιξης (seg) και (DISP_EN) στο περιτύλιγμα (disp_en).

    • Δεδομένου ότι δύο ή περισσότερες επτά οθόνες τμημάτων δεν μπορούν να εμφανίσουν διαφορετικά ψηφία ταυτόχρονα, χρειάζεται ένα ρολόι για να κυκλώσει τα τέσσερα ssegs, εμφανίζοντας το κατάλληλο ψηφίο κάθε φορά που κάθε sseg ενεργοποιείται ξεχωριστά και η ποδηλασία αρκετά γρήγορα κάνει Το ssegs φαίνεται να είναι ενεργοποιημένο ταυτόχρονα.
    • (το σημάδι και το έγκυρο) είναι σταθερά σε όλο αυτό το πρόγραμμα, οπότε το (σημάδι) ορίζεται μόνιμα χαμηλά και το (έγκυρο) είναι μόνιμα υψηλό.
    • (ALU_VAL) λαμβάνει το σήμα περιτύλιξης (q) ως είσοδο, το οποίο αντιπροσωπεύει τον αριθμό που πρόκειται να εμφανιστεί στην οθόνη των επτά τμημάτων σε δυαδική μορφή.
    • Η έξοδος (SEGMENTS) αποστέλλεται σε σήμα περιτύλιξης οκτώ bit (seg) και (DISP_EN) σε σήμα περιτύλιξης τεσσάρων bit (disp_en).
  • Υπάρχει επίσης μια μονάδα D flip flop που δεν εμφανίζεται ρητά στο διάγραμμα αλλά είναι απαραίτητη για τις δύο μηχανές κατάστασης ως υπομονάδες και βοηθά τις καταστάσεις μετάβασης συγχρόνως.

    • (3) από αυτά χρειάζονται για το κύριο fsm αφού 2^(3) = 8> 5 καταστάσεις για κωδικοποίηση
    • (4) από αυτά χρειάζονται για τον κάτω μετρητή fsm αφού 2^4 = 16> 12 καταστάσεις για κωδικοποίηση

Βήμα 2: Μηχανές κατάστασης

Κρατικές μηχανές
Κρατικές μηχανές

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

Οι κύριες καταστάσεις fsm:

"Φωτάκια αναμμένα, εντοπίστηκε κίνηση" (id = 000)

Τα φώτα είναι αναμμένα, τουλάχιστον ένας από τους ανιχνευτές κίνησης ανιχνεύει κίνηση, οπότε το orx πρέπει να είναι υψηλό και το ms είναι ενεργοποιημένο.

  • Έξοδος: φώτα = 1 και χρονόμετρο = 0
  • Παραμένει ως έχει όταν ms = 1 και orx = 1.
  • Μεταβαίνει στην κατάσταση "τα φώτα αναμμένα, δεν εντοπίστηκε κίνηση" εάν ms = 1 και orx = 0.
  • Μεταβαίνει στην κατάσταση "χειροκίνητα ενεργοποιημένο" εάν ms = 0 και ns = 1.
  • Μεταβαίνει στην κατάσταση "μη αυτόματη απενεργοποίηση" εάν ms = 0 και ns = 0.

"Φωτάκια αναμμένα, δεν εντοπίστηκε κίνηση" (id = 001)

Τα φώτα είναι αναμμένα, δεν ανιχνεύεται κίνηση από οποιονδήποτε ανιχνευτή κίνησης, οπότε το orx πρέπει να είναι χαμηλό και το ms είναι ενεργοποιημένο. Επίσης, στην αρχή αυτής της κατάστασης, ο χρονοδιακόπτης που βρίσκεται σε υψηλή θέση λέει στην αντίστροφη μέτρηση fsm να αρχίσει να μετρά αντίστροφα, προχωράει στην αντίστροφη μέτρηση και σταματά να μετρά αντίστροφα μόλις η αντίστροφη μέτρηση fsm πει σε αυτό το fsm ότι έχει τελειώσει.

  • Έξοδος: φώτα = 1 και χρονόμετρο = 1.
  • Παραμένει σε αυτήν την κατάσταση όταν ms = 1 και orx = 0 και td (ο χρονοδιακόπτης έχει ολοκληρωθεί) = 0.
  • Μεταβαίνει στην κατάσταση "τα φώτα αναμμένα, η κίνηση εντοπίστηκε" εάν ms = 1 και orx = 1.
  • Μεταβαίνει στην κατάσταση "σβήνει, δεν εντοπίστηκε κίνηση" εάν ms = 1 και orx = 0 και td = 1.
  • Μεταβαίνει στην κατάσταση "χειροκίνητα ενεργοποιημένο" εάν ms = 0 και ns = 1.
  • Μεταβαίνει στην κατάσταση "μη αυτόματη απενεργοποίηση" εάν ms = 0 και ns = 0.

"Σβηστά φώτα, δεν εντοπίστηκε κίνηση" (id = 010)

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

  • Έξοδος: φώτα = 0 και χρονόμετρο = 0.
  • Παραμένει σε αυτήν την κατάσταση όταν ms = 1 και orx = 0.
  • Μεταβαίνει στην κατάσταση "τα φώτα αναμμένα, η κίνηση εντοπίστηκε" εάν ms = 1 και orx = 1.
  • Μεταβαίνει στην κατάσταση "χειροκίνητα ενεργοποιημένο" εάν ms = 0 και ns = 1.
  • Μεταβαίνει στην κατάσταση "μη αυτόματη απενεργοποίηση" εάν ms = 0 και ns = 0.

"Ενεργοποιήθηκε χειροκίνητα" (id = 011)

Τα φώτα είναι αναμμένα, οι ανιχνευτές κίνησης είναι άσχετοι, οπότε το ms είναι απενεργοποιημένο και το ns είναι ενεργοποιημένο.

  • Έξοδος: φώτα = 1 και χρονόμετρο = 0.
  • Παραμένει σε αυτήν την κατάσταση όταν ms = 0 και ns = 1.
  • Μεταβαίνει στην κατάσταση "μη αυτόματη απενεργοποίηση" εάν ms = 0 και ns = 0.
  • Μεταβαίνει στην κατάσταση «σβήνει, δεν εντοπίστηκε κίνηση εάν ms = 1.

"Απενεργοποιημένη χειροκίνητα" (id = 100)

Τα φώτα είναι σβηστά, οι ανιχνευτές κίνησης είναι άσχετοι, οπότε το ms είναι απενεργοποιημένο και το ns είναι απενεργοποιημένο.

  • Έξοδος: φώτα = 0 και χρονόμετρο = 0.
  • Παραμένει σε αυτήν την κατάσταση όταν ms = 0 και ns = 0.
  • Μεταβαίνει στην κατάσταση "χειροκίνητα ενεργοποιημένο" εάν ms = 0 και ns = 1.
  • Μεταβαίνει στην κατάσταση «σβήνει, δεν εντοπίστηκε κίνηση εάν ms = 1.

Ο κάτω πάγκος δηλώνει:

"Seg 10" (id = 1010)

Στην οθόνη επτά τμημάτων εμφανίζεται ένα 10.

  • Έξοδος: bin = "1010" και td = 0.
  • Πηγαίνει στην κατάσταση "seg 9" εάν χρονόμετρο = 1.
  • Μεταβαίνει στην κατάσταση "κενό 2" εάν χρονόμετρο = 0.

"Seg 9" (id = 1001)

Η οθόνη επτά τμημάτων δείχνει ένα 9.

  • Έξοδος: bin = "1001" και td = 0.
  • Πηγαίνει στην κατάσταση "seg 8" εάν χρονόμετρο = 1.
  • Μεταβαίνει στην κατάσταση "κενό 2" εάν χρονόμετρο = 0.

(Οι καταστάσεις "Seg 8" έως "Seg 2" παραλείπονται επειδή ακολουθούν το ίδιο μοτίβο με τις "Seg 10" και "Seg 9" και δεν είναι απαραίτητες για επεξήγηση)

"Seg 1" (id = 0001)

Στην οθόνη επτά τμημάτων εμφανίζεται το 1.

  • Έξοδος: bin = "0001" και td = 0.
  • Μεταβαίνει στην κατάσταση "κενό 2" στο επόμενο άκρο του ρολογιού (δεν απαιτείται είσοδος).

"Κενό 2" (id = 1111)

Η οθόνη επτά τμημάτων δείχνει ένα 0. Ο σκοπός μιας δεύτερης κενής κατάστασης είναι έτσι ώστε να υπάρχει μια ξεχωριστή κατάσταση όταν td = 1 για ασφάλεια.

  • Έξοδος: bin = "1111" και td = 1.
  • Μεταβαίνει στην κατάσταση "κενό 1" στο επόμενο άκρο του ρολογιού (δεν απαιτείται είσοδος).

"Κενό 1" (id = 0000)

Η οθόνη επτά τμημάτων δείχνει ένα 0. Αυτή είναι η κατάσταση στην οποία παραμένει το σύστημα όταν το μηχάνημα της κύριας κατάστασης είναι σε κατάσταση «σβήνει, δεν εντοπίζεται κίνηση».

  • Έξοδος: bin = "0000" και td = 0.
  • Μεταβαίνει στην κατάσταση "seg 10" εάν χρονόμετρο = 1.

Βήμα 3: Πίνακες αλήθειας μηχανής, εξισώσεις διέγερσης και εξισώσεις εξόδου

Κρατικοί πίνακες αλήθειας μηχανών, εξισώσεις διέγερσης και εξισώσεις εξόδου
Κρατικοί πίνακες αλήθειας μηχανών, εξισώσεις διέγερσης και εξισώσεις εξόδου
Κρατικοί πίνακες αλήθειας μηχανών, εξισώσεις διέγερσης και εξισώσεις εξόδου
Κρατικοί πίνακες αλήθειας μηχανών, εξισώσεις διέγερσης και εξισώσεις εξόδου
Κρατικοί πίνακες αλήθειας μηχανών, εξισώσεις διέγερσης και εξισώσεις εξόδου
Κρατικοί πίνακες αλήθειας μηχανών, εξισώσεις διέγερσης και εξισώσεις εξόδου
Κρατικοί πίνακες αλήθειας μηχανών, εξισώσεις διέγερσης και εξισώσεις εξόδου
Κρατικοί πίνακες αλήθειας μηχανών, εξισώσεις διέγερσης και εξισώσεις εξόδου

Το επόμενο βήμα είναι να δημιουργήσουμε πίνακες αλήθειας για τις δύο μηχανές κατάστασης και εξισώσεις διέγερσης και εξισώσεις εξόδου για κάθε fsm. Για κάθε εξίσωση διέγερσης fsm, πρέπει να υπάρχουν εξισώσεις για κάθε επόμενη κατάσταση κωδικοποιημένου bit ως προς την τρέχουσα κατάσταση και τα σήματα εισόδου του. Για κάθε εξίσωση εξόδου fsm, πρέπει να υπάρχουν εξισώσεις για κάθε σήμα εξόδου ως προς την τρέχουσα κατάσταση. Και τα τέσσερα σύνολα εξισώσεων μπορούν να αντληθούν από τους πίνακες αλήθειας που απεικονίζονται. (qn είναι το επόμενο bit κωδικοποιημένης κατάστασης για κάθε μηχανή κατάστασης και q είναι η τρέχουσα κατάσταση)

(000) ισοδύναμο με q (2) "q (1)" q (0) "και (0000) ισοδύναμο με q (3)" q (2) "q (1)" q (0)"

(π.χ. (0101) είναι q (3) 'q (2) q (1)' q (0) και (110) είναι q (2) q (1) q (0) ')

Εξισώσεις διέγερσης για το κύριο fsm:

  • qn (2) = (ms) '(ns)
  • qn (1) = (ms) '(ns)' + (ms) (orx) '[(td) (001) + (010)] + (ms) [(011) + (100)]
  • qn (0) = (ms) '(ns)' + (ms) (orx) '[(000) + (td)' (001)]

Εξισώσεις εξόδου για το κύριο fsm:

  • φώτα = (000) + (001) + (100)
  • χρονόμετρο = (001)

Εξισώσεις διέγερσης για τον κάτω μετρητή fsm:

  • qn (3) = t [(0000) + (1010) + (1001) + (0001)]
  • qn (2) = t [(1000) + (0111) + (0110) + (0101) + (0001)]
  • qn (1) = t [(0000) + (1000) + (0111) + (0100) + (0011) + (0001)]
  • qn (0) = t [(1010) + (1000) + (0110) + (0100) + (0010) + (0001)]

Εξισώσεις εξόδου για τον κάτω μετρητή fsm:

  • td = (1111)
  • κάδος (3) = (1010) + (1001) + (1000) + (1111) + (0000)
  • κάδος (2) = (0111) + (0110) + (0101) + (0100) + (1111) + (0000)
  • κάδος (1) = (1010) + (0111) + (0110) + (0011) + (0010) + (1111) + (0000)
  • κάδος (0) = (1001) + (0111) + (0101) + (0011) + (0001) + (1111) + (0000)

Βήμα 4: Περιτύλιγμα, Υπομονάδες και Περιορισμός

Όπως εξηγήθηκε ήδη στο Βήμα 1, αυτές οι ενότητες είναι απαραίτητες για αυτό το έργο και είναι όλες δεμένες μαζί με την ενότητα περιτύλιξης με τίτλο "final_proj.vhd". Το αρχείο περιορισμού με τίτλο "Basys3_Master.xdc" χρησιμοποιείται για τη σύνδεση όλων των εισόδων και εξόδων περιτυλίγματος με διακόπτες, τις επτά τμημάτων και τις θύρες εισόδου/εξόδου στον πίνακα Basys 3. Ο κύριος διακόπτης πρέπει να είναι ο διακόπτης στην πλακέτα πιο κοντά στην πλευρά που είναι συνδεδεμένα τα καλώδια, ο κανονικός/χειροκίνητος διακόπτης είναι ο δεύτερος πλησιέστερος και οι τρεις διακόπτες που αντιπροσωπεύουν τους τρεις αισθητήρες κίνησης είναι οι τρεις διακόπτες αμέσως δίπλα στον κανονικό/χειροκίνητο διακόπτη Το Όλος ο κώδικας (εξισώσεις boole, δηλώσεις ενότητας κλπ) είναι ήδη γραμμένος στα αρχεία, οπότε δεν χρειάζεται να γράψετε τίποτα άλλο για να λειτουργήσει αυτό.

Βήμα 5: Θύρες εισόδου/εξόδου για LED

Θύρες I/O για LED
Θύρες I/O για LED
Θύρες I/O για LED
Θύρες I/O για LED

Το τελευταίο βήμα για αυτό το έργο είναι να χρησιμοποιήσετε ένα led για να δείξετε εάν (τα φώτα) όντως ανάβουν ή σβήνουν. Η καλωδίωση φαίνεται στις δύο εικόνες. Βεβαιωθείτε ότι υπάρχει μια αντίσταση σε σειρά με το led (τουλάχιστον 330 ohm) για να μην καεί το led και βεβαιωθείτε ότι ο μακρύς πείρος του led είναι συνδεδεμένος με την ίδια θηλυκή κεφαλίδα στον πίνακα βάσης όπως φαίνεται το κόκκινο σύρμα (επάνω δεξιά) και ο μικρότερος πείρος συνδέεται με τη γείωση, η ίδια γυναικεία κεφαλίδα με το μαύρο σύρμα (επάνω, δεύτερη από αριστερά).

Συνιστάται: