Ένδειξη 4 ψηφίων Σύνδεση Arduino. Ένδειξη επτά τμημάτων. Έξοδος σε δείκτες κλασματικών αριθμών, μορφή float

Υπάρχουν παράμετροι για τις οποίες θα ήταν πιο βολικό να παρέχονται αντικειμενικές πληροφορίες παρά απλώς μια ένδειξη. Για παράδειγμα, η θερμοκρασία του αέρα έξω ή η ώρα στο ξυπνητήρι. Ναι, όλα αυτά θα μπορούσαν να γίνουν με λαμπτήρες ή LED. Ένας βαθμός – ένα αναμμένο LED ή λαμπτήρας κ.λπ. Αλλά μετρώντας αυτές τις πυγολαμπίδες - καλά, όχι! Αλλά, όπως λένε, τα περισσότερα απλές λύσεις- το πιο αξιόπιστο. Ως εκ τούτου, χωρίς να το σκεφτούν για πολύ καιρό, οι προγραμματιστές πήραν απλές λωρίδες LED και τις τακτοποίησαν με τη σωστή σειρά.

Στις αρχές του εικοστού αιώνα με την έλευση σωλήνες κενούεμφανίστηκαν οι πρώτοι δείκτες εκκένωσης αερίου

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


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

Δείκτες επτά τμημάτων

Με την εμφάνιση των LED, η κατάσταση έχει αλλάξει δραματικά προς το καλύτερο. Τα ίδια τα LED καταναλώνουν μικρό ρεύμα. Εάν τα τοποθετήσετε στη σωστή θέση, μπορείτε να εμφανίσετε απολύτως οποιαδήποτε πληροφορία. Για να επισημανθούν όλοι οι αραβικοί αριθμοί, αρκούν μόνο επτά φωτεινές λωρίδες LED - τμήματα, ρυθμισμένα με συγκεκριμένο τρόπο:

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

Θεωρητικά, παίρνουμε έναν δείκτη οκτώ τμημάτων, αλλά με τον παλιό τρόπο ονομάζεται επίσης δείκτης επτά τμημάτων.

Ποιο είναι το αποτέλεσμα? Κάθε λωρίδα στην ένδειξη επτά τμημάτων φωτίζεται από ένα LED ή μια ομάδα LED. Ως αποτέλεσμα, επισημαίνοντας ορισμένα τμήματα, μπορούμε να εμφανίσουμε αριθμούς από το 0 έως το 9, καθώς και γράμματα και σύμβολα.

Τύποι και χαρακτηρισμός στο διάγραμμα

Υπάρχουν μονοψήφιοι, διψήφιοι, τριψήφιοι και τετραψήφιοι δείκτες επτά τμημάτων. Δεν έχω δει ποτέ περισσότερες από τέσσερις κατηγορίες.

Στα διαγράμματα, ο δείκτης επτά τμημάτων μοιάζει κάπως έτσι:

Στην πραγματικότητα, εκτός από τους κύριους ακροδέκτες, κάθε δείκτης επτά τμημάτων έχει επίσης έναν κοινό ακροδέκτη με μια κοινή άνοδο (OA) ή μια κοινή κάθοδο (OC).

Το εσωτερικό κύκλωμα ενός δείκτη επτά τμημάτων με κοινή άνοδο θα μοιάζει με αυτό:


και με μια κοινή κάθοδο όπως αυτή:


Εάν έχουμε έναν δείκτη επτά τμημάτων με κοινή άνοδο (ΟΑ), τότε στο κύκλωμα πρέπει να τροφοδοτήσουμε «συν» ισχύ σε αυτόν τον πείρο και αν με κοινή κάθοδο (OC), τότε «μείον» ή γείωση.

Πώς να ελέγξετε έναν δείκτη επτά τμημάτων

Έχουμε τους παρακάτω δείκτες:


Για να ελέγξουμε έναν σύγχρονο δείκτη επτά τμημάτων, χρειαζόμαστε μόνο ένα πολύμετρο με λειτουργία δοκιμής διόδου. Αρχικά, αναζητούμε ένα γενικό συμπέρασμα - μπορεί να είναι είτε ΟΑ είτε ΟΚ. Εδώ μόνο τυχαία. Λοιπόν, τότε ελέγχουμε την απόδοση των υπόλοιπων τμημάτων του δείκτη σύμφωνα με τα παραπάνω διαγράμματα.

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


Μερικές φορές η τάση στο πολύμετρο δεν είναι αρκετή για να ελέγξει ένα τμήμα. Επομένως, παίρνουμε ένα τροφοδοτικό και το ρυθμίζουμε στα 5 Volt. Για να περιορίσουμε το ρεύμα μέσω του τμήματος, ελέγχουμε μέσω μιας αντίστασης 1-2 Kilo-Ohm.


Με τον ίδιο τρόπο ελέγχουμε την ένδειξη από τον κινέζικο δέκτη


Στα κυκλώματα, οι δείκτες επτά τμημάτων συνδέονται με αντιστάσεις σε κάθε ακίδα

Στο δικό μας σύγχρονος κόσμοςΟι δείκτες επτά τμημάτων αντικαθίστανται από δείκτες υγρών κρυστάλλων που μπορούν να εμφανίσουν απολύτως οποιαδήποτε πληροφορία

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

Οι ενδείξεις LED επτά τμημάτων είναι πολύ δημοφιλείς μεταξύ των συσκευών απεικόνισης ψηφιακών τιμών και χρησιμοποιούνται στα μπροστινά πάνελ των φούρνων μικροκυμάτων, πλυντήρια, ψηφιακά ρολόγια, μετρητές, χρονόμετρα, κ.λπ. Σε σύγκριση με τους δείκτες LCD, τα τμήματα ενδείξεων LED ανάβουν έντονα και είναι ορατά σε μεγάλη απόσταση και σε ευρεία γωνία θέασης. Για να συνδέσετε μια ένδειξη 4-bit επτά τμημάτων σε έναν μικροελεγκτή, θα απαιτηθούν τουλάχιστον 12 γραμμές I/O. Επομένως, είναι σχεδόν αδύνατο να χρησιμοποιήσετε αυτούς τους δείκτες με μικροελεγκτές με μικρό αριθμό ακίδων, για παράδειγμα, σειρές από την εταιρεία. Φυσικά μπορείτε να χρησιμοποιήσετε διαφορετικές μεθόδουςπολυπλεξία (μια περιγραφή της οποίας μπορεί να βρεθεί στον ιστότοπο στην ενότητα "Σχήματα"), αλλά ακόμη και σε αυτήν την περίπτωση υπάρχουν ορισμένοι περιορισμοί για κάθε μέθοδο και συχνά χρησιμοποιούν πολύπλοκους αλγόριθμους λογισμικού.

Θα εξετάσουμε τη μέθοδο σύνδεσης ενός δείκτη μέσω της διεπαφής SPI, η οποία θα απαιτήσει μόνο 3 γραμμές I/O του μικροελεγκτή. Ταυτόχρονα, ο έλεγχος όλων των τμημάτων δεικτών θα παραμείνει.

Για τη σύνδεση μιας ένδειξης 4-bit σε έναν μικροελεγκτή μέσω του διαύλου SPI, χρησιμοποιείται ένα εξειδικευμένο τσιπ προγράμματος οδήγησης που παράγεται από την εταιρεία. Το μικροκύκλωμα είναι ικανό να οδηγεί οκτώ δείκτες επτά τμημάτων με κοινή κάθοδο και περιλαμβάνει έναν αποκωδικοποιητή BCD, προγράμματα οδήγησης τμήματος, ένα κύκλωμα πολυπλεξίας και στατική μνήμη RAM για την αποθήκευση τιμών ψηφίων.

Το ρεύμα μέσω των τμημάτων του δείκτη ρυθμίζεται χρησιμοποιώντας μόνο μία εξωτερική αντίσταση. Επιπλέον, το τσιπ υποστηρίζει τον έλεγχο της φωτεινότητας του δείκτη (16 επίπεδα φωτεινότητας) χρησιμοποιώντας ενσωματωμένο PWM.

Το κύκλωμα που συζητείται στο άρθρο είναι ένα κύκλωμα μονάδας οθόνης με διεπαφή SPI που μπορεί να χρησιμοποιηθεί σε σχέδια ραδιοερασιτεχνών. Και μας ενδιαφέρει περισσότερο όχι το ίδιο το κύκλωμα, αλλά η εργασία με το μικροκύκλωμα μέσω της διεπαφής SPI. Η ισχύς της μονάδας +5 V παρέχεται στον ακροδέκτη Vcc, γραμμές σήματοςΤα MOSI, CLK και CS έχουν σχεδιαστεί για επικοινωνία μεταξύ μιας κύριας συσκευής (μικροελεγκτής) και μιας εξαρτημένης συσκευής (τσιπ MAX7219).

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

Τα δεδομένα μεταφέρονται στο τσιπ σε πακέτα 16-bit (δύο byte), τα οποία τοποθετούνται στον ενσωματωμένο καταχωρητή μετατόπισης 16-bit σε κάθε ανερχόμενη ακμή του σήματος CLK. Συμβολίζουμε ένα πακέτο 16 bit ως D0-D15, όπου τα bit D0-D7 περιέχουν δεδομένα, τα D8-D11 περιέχουν τη διεύθυνση καταχωρητή, τα bit D12-D15 δεν έχουν κανένα νόημα. Το bit D15 είναι το πιο σημαντικό bit και είναι το πρώτο bit που λαμβάνεται. Αν και το τσιπ είναι ικανό να ελέγχει οκτώ δείκτες, θα εξετάσουμε το ενδεχόμενο να εργαστούμε μόνο με τέσσερις. Ελέγχονται από τις εξόδους DIG0 - DIG3, που βρίσκονται στη σειρά από δεξιά προς τα αριστερά, οι διευθύνσεις 4-bit (D8-D11) που αντιστοιχούν σε αυτές είναι 0x01, 0x02, 0x03 και 0x04 (δεκαεξαδική μορφή). Ο καταχωρητής ψηφίων υλοποιείται με χρήση μνήμης RAM στο chip με οργάνωση 8x8 και είναι απευθείας διευθυνσιοδοτήσιμος, ώστε κάθε μεμονωμένο ψηφίο στην οθόνη να μπορεί να ενημερώνεται ανά πάσα στιγμή. Ο παρακάτω πίνακας δείχνει τα διευθυνσιοδοτούμενα ψηφία και τους καταχωρητές ελέγχου του τσιπ MAX7219.

Κανω ΕΓΓΡΑΦΗ

Διεύθυνση

Τιμή HEX

Καμία επέμβαση

Λειτουργία αποκωδικοποίησης

Αριθμός δεικτών

ΤΕΡΜΑΤΙΣΜΟΣ ΛΕΙΤΟΥΡΓΙΑΣ

Δοκιμή δείκτη

Μητρώα ελέγχου

Το τσιπ MAX1792 διαθέτει 5 καταχωρητές ελέγχου: λειτουργία αποκωδικοποίησης (Decode-Mode), έλεγχος φωτεινότητας δείκτη (Ένταση), καταχωρητής του αριθμού των συνδεδεμένων ενδείξεων (Όριο σάρωσης), έλεγχος ενεργοποίησης/απενεργοποίησης (Τερματισμός λειτουργίας), λειτουργία δοκιμής (Δοκιμή οθόνης).

Ενεργοποίηση και απενεργοποίηση του τσιπ

Όταν εφαρμόζεται ρεύμα στο τσιπ, επαναφέρονται όλοι οι καταχωρητές και μεταβαίνει σε λειτουργία τερματισμού λειτουργίας. Σε αυτή τη λειτουργία η οθόνη είναι απενεργοποιημένη. Για να μεταβείτε σε κανονική λειτουργία, πρέπει να ρυθμιστεί το bit D0 του καταχωρητή τερματισμού λειτουργίας (διεύθυνση 0Сh). Αυτό το bit μπορεί να διαγραφεί ανά πάσα στιγμή για να αναγκάσει το πρόγραμμα οδήγησης να απενεργοποιηθεί, αφήνοντας τα περιεχόμενα όλων των καταχωρητών αμετάβλητα. Αυτή η λειτουργία μπορεί να χρησιμοποιηθεί για εξοικονόμηση ενέργειας ή σε λειτουργία συναγερμού αναβοσβήνοντας την ένδειξη (διαδοχική ενεργοποίηση και απενεργοποίηση της λειτουργίας τερματισμού λειτουργίας).

Το μικροκύκλωμα μεταβαίνει σε λειτουργία τερματισμού λειτουργίας μεταδίδοντας διαδοχικά τη διεύθυνση (0Сh) και τα δεδομένα (00h) και μεταφέροντας το 0Ch (διεύθυνση) και μετά το 01h (δεδομένα) επιστρέφει στην κανονική λειτουργία.

Λειτουργία αποκωδικοποίησης

Χρησιμοποιώντας τον καταχωρητή επιλογής τρόπου αποκωδικοποίησης (διεύθυνση 09h), μπορείτε να χρησιμοποιήσετε αποκωδικοποίηση κωδικού BCD B (εμφάνιση χαρακτήρων 0-9, E, H, L, P, -) ή χωρίς αποκωδικοποίηση για κάθε ψηφίο. Κάθε bit στον καταχωρητή αντιστοιχεί σε ένα ψηφίο, η ρύθμιση ενός λογικού αντιστοιχεί στην ενεργοποίηση του αποκωδικοποιητή για αυτό το bit, η ρύθμιση 0 σημαίνει ότι ο αποκωδικοποιητής είναι απενεργοποιημένος. Εάν χρησιμοποιείται αποκωδικοποιητής BCD, τότε λαμβάνεται υπόψη μόνο το χαμηλότερο ίχνος δεδομένων στους καταχωρητές ψηφίων (D3-D0), τα bit D4-D6 αγνοούνται, το bit D7 δεν εξαρτάται από τον αποκωδικοποιητή BCD και είναι υπεύθυνο για την ενεργοποίηση την υποδιαστολή στον δείκτη εάν D7 = 1. Για παράδειγμα, όταν τα byte 02h και 05h αποστέλλονται με τη σειρά, η ένδειξη DIG1 (δεύτερο ψηφίο από τα δεξιά) θα εμφανίσει τον αριθμό 5. Ομοίως, κατά την αποστολή 01h και 89h, η ένδειξη DIG0 θα εμφανίσει τον αριθμό 9 με την υποδιαστολή περιλαμβανόμενη . Ο παρακάτω πίνακας δείχνει πλήρης λίσταχαρακτήρες που εμφανίζονται κατά τη χρήση του αποκωδικοποιητή BCD του τσιπ.

Σύμβολο

Δεδομένα σε μητρώα

Ενεργοποιημένα τμήματα = 1

Αδειάζω

*Η υποδιαστολή ορίζεται από το bit D7=1

Όταν ο αποκωδικοποιητής BCD αποκλείεται από τη λειτουργία, τα bit δεδομένων D7-D0 αντιστοιχούν στις γραμμές τμήματος (A-G και DP) του δείκτη.

Έλεγχος φωτεινότητας ενδείξεων

Το τσιπ σας επιτρέπει να ελέγχετε μέσω προγραμματισμού τη φωτεινότητα των ενδείξεων χρησιμοποιώντας το ενσωματωμένο PWM. Η έξοδος PWM ελέγχεται από τη τσιμπίδα χαμηλής τάξης (D3-D0) του καταχωρητή Intensity (διεύθυνση 0Ah), η οποία σας επιτρέπει να ορίσετε ένα από τα 16 επίπεδα φωτεινότητας. Όταν όλα τα κομμάτια ενός τσιμπήματος έχουν ρυθμιστεί στο 1, επιλέγεται η μέγιστη φωτεινότητα της ένδειξης.

Αριθμός συνδεδεμένων ενδείξεων

Ο καταχωρητής Scan-Limit (διεύθυνση 0Bh) ορίζει την τιμή του αριθμού των bit που εξυπηρετούνται από το μικροκύκλωμα (1 ... 8). Για την έκδοση 4-bit, η τιμή 03h θα πρέπει να γραφτεί στον καταχωρητή.

Δοκιμή δείκτη

Το μητρώο που είναι υπεύθυνο για αυτήν τη λειτουργία βρίσκεται στη διεύθυνση 0Fh. Ρυθμίζοντας το bit D0 στον καταχωρητή, ο χρήστης ενεργοποιεί όλα τα τμήματα ενδείξεων, ενώ τα περιεχόμενα των καταχωρητών ελέγχου και δεδομένων δεν αλλάζουν. Για να απενεργοποιήσετε τη λειτουργία Display-Test, το bit D0 πρέπει να είναι 0.

Διασύνδεση με μικροελεγκτή

Η μονάδα ένδειξης μπορεί να συνδεθεί με οποιονδήποτε μικροελεγκτή που έχει τρεις ελεύθερες γραμμές I/O. Εάν ο μικροελεγκτής έχει ενσωματωμένη μονάδα υλικού SPI, τότε η μονάδα ενδείξεων μπορεί να συνδεθεί ως εξαρτημένη συσκευή στο δίαυλο. Σε αυτήν την περίπτωση, οι γραμμές σήματος SPI SDO (σειριακή έξοδος δεδομένων), SCLK (σειριακό ρολόι) και SS (slave select) του μικροελεγκτή μπορούν να συνδεθούν απευθείας στις ακίδες MOSI, CLK και CS του τσιπ MAX7219 (μονάδα). Το σήμα CS είναι ενεργό χαμηλό.

Εάν ο μικροελεγκτής δεν διαθέτει SPI υλικού, η διεπαφή μπορεί να οργανωθεί σε λογισμικό. Η επικοινωνία με το MAX7219 ξεκινά τραβώντας και κρατώντας τη γραμμή CS χαμηλά και στη συνέχεια στέλνοντας 16 bit δεδομένων διαδοχικά (πρώτα το MSB) στη γραμμή MOSI στην ανερχόμενη άκρη του σήματος CLK. Με την ολοκλήρωση της μετάδοσης, η γραμμή CS πηγαίνει ξανά ψηλά.

Στην ενότητα λήψεις, οι χρήστες μπορούν να κατεβάσουν το κείμενο πηγής του προγράμματος δοκιμής και το αρχείο HEX του υλικολογισμικού, το οποίο υλοποιεί έναν συμβατικό μετρητή 4-bit με εμφάνιση τιμών σε μια μονάδα ενδείξεων με διεπαφή SPI. Ο μικροελεγκτής που χρησιμοποιείται είναι μια διεπαφή που υλοποιείται σε λογισμικό, οι γραμμές σήματος CS, MOSI και CLK της μονάδας ενδείξεων συνδέονται στις θύρες GP0, GP1 και GP2, αντίστοιχα. Ο μεταγλωττιστής mikroC χρησιμοποιείται για Μικροελεγκτές PIC(μικροηλεκτρονική

Για να σχολιάσετε υλικά από τον ιστότοπο και να λάβετε πλήρης πρόσβασηστο φόρουμ μας χρειάζεστε κανω ΕΓΓΡΑΦΗ .


Διάγραμμα σύνδεσης για μονοψήφιο δείκτη επτά τμημάτων
Διάγραμμα σύνδεσης για πολυψήφιο δείκτη επτά τμημάτων

Συσκευή ψηφιακής απεικόνισης πληροφοριών. Αυτή είναι η απλούστερη εφαρμογή ενός δείκτη που μπορεί να εμφανίσει αραβικούς αριθμούς. Για την εμφάνιση γραμμάτων χρησιμοποιούνται πιο περίπλοκοι δείκτες πολλαπλών τμημάτων και μήτρας.

Όπως λέει και το όνομά του, αποτελείται από επτά στοιχεία οθόνης (τμήματα) που ανάβουν και σβήνουν ξεχωριστά. Εντάσσοντάς τα σε διαφορετικούς συνδυασμούς, μπορούν να χρησιμοποιηθούν για τη δημιουργία απλοποιημένων εικόνων αραβικών αριθμών.
Τα τμήματα χαρακτηρίζονται από τα γράμματα A έως G. όγδοο τμήμα - υποδιαστολή (δεκαδικό σημείο, DP), σχεδιασμένο για την εμφάνιση κλασματικών αριθμών.
Περιστασιακά, εμφανίζονται γράμματα στην ένδειξη επτά τμημάτων.

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

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

Εκτός από δέκα ψηφία, οι δείκτες επτά τμημάτων μπορούν να εμφανίζουν γράμματα. Αλλά λίγα γράμματα έχουν μια διαισθητική αναπαράσταση επτά τμημάτων.
Στα λατινικά: κεφαλαία A, B, C, E, F, G, H, I, J, L, N, O, P, S, U, Y, Z, πεζά a, b, c, d, e, g , h, i, n, o, q, r, t, u.
Στα κυριλλικά: A, B, V, G, g, E, i, N, O, o, P, p, R, S, s, U, Ch, Y (δύο ψηφία), b, E/Z.
Επομένως, οι δείκτες επτά τμημάτων χρησιμοποιούνται μόνο για την εμφάνιση απλών μηνυμάτων.

Συνολικά, η ένδειξη LED επτά τμημάτων μπορεί να εμφανίσει 128 χαρακτήρες:

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

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

Σύνδεση μιας μονοψήφιας ένδειξης επτά τμημάτων σε έναν μικροελεγκτή

Το παρακάτω διάγραμμα δείχνει πώς έχει συνδεθεί μια μονοψήφια ένδειξη επτά τμημάτωνστον μικροελεγκτή.
Θα πρέπει να ληφθεί υπόψη ότι εάν ο δείκτης με ΚΟΙΝΗ ΚΑΘΟΔΟΣ, τότε συνδέεται η κοινή του έξοδος "γη", και τα τμήματα αναφλέγονται με τροφοδοσία λογική μονάδαστην έξοδο της θύρας.
Εάν ο δείκτης είναι ΚΟΙΝΗ ΑΝΩΔΙΑ, τότε τροφοδοτείται στο κοινό σύρμα του "συν"τάση, και τα τμήματα αναφλέγονται μεταβαίνοντας την έξοδο της θύρας στην κατάσταση λογικό μηδέν.

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

Αντιστάσεις περιορισμού ρεύματοςμπορεί να υπάρχει ή να μην υπάρχει στο διάγραμμα. Όλα εξαρτώνται από την τάση τροφοδοσίας που παρέχεται στον δείκτη και τεχνικά χαρακτηριστικάδείκτες. Εάν, για παράδειγμα, η τάση που παρέχεται στα τμήματα είναι 5 βολτ και είναι σχεδιασμένα για τάση λειτουργίας 2 βολτ, τότε πρέπει να εγκατασταθούν αντιστάσεις περιορισμού ρεύματος (για να περιοριστεί το ρεύμα μέσω αυτών για αυξημένη τάση τροφοδοσίας και να μην καούν όχι μόνο η ένδειξη, αλλά και η θύρα του μικροελεγκτή).
Είναι πολύ εύκολο να υπολογίσετε την τιμή των αντιστάσεων περιορισμού ρεύματος, χρησιμοποιώντας τον τύπο του παππού Ωμ.
Για παράδειγμα, τα χαρακτηριστικά του δείκτη είναι τα εξής (λαμβανόμενα από το φύλλο δεδομένων):
— τάση λειτουργίας — 2 βολτ
— ρεύμα λειτουργίας — 10 mA (=0,01 A)
— Τάση τροφοδοσίας 5 βολτ
Τύπος υπολογισμού:
R= U/I (όλες οι τιμές σε αυτόν τον τύπο πρέπει να είναι σε Ohms, Volt και Amps)
R= (τάση τροφοδοσίας - τάση λειτουργίας)/ρεύμα λειτουργίας
R= (5-2)/0,01 = 300 Ohm

Διάγραμμα σύνδεσης για πολυψήφιο δείκτη LED επτά τμημάτωνΒασικά το ίδιο όπως όταν συνδέετε έναν μονοψήφιο δείκτη. Το μόνο πράγμα είναι ότι τα τρανζίστορ ελέγχου προστίθενται στις κάθοδοι (άνοδοι) των δεικτών:

Δεν φαίνεται στο διάγραμμα, αλλά μεταξύ των βάσεων των τρανζίστορ και των ακίδων της θύρας του μικροελεγκτή, είναι απαραίτητο να συμπεριληφθούν αντιστάσεις, η αντίσταση των οποίων εξαρτάται από τον τύπο του τρανζίστορ (υπολογίζονται οι τιμές των αντιστάσεων, αλλά μπορείτε επίσης να δοκιμάσετε να χρησιμοποιήσετε αντιστάσεις με ονομαστική τιμή 5-10 kOhm).

Η ένδειξη με εκκενώσεις πραγματοποιείται δυναμικά:
— ο δυαδικός κωδικός του αντίστοιχου ψηφίου ορίζεται στις εξόδους της θύρας PB για το 1ο ψηφίο και, στη συνέχεια, το λογικό επίπεδο εφαρμόζεται στο τρανζίστορ ελέγχου του πρώτου ψηφίου
— ο δυαδικός κωδικός του αντίστοιχου ψηφίου ορίζεται στις εξόδους της θύρας PB για το 2ο ψηφίο και, στη συνέχεια, το λογικό επίπεδο εφαρμόζεται στο τρανζίστορ ελέγχου του δεύτερου ψηφίου
— ο δυαδικός κωδικός του αντίστοιχου ψηφίου ορίζεται στις εξόδους της θύρας PB για το 3ο ψηφίο και, στη συνέχεια, το λογικό επίπεδο εφαρμόζεται στο τρανζίστορ ελέγχου του τρίτου ψηφίου
- έτσι σε κύκλο
Σε αυτή την περίπτωση, είναι απαραίτητο να ληφθούν υπόψη:
— για δείκτες με Εντάξειχρησιμοποιείται δομή τρανζίστορ ελέγχου NPN(ελέγχεται από λογική μονάδα)
- για ένδειξη με ΟΑ- τρανζίστορ δομής PNP(ελέγχεται από το λογικό μηδέν)

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

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

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

Και στις αρχές του εικοστού αιώνα, με την εμφάνιση των ηλεκτρονικών σωλήνων, εμφανίστηκαν οι πρώτοι δείκτες εκκένωσης αερίου

Με τη βοήθεια τέτοιων δεικτών ήταν δυνατή η εμφάνιση ψηφιακών πληροφοριών σε αραβικούς αριθμούς. Παλαιότερα, ήταν αυτοί οι λαμπτήρες που χρησιμοποιούνταν για να κάνουν διάφορες ενδείξεις για όργανα και άλλες ηλεκτρονικές συσκευές. Επί του παρόντος, τα στοιχεία εκκένωσης αερίου δεν χρησιμοποιούνται σχεδόν ποτέ πουθενά. Αλλά το ρετρό είναι πάντα της μόδας, γι' αυτό πολλοί ραδιοερασιτέχνες συλλέγουν υπέροχα ρολόγια εκκένωσης αερίου για τον εαυτό τους και τα αγαπημένα τους πρόσωπα.

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

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

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

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

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

Μετά από μερικά δευτερόλεπτα η σειρά επαναλαμβάνεται ξανά, με τους μετρητές να επανεκκινούν και στη συνέχεια να μετρούν τους παλμούς συχνότητας εισόδου για ένα δευτερόλεπτο, κατά τη διάρκεια του οποίου η οθόνη δίνει μια συνεχή ένδειξη της προηγούμενης μέτρησης κ.λπ.

Σχεδόν όλοι αυτοί οι δείκτες επτά τμημάτων προσθέτουν επίσης ένα όγδοο τμήμα - μια τελεία, έτσι ώστε να είναι δυνατή η εμφάνιση του ακέραιου και της κλασματικής τιμής οποιασδήποτε παραμέτρου

Έτσι, το κύκλωμα στο Σχήμα 13 παράγει μια σταθερή οθόνη που ενημερώνεται μία φορά το δευτερόλεπτο. Στην πράξη, η πραγματική περίοδος μέτρησης αυτής και του διαγράμματος στο Σχήμα 12 μπορεί να γίνει σε οποιαδήποτε δεκαετία με πολλαπλά ή μερικά δευτερόλεπτα, με την προϋπόθεση ότι η οθόνη εξόδου έχει κλιμακωθεί κατάλληλα.

Σημειώστε ότι ένας τριψήφιος μετρητής συχνοτήτων μπορεί να υποδεικνύει μέγιστες συχνότητες 999 Hz όταν χρησιμοποιείται βάση χρόνου ενός δευτερολέπτου, 99 kHz όταν χρησιμοποιείται βάση χρόνου 100 ms, 9 kHz όταν χρησιμοποιείται βάση χρόνου 10 ms και 999 kHz όταν χρησιμοποιείται Βάση χρόνου 1 ms.

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

Εν ολίγοις, ένας δείκτης επτά τμημάτων είναι λυχνίες LED που βρίσκονται σε σχέση μεταξύ τους με μια συγκεκριμένη σειρά και περικλείονται σε ένα περίβλημα.

Αυτή η μέθοδος μπορεί να γίνει κατανοητή με τη βοήθεια των σχημάτων 14 και 15. Αυτοί οι διακόπτες συνδέονται μεταξύ τους και παρέχουν την πραγματική δράση πολυπλέκτη και θα πρέπει να θεωρηθούν ως ηλεκτρονικοί διακόπτες υψηλής ταχύτητας που αλλάζουν επανειλημμένα μέσω των θέσεων 1, 2 και της ακολουθίας λειτουργιών του το κύκλωμα έχει ως εξής. Ας υποθέσουμε πρώτα ότι ο διακόπτης είναι στη θέση του.

Λίγες στιγμές αργότερα, ο διακόπτης μετακινείται στη θέση 3, με αποτέλεσμα η οθόνη 3 να εμφανίζει έναν αριθμό μετά από λίγα λεπτά, ολόκληρος ο κύκλος αρχίζει να επαναλαμβάνεται ξανά και ούτω καθεξής, προσθέτοντας άπειρο. Στην πράξη, περίπου 50 από αυτούς τους κύκλους συμβαίνουν κάθε δευτερόλεπτο, επομένως το μάτι δεν βλέπει τις οθόνες να ανάβουν και να σβήνουν χωριστά, αλλά τις αντιλαμβάνεται ως μια φαινομενικά σταθερή οθόνη που δείχνει τον αριθμό 327 ή κάποιον άλλο αριθμό που υπαγορεύεται από το τμήμα δεδομένων.

Εάν λάβουμε υπόψη το διάγραμμα ενός ενιαίου δείκτη επτά τμημάτων, μοιάζει με αυτό:

Όπως βλέπουμε, ο δείκτης επτά τμημάτων μπορεί να είναι είτε με κοινή άνοδος (CA), έτσι με κοινή κάθοδος (OC). Σε γενικές γραμμές, εάν έχουμε ένα επτά τμήμα με μια κοινή άνοδο (ΟΑ), τότε στο κύκλωμα θα πρέπει να κρεμάσουμε ένα "συν" σε αυτόν τον πείρο και αν με μια κοινή κάθοδο (OC), τότε ένα "μείον" ή γείωση. . Σε ποια ακίδα εφαρμόζουμε τάση, αυτό το LED θα ανάψει. Ας τα δείξουμε όλα αυτά στην πράξη.

Στους πρακτικούς πολυπλέκτης, το μέγιστο ρεύμα οθόνης είναι αρκετά υψηλό για να διασφαλιστεί επαρκής φωτεινότητα της οθόνης. Στο σχ. Το Σχήμα 15 δείχνει ένα παράδειγμα μιας βελτιωμένης μεθόδου πολυπλεξίας που εφαρμόζεται σε έναν τριψήφιο μετρητή συχνότητας. Αυτή η μέθοδος έχει δύο βασικά πλεονεκτήματα.

Εάν αυτοί οι ακροδέκτες είναι ενεργοί σε υψηλό επίπεδο, θα έχουν τα ακόλουθα χαρακτηριστικά. Σύκο. 18 και 19. Το σχήμα 18 δείχνει την τεχνική καταστολής κυματισμού που χρησιμοποιείται για την παροχή μηδενικής καταστολής σε μια τετραψήφια οθόνη που διαβάζει την ποσότητα.

Διαθέτουμε τις ακόλουθες ενδείξεις LED σε απόθεμα:

Όπως μπορούμε να δούμε, οι συσκευές επτά τμημάτων μπορεί να είναι μονής και πολλαπλών τμημάτων, δηλαδή δύο, τρεις, τέσσερις συσκευές επτά τμημάτων σε μία περίπτωση. Για να ελέγξουμε μια σύγχρονη συσκευή επτά τμημάτων, χρειαζόμαστε μόνο ένα πολύμετρο με λειτουργία δοκιμής διόδου. Αναζητούμε ένα γενικό συμπέρασμα - μπορεί να είναι είτε ΟΑ είτε ΟΚ - τυχαία και μετά εξετάζουμε την απόδοση όλων των τμημάτων του δείκτη. Ελέγχουμε το επτά τμήμα των τριών bit:

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

Όσο ενοχλητικό είναι, είναι και αρκετά χρήσιμο. Το άλλο σύρμα είναι η κάθοδος. Η κάθοδος συνδέεται με τη γείωση. Βασικά, θα καταλήξει σε αυτό. Για κοινή κάθοδο, εφαρμόζετε ρεύμα στις ακίδες που θέλετε να ενεργοποιήσετε. Πολυπλεξία. Υπάρχουν ακόμη και ελεγκτές οθόνης για αυτό, εάν δεν θέλετε να ανησυχείτε για την εναλλαγή του λογισμικού σας.

Ωχ, ένα τμήμα πήρε φωτιά, επομένως ελέγχουμε τα άλλα τμήματα με τον ίδιο τρόπο.

Μερικές φορές η τάση στο καρτούν δεν είναι αρκετή για να ελέγξετε τα τμήματα του δείκτη. Επομένως, παίρνουμε το τροφοδοτικό, το ρυθμίζουμε στα 5 Volts, συνδέουμε μια αντίσταση 1-2 kiloOhm σε έναν ακροδέκτη του τροφοδοτικού και αρχίζουμε να ελέγχουμε τη μονάδα επτά τμημάτων.

Έλεγχος οθόνης 7 τμημάτων

Έτσι, όταν έχετε ένα 4-ψήφιο, πολυπλεξικό 7 τμήμα, κοινή άνοδο. Αρχικά, πρέπει να ξέρουμε τι τύπο οθόνης έχουμε, καθώς υπάρχουν δύο πιθανά σχήματα: κοινή κάθοδος και κοινή άνοδος. Πράγματα που θα χρειαστείτε για αυτό το σεμινάριο. Αριστερά: Μια γραφική προβολή μιας οθόνης 7 τμημάτων που δείχνει μια γενική διάταξη για την εσωτερική καλωδίωση και τις θέσεις των καρφιτσών.

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

Γιατί χρειαζόμαστε μια αντίσταση; Όταν εφαρμόζεται τάση στο LED, αρχίζει να καταναλώνει απότομα ρεύμα όταν είναι ενεργοποιημένο. Επομένως, αυτή τη στιγμή μπορεί να καεί. Για να περιοριστεί το ρεύμα, μια αντίσταση συνδέεται σε σειρά με το LED. Μπορείτε να διαβάσετε περισσότερα σε αυτό το άρθρο.

Εξαγωνικό μέτρημα σε μία οθόνη 7 τμημάτων

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

Αυτό εξοικονομεί τις επαφές στο περίβλημα και στη συνέχεια στον έλεγχο. Κατά συνέπεια, αναφέρονται κοινές οθόνες ανόδου ή κοινής καθόδου. Η έξοδος που αντιστοιχεί σε ένα τμήμα ή ένα δεκαδικό σημείο εξάγεται καλύτερα από το φύλλο δεδομένων για εμφάνιση. Μια οθόνη 7 τμημάτων που έχει βαθμολογία για τα συνηθισμένα 10-20 mA θα εξακολουθεί να ανάβει, αν και αμυδρά. Αλλά αυτό δεν απαιτεί εκχώρηση επαφών. Η ακόλουθη κατανομή αυτού του τμήματος βασίζεται σε.

Με τον ίδιο τρόπο ελέγχουμε το τετραψήφιο επταψήφιο από ένα κινέζικο ραδιόφωνο

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

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

ΣΕ πρόγραμμα δοκιμήςΟι αριθμοί από το 0 έως το 9 εμφανίζονται διαδοχικά σε μια οθόνη 7 τμημάτων. Ο αριθμός εξόδου αποθηκεύεται σε έναν μετρητή καταχωρητή και αυξάνεται κατά 1 εντός του κύκλου. Εάν ο καταχωρητής φτάσει σε τιμή 10, επαναφέρεται ξανά στο 0. Μόλις αυξηθεί, εμφανίζεται ένας βρόχος αναμονής που διασφαλίζει ότι έχει περάσει ένα ορισμένο χρονικό διάστημα στην επόμενη έκδοση. Κανονικά δεν θα κάνατε τόσο μεγάλους κύκλους αναμονής, αλλά δεν πρόκειται για αναμονή, αλλά για έλεγχο μιας οθόνης 7 τμημάτων. Η χρήση χρονοδιακόπτη για αυτό είναι υπερβολική προσπάθεια.

Στον σύγχρονο κόσμο μας, οι συσκευές επτά τμημάτων έχουν ήδη αντικατασταθεί από ενδείξεις LCD που μπορούν να εμφανίζουν εντελώς διαφορετικές πληροφορίες

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

Το πραγματικό πρόβλημα, και επομένως το ενδιαφέρον μέρος αυτού του άρθρου, ωστόσο, εμφανίζεται αμέσως μετά τον βρόχο ετικέτας. Λάβετε υπόψη ότι η τιμή του μετρητή πρέπει να διπλασιαστεί. Αυτό σχετίζεται άμεσα με το γεγονός ότι η μνήμη flash είναι λέξη-σοφή και όχι byte-wise. Το δεύτερο παράδειγμα σε αυτήν τη σελίδα το κάνει διαφορετικά. Δείχνει πώς, μέσω μιας άλλης καταχώρισης πίνακα, η δημιουργία byte συμπλήρωσης μπορεί να αποτραπεί από το assembler. Είναι επίσης ενδιαφέρον ότι ο υπολογισμός απαιτεί έναν καταχωρητή που περιέχει την τιμή 0.

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

Σε αυτό το άρθρο θα μιλήσουμε για την ψηφιακή οθόνη.
Οι ενδείξεις LED επτά τμημάτων έχουν σχεδιαστεί για να εμφανίζουν αραβικούς αριθμούς από το 0 έως το 9 (Εικ. 1).

Τέτοιοι δείκτες είναι μονοψήφιοι, οι οποίοι εμφανίζουν μόνο έναν αριθμό, αλλά μπορεί να υπάρχουν περισσότερες ομάδες επτά τμημάτων συνδυασμένες σε ένα περίβλημα (πολυψήφιο). Σε αυτήν την περίπτωση, οι αριθμοί χωρίζονται με μια υποδιαστολή (Εικ. 2)

Δυστυχώς, υπάρχει πρόβλημα επειδή η οθόνη απαιτεί οκτώ θύρες - τέσσερις διαφημίσεις θα απαιτούσαν 32 θύρες. Υπάρχουν όμως διάφοροι τρόποι. Οι καταχωρητές Shift περιγράφονται ήδη σε άλλο σεμινάριο. Αυτό θα διευκόλυνε τη δημιουργία των απαιτούμενων 32 γραμμών εξόδου με μόνο τρεις ακίδες. Η αρχή ελέγχου δεν διαφέρει από την οδήγηση μιας ενιαίας οθόνης 7 τμημάτων, μόνο ο τρόπος με τον οποίο οι "ακίδες εξόδου" προσεγγίζουν τις τιμές τους είναι διαφορετικός και καθορίζεται από τη χρήση καταχωρητών μετατόπισης. Επί αυτή τη στιγμήΩστόσο, πρέπει να εμφανιστεί μια άλλη επιλογή ελέγχου.



Εικ.2.

Ο δείκτης ονομάζεται επτά τμήμα λόγω του γεγονότος ότι το εμφανιζόμενο σύμβολο αποτελείται από επτά ξεχωριστά τμήματα. Μέσα στο περίβλημα ενός τέτοιου δείκτη υπάρχουν LED, καθένα από τα οποία φωτίζει το δικό του τμήμα.
Είναι προβληματική η εμφάνιση γραμμάτων και άλλων συμβόλων σε τέτοιους δείκτες, επομένως χρησιμοποιούνται δείκτες 16 τμημάτων για αυτούς τους σκοπούς.

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

Μια πτυχή αυτού του τύπου ελέγχου είναι η συχνότητα της πολυπλεξίας, δηλαδή ο πλήρης κύκλος μετάβασης από τη μια οθόνη στην άλλη. Θα πρέπει να είναι αρκετά ψηλό ώστε να αποτρέπει το τρεμόπαιγμα της οθόνης. Το ανθρώπινο μάτι είναι νωθρό, σε έναν κινηματογράφο 24 καρέ ανά δευτερόλεπτο, με την τηλεόραση να είναι στην ασφαλή πλευρά ότι και οι ακίνητες εικόνες είναι ήρεμες, κάθε τμήμα πρέπει να ελέγχεται τουλάχιστον 100 Hz, επομένως συνδέεται τουλάχιστον κάθε 10 ms. Σε εξαιρετικές περιπτώσεις, ωστόσο, ακόμη και τα 100 Hz μπορεί να εξακολουθούν να τρεμοπαίζουν, όπως όταν η οθόνη κινείται γρήγορα ή όταν παρουσιάζονται παρεμβολές με τεχνητές πηγές φωτός που λειτουργούν με εναλλασσόμενο ρεύμα.

Οι ενδείξεις LED διατίθενται σε δύο τύπους.
Στην πρώτη από αυτές όλες οι κάθοδοι, δηλ. Οι αρνητικοί ακροδέκτες όλων των LED συνδυάζονται μεταξύ τους και ένας αντίστοιχος ακροδέκτης διατίθεται για αυτούς στη θήκη.
Οι υπόλοιποι ακροδέκτες του δείκτη συνδέονται στην άνοδο κάθε LED (Εικ. 3, α). Αυτό το κύκλωμα ονομάζεται «κοινό κύκλωμα καθόδου».
Υπάρχουν επίσης δείκτες στους οποίους τα LED κάθε τμήματος συνδέονται σύμφωνα με ένα κύκλωμα με κοινή άνοδο (Εικ. 3, β).



Εικ.3.

Κάθε τμήμα χαρακτηρίζεται από ένα αντίστοιχο γράμμα. Το σχήμα 4 δείχνει τη θέση τους.

Εικ.4.

Για παράδειγμα, εξετάστε μια διψήφια ένδειξη επτά τμημάτων GND-5622As-21 με κόκκινο χρώμα. Παρεμπιπτόντως, υπάρχουν και άλλα χρώματα, ανάλογα με το μοντέλο.
Χρησιμοποιώντας μια μπαταρία τριών βολτ, μπορείτε να ενεργοποιήσετε τμήματα και αν συνδυάσετε μια ομάδα ακίδων σε μια δέσμη και τροφοδοτήσετε με ρεύμα, μπορείτε ακόμη και να εμφανίσετε αριθμούς. Αλλά αυτή η μέθοδος δεν είναι βολική, επομένως χρησιμοποιούνται καταχωρητές μετατόπισης και αποκωδικοποιητές για τον έλεγχο των δεικτών επτά τμημάτων. Επίσης, συχνά, οι ακίδες ένδειξης συνδέονται απευθείας στις εξόδους του μικροελεγκτή, αλλά μόνο όταν χρησιμοποιούνται ενδείξεις με χαμηλή κατανάλωση ρεύματος. Το Σχήμα 5 δείχνει ένα θραύσμα ενός κυκλώματος που χρησιμοποιεί το PIC16F876A.



Εικ.5.

Για τον έλεγχο της ένδειξης επτά τμημάτων, χρησιμοποιείται συχνά ο αποκωδικοποιητής K176ID2.
Αυτό το τσιπ είναι ικανό να μετατρέπει δυαδικό κώδικα που αποτελείται από μηδενικά και ένα σε δεκαδικά ψηφία από το 0 έως το 9.

Για να καταλάβετε πώς λειτουργούν όλα, πρέπει να συναρμολογήσετε ένα απλό κύκλωμα (Εικ. 6). Ο αποκωδικοποιητής K176ID2 βρίσκεται σε συσκευασία DIP16. Διαθέτει 7 ακίδες εξόδου (ακίδες 9 - 15), το καθένα αφιερωμένο σε ένα συγκεκριμένο τμήμα. Ο έλεγχος σημείου δεν παρέχεται εδώ. Το μικροκύκλωμα διαθέτει επίσης 4 εισόδους (ακίδες 2 - 5) για την παροχή δυαδικού κώδικα. Η 16η και η 8η ακίδα τροφοδοτούνται με ισχύ συν και μείον, αντίστοιχα. Τα υπόλοιπα τρία συμπεράσματα είναι βοηθητικά, θα μιλήσω για αυτά λίγο αργότερα.



Εικ.6.

DD1 - K176ID2
R1 - R4 (10 - 100 kOhm)
HG1 - GND-5622As-21

Υπάρχουν 4 διακόπτες εναλλαγής στο κύκλωμα (είναι δυνατά οποιαδήποτε κουμπιά), όταν τα πατάτε, ένας λογικός τροφοδοτείται στις εισόδους του αποκωδικοποιητή από το τροφοδοτικό plus. Παρεμπιπτόντως, το ίδιο το μικροκύκλωμα τροφοδοτείται με τάση 3 έως 15 Volt. Σε αυτό το παράδειγμα, ολόκληρο το κύκλωμα τροφοδοτείται από τροφοδοτικό 9 βολτ.

Υπάρχουν επίσης 4 αντιστάσεις στο κύκλωμα. Αυτές είναι οι λεγόμενες αντιστάσεις έλξης. Απαιτούνται για να διασφαλιστεί ότι η λογική είσοδος είναι χαμηλή όταν δεν υπάρχει σήμα. Χωρίς αυτά, οι ενδείξεις στην ένδειξη ενδέχεται να μην εμφανίζονται σωστά. Συνιστάται η χρήση του ίδιουαντίσταση από 10 kOhm έως 100 kOhm.

Στο διάγραμμα, οι ακίδες 2 και 7 της ένδειξης HG1 δεν είναι συνδεδεμένες. Εάν συνδέσετε τον ακροδέκτη DP στο μείον τροφοδοτικό, η υποδιαστολή θα ανάψει. Και αν εφαρμόσετε ένα μείον στην έξοδο Dig.2, τότε η δεύτερη ομάδα τμημάτων θα ανάψει επίσης (θα δείχνει το ίδιο σύμβολο).

Οι είσοδοι του αποκωδικοποιητή έχουν σχεδιαστεί με τέτοιο τρόπο ώστε για την εμφάνιση των αριθμών 1, 2, 4 και 8 στην ένδειξη, χρειάζεται μόνο να πατήσετε ένα κουμπί (η διάταξη έχει διακόπτες εναλλαγής που αντιστοιχούν στις εισόδους D0, D1, D2 και D3). Εάν δεν υπάρχει σήμα, εμφανίζεται ο αριθμός μηδέν. Όταν εφαρμόζεται σήμα στην είσοδο D0, εμφανίζεται ο αριθμός 1. Και ούτω καθεξής. Για να εμφανίσετε άλλους αριθμούς, πρέπει να πατήσετε έναν συνδυασμό εναλλαγής. Ο Πίνακας 1 θα μας πει ποια πρέπει να πατήσουμε.


Τραπέζι 1.

Για να εμφανίσετε τον αριθμό "3" πρέπει να εφαρμόσετε έναν λογικό αριθμό στην είσοδο D0 και D1. Εάν εφαρμόσετε ένα σήμα στα D0 και D2, θα εμφανιστεί ο αριθμός "5".(Εικ. 6).



Εικ.6.

Εδώ είναι ένας εκτεταμένος πίνακας στον οποίο βλέπουμε όχι μόνο το αναμενόμενο σχήμα, αλλά και εκείνα τα τμήματα (a - g) που θα συνθέσουν αυτό το σχήμα.



Πίνακας 2.

Η 1η, η 6η και η 7η ακίδα του μικροκυκλώματος είναι βοηθητικές (S, M, K, αντίστοιχα).

Στο διάγραμμα (Εικ. 6), η 6η ακίδα "M" είναι γειωμένη (στο τροφοδοτικό μείον) και υπάρχει θετική τάση στην έξοδο του μικροκυκλώματος για εργασία με δείκτη με κοινή κάθοδο. Εάν χρησιμοποιείται δείκτης με κοινή άνοδο, τότε θα πρέπει να εφαρμοστεί στην 6η ακίδα.

Εάν εφαρμοστεί μια λογική τιμή στην 7η ακίδα "K", τότε το σημάδι ένδειξης σβήνει, το μηδέν επιτρέπει την ένδειξη. Στο σχήμα αυτό το συμπέρασμαγειωμένο (στο τροφοδοτικό μείον).

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

Ένα ενδιαφέρον πράγμα που πρέπει να σημειωθεί είναι ότι γνωρίζουμε ότι ο διακόπτης εναλλαγής D0 ενεργοποιεί τον αριθμό "1" και ο διακόπτης εναλλαγής D1 ενεργοποιεί τον αριθμό "2". Εάν πατήσετε και τους δύο διακόπτες, θα εμφανιστεί ο αριθμός 3 (1+2=3). Και σε άλλες περιπτώσεις, η ένδειξη εμφανίζει το άθροισμα των αριθμών που συνθέτουν αυτόν τον συνδυασμό. Καταλήγουμε στο συμπέρασμα ότι οι είσοδοι του αποκωδικοποιητή είναι διατεταγμένες προσεκτικά και έχουν πολύ λογικούς συνδυασμούς.

Μπορείτε επίσης να παρακολουθήσετε το βίντεο για αυτό το άρθρο.

Ας συνδέσουμε μια ένδειξη LED επτά τμημάτων στην πλακέτα Arduino και ας μάθουμε πώς να την ελέγχουμε χρησιμοποιώντας τη βιβλιοθήκη Led4Digits.h.

Το προηγούμενο μάθημα περιέγραψε λεπτομερώς τους μικροελεγκτές. Ας συνδέσουμε μια τέτοια ένδειξη στην πλακέτα Arduino.

Το διάγραμμα για τη σύνδεση της ένδειξης στην πλακέτα Arduino μοιάζει με αυτό.

Το συναρμολόγησα σε μια πλακέτα κυκλώματος.

Για τη διαχείριση των δεικτών, έγραψα τη βιβλιοθήκη Led4Digits.h:

Και πληρώστε.

Η βιβλιοθήκη σάς επιτρέπει να διαχειρίζεστε δείκτες επτά τμημάτων:

  • έως τέσσερα ψηφία σε μέγεθος.
  • με οποιεσδήποτε παραλλαγές πολικών παλμών ελέγχου (όλες).
  • λειτουργεί σε παράλληλη διαδικασία.
  • σας επιτρέπει να εμφανίσετε στην ένδειξη:
    • τμήματα κάθε κατηγορίας·
    • το ψηφίο κάθε ψηφίου·
    • ακέραιος 0 ... 9999;
  • Για την έξοδο ενός ακέραιου αριθμού, μπορεί να καθοριστεί ο αριθμός των ψηφίων.
  • Υπάρχει μια λειτουργία για την καταστολή ασήμαντων ψηφίων.

Μπορείτε να κατεβάσετε τη βιβλιοθήκη Led4Digits.h από αυτόν τον σύνδεσμο:

Και πληρώστε. Μόνο 40 τρίψιμο. ανά μήνα για πρόσβαση σε όλους τους πόρους του ιστότοπου!

Ο τρόπος εγκατάστασης είναι γραμμένος στο .

Δεν θα παράσχω τα κείμενα πηγής. Μπορείτε να τα αναζητήσετε στα αρχεία της βιβλιοθήκης. Όπως πάντα, υπάρχουν πολλά σχόλια εκεί. Θα περιγράψω αναλυτικά, με παραδείγματα, τον τρόπο χρήσης της βιβλιοθήκης.

Βιβλιοθήκη ελέγχου LED για Arduino Led4Digits.

Εδώ είναι η περιγραφή της τάξης. Παρείχα μόνο δημόσιες μεθόδους και ιδιότητες.

κατηγορία Led4Digits (
δημόσιο:
ψηφίο byte? // Κώδικες ελέγχου τμήματος bit
void regen(); // αναγέννηση, η μέθοδος πρέπει να καλείται τακτικά
void tetradToSegCod(byte dig, byte tetrad); // μετατροπή κωδικών tetrad σε τμήμα
boolean print (ανυπόγραφη τιμή int, byte digitNum, byte κενό); // ακέραιος έξοδος



} ;

Κατασκευαστής.

Led4Digits (τύπος byteLed, byte ψηφίοPin0, byte ψηφίοPin1, byte ψηφίοPin2, byte ψηφίοPin3,
byte segPinA, byte segPinB, byte segPinC, byte segPinD,
byte segPinE, byte segPinF, byte segPinG, byte segPinH);

τύπουLedΡυθμίζει τις πολικότητες παλμών ελέγχου για σήματα επιλογής bit και τμήματος. Υποστηρίζει οποιαδήποτε σχήματα σύνδεσης ().

τύπουLed Επιλογή κατηγορίας Επιλογή τμήματος Τύπος κυκλώματος
0 -_- -_- Κοινή άνοδος με πλήκτρα επιλογής εκφόρτισης
1 _-_ -_- Κοινή άνοδος
2 -_- _-_ Κοινή κάθοδος
3 _-_ _-_ Κοινή κάθοδος με πλήκτρα επιλογής εκφόρτισης

ψηφίοPin0...digitPin3– έξοδοι για επιλογή ψηφίων. Εάν ψηφίοPin = 255, τότε το ψηφίο είναι απενεργοποιημένο. Αυτό σας επιτρέπει να συνδέσετε δείκτες με λιγότερα ψηφία. ψηφίοPin0 – χαμηλό (δεξιό) ψηφίο.

segPinA...segPinH– Έξοδοι ελέγχου τμήματος.

Για παράδειγμα,

σημαίνει: δείκτης τύπου 1; έξοδοι εκφόρτισης 5,4,3,2; έξοδοι τμημάτων 6,7,8,9,10,11,12,13.

void regen() μέθοδος

Η μέθοδος πρέπει να καλείται τακτικά σε μια παράλληλη διαδικασία. Αναγεννά την εικόνα στις ενδείξεις. Ο χρόνος του κύκλου αναγέννησης είναι ίσος με την περίοδο κλήσης της μεθόδου πολλαπλασιασμένη με τον αριθμό των bit.

Για παράδειγμα,

// χειριστής διακοπής 2 ms
void timerInterrupt() (
disp.regen(); // αναγέννηση δείκτη
}

Πίνακας ψηφίων byte

Περιέχει την κατάσταση των τμημάτων. Το ψηφίο είναι το λιγότερο σημαντικό bit, το λιγότερο σημαντικό bit του ψηφίου είναι το τμήμα "A" του λιγότερο σημαντικό bit. Μια κατάσταση bit 1 σημαίνει ότι το τμήμα είναι αναμμένο.

Για παράδειγμα,

ψηφίο = B0000101;

σημαίνει ότι στο δεύτερο ψηφίο, τα τμήματα "A" και "C" είναι αναμμένα.

Ένα παράδειγμα προγράμματος που φωτίζει διαδοχικά όλα τα τμήματα κάθε ψηφίου.

// τρέχοντα τμήματα
#περιλαμβάνω
#περιλαμβάνω

//
Led4Digits disp(1, 5,4,3,2, 6,7,8,9,10,11,12,13);

void setup() (
διακοπή χρονοδιακόπτη 2 ms
MsTimer2::start(); // ενεργοποίηση διακοπής
}

void loop() (
για (int i = 0; i< 32; i++) {
αν (i == 0) disp.digit= 1;
αλλιώς εάν (i == 8) disp.digit= 1;
αλλιώς αν (i == 16) disp.digit= 1;
αλλιώς αν (i == 24) disp.digit= 1;
αλλού(
disp.digit = disp.ψηφίο<< 1;
disp.digit = disp.ψηφίο<< 1;
disp.digit = disp.ψηφίο<< 1;
disp.digit = disp.ψηφίο<< 1;
}
καθυστέρηση(250);
}
}

//χειριστής διακοπής 2 ms
void timerInterrupt() (
disp.regen(); // αναγέννηση δείκτη
}

Στον πίνακα ψηφίων, το 1 μετατοπίζεται και οι ενδείξεις το εμφανίζουν.

Μέθοδος void tetradToSegCod (byte dig, byte tetrad)

Η μέθοδος σάς επιτρέπει να εμφανίζετε αριθμούς και γράμματα δεκαεξαδικού κώδικα σε μεμονωμένα ψηφία. Έχει επιχειρήματα:

  • dig – ψηφίος αριθμός 0 ... 3;
  • τετράδος – δεκαδικός κωδικός χαρακτήρων. Ο κωδικός 0 θα εμφανίσει τον αριθμό "0", τον κωδικό 1 - τον αριθμό "1", τον κωδικό 14 - το γράμμα "E".

Για παράδειγμα,

tetrad(2, 7);

θα εμφανίσει τον αριθμό "7" στο τρίτο ψηφίο.

Ένα παράδειγμα προγράμματος που αλλάζει χαρακτήρες σε κάθε ψηφίο με τη σειρά.

// αριθμοί ένας προς έναν
#περιλαμβάνω
#περιλαμβάνω

// δείκτης τύπου 1; έξοδοι εκφόρτισης 5,4,3,2; έξοδοι τμήματος 6,7,8,9,10,11,12,13
Led4Digits disp(1, 5,4,3,2, 6,7,8,9,10,11,12,13);

void setup() (
MsTimer2::set(2, timerInterrupt); // διακοπή χρονοδιακόπτη 2 ms
MsTimer2::start(); // ενεργοποίηση διακοπής
}

void loop() (
για (int i = 0; i< 64; i++) {
disp.tetradToSegCod(i>>4, i);
καθυστέρηση(250);
}
}

// χειριστής διακοπής 2 ms
void timerInterrupt() (
disp.regen(); // αναγέννηση δείκτη
}

Μέθοδος boolean print (ανυπόγραφη τιμή int, byte digitNum, byte κενό)

Η μέθοδος εμφανίζει έναν ακέραιο αριθμό στους δείκτες. Μετατρέπει τον δυαδικό αριθμό σε BCD για κάθε ψηφίο. Έχει επιχειρήματα:

  • τιμή – ο αριθμός που εμφανίζεται στην ένδειξη.
  • digitNum – αριθμός ψηφίων για τον αριθμό. Αυτό δεν πρέπει να συγχέεται με τον αριθμό των ψηφίων του δείκτη. Μπορεί να θέλετε να εμφανίσετε έναν αριθμό σε 2 ψηφία και να εμφανίσετε χαρακτήρες στα άλλα δύο χρησιμοποιώντας ψηφίο.
  • κενό - ένα σημάδι απόσβεσης ασήμαντων ψηφίων. blank=0 σημαίνει ότι ο αριθμός πρέπει να εμφανίζεται με όλα τα μηδενικά. Ο αριθμός "7" θα μοιάζει με "0007". Εάν το κενό είναι διαφορετικό από το 0, τα ασήμαντα μηδενικά θα καταργηθούν.

Εάν η τιμή του αριθμού υπερβαίνει τον επιτρεπόμενο αριθμό για τον επιλεγμένο αριθμό ψηφίων (digitNum), τότε η συνάρτηση θα εμφανίσει "---" στην ένδειξη και θα επιστρέψει το false.

Ένα παράδειγμα προγράμματος εξόδου αριθμών.

// αριθμός εξόδου
#περιλαμβάνω
#περιλαμβάνω

// δείκτης τύπου 1; έξοδοι εκφόρτισης 5,4,3,2; έξοδοι τμήματος 6,7,8,9,10,11,12,13
Led4Digits disp(1, 5,4,3,2, 6,7,8,9,10,11,12,13);

void setup() (
MsTimer2::set(2, timerInterrupt); // διακοπή χρονοδιακόπτη 2 ms
MsTimer2::start(); // ενεργοποίηση διακοπής
}

void loop() (
για (int i = 0; i< 12000; i++) {
disp.print(i, 4, 1);
καθυστέρηση(50);
}
}

// χειριστής διακοπής 2 ms
void timerInterrupt() (
disp.regen(); // αναγέννηση δείκτη
}

Οι δύο τελευταίες μέθοδοι δεν αλλάζουν την κατάσταση του τμήματος "H" - την υποδιαστολή. Για να αλλάξετε την κατάσταση ενός σημείου, μπορείτε να χρησιμοποιήσετε τις εντολές:

ψηφίο |= 0x80; // ανάψτε την υποδιαστολή
ψηφίο &= 0x7f; // σβήστε την υποδιαστολή

Έξοδος σε δείκτες αρνητικών αριθμών (int).

Οι αρνητικοί αριθμοί μπορούν να εξάγονται ως εξής:

  • Ελέγξτε το σύμβολο του αριθμού.
  • Εάν ο αριθμός είναι αρνητικός, τότε εκτυπώστε ένα σύμβολο μείον στο πιο σημαντικό ψηφίο και αλλάξτε το πρόσημο του αριθμού σε θετικό στη συνάρτηση print().
  • Εάν ο αριθμός είναι θετικός, τότε απενεργοποιήστε το bit πρόσημο και εκτυπώστε τον αριθμό χρησιμοποιώντας τη συνάρτηση print().

Εδώ είναι ένα πρόγραμμα που επιδεικνύει αυτή τη μέθοδο. Βγάζει αριθμούς από -999 έως 999.

// εξαγωγή αρνητικών αριθμών
#περιλαμβάνω
#περιλαμβάνω

// δείκτης τύπου 1; έξοδοι εκφόρτισης 5,4,3,2; έξοδοι τμήματος 6,7,8,9,10,11,12,13
Led4Digits disp(1, 5,4,3,2, 6,7,8,9,10,11,12,13);

void setup() (
MsTimer2::set(2, timerInterrupt); // διακοπή χρονοδιακόπτη 2 ms
MsTimer2::start(); // ενεργοποίηση διακοπής
}

void loop() (

για (int i = -999; i< 1000; i++) {

αν εγώ< 0) {
// ο αριθμός είναι αρνητικός
disp.digit= B01000000; // σημάδι -
disp.print(i * -1, 3, 1);
}
αλλού(
disp.digit= B00000000; // καθαρίστε το σημάδι
disp.print(i, 3, 1);
}

καθυστέρηση(50);
}
}

// χειριστής διακοπής 2 ms
void timerInterrupt() (
disp.regen(); // αναγέννηση δείκτη
}

Έξοδος σε δείκτες κλασματικών αριθμών, μορφή float.

Υπάρχουν πολλοί τρόποι εμφάνισης αριθμών κινητής υποδιαστολής (floats) σε δείκτες χρησιμοποιώντας τυπικές συναρτήσεις γλώσσας C. Αυτή είναι, πρώτα απ 'όλα, η συνάρτηση sprint(). Λειτουργεί πολύ αργά, απαιτεί πρόσθετες μετατροπές κωδικών χαρακτήρων σε δυαδικούς δεκαδικούς κωδικούς, πρέπει να εξαγάγετε ένα σημείο από μια συμβολοσειρά. Τα ίδια προβλήματα με άλλες λειτουργίες.

Χρησιμοποιώ μια διαφορετική μέθοδο για την εμφάνιση των τιμών των float μεταβλητών σε δείκτες. Η μέθοδος είναι απλή, αξιόπιστη, γρήγορη. Μειώνεται στις ακόλουθες λειτουργίες:

  • Ο αριθμός κινητής υποδιαστολής πολλαπλασιάζεται επί 10 στην ισχύ που αντιστοιχεί στον απαιτούμενο αριθμό δεκαδικών ψηφίων. Εάν πρέπει να εμφανίσετε 1 δεκαδικό ψηφίο στους δείκτες, πολλαπλασιάστε με 10, εάν 2, στη συνέχεια πολλαπλασιάστε με 100, 3 δεκαδικά ψηφία με 1000.
  • Στη συνέχεια, ο αριθμός κινητής υποδιαστολής μετατρέπεται ρητά σε ακέραιο (int) και εμφανίζεται στους δείκτες χρησιμοποιώντας τη συνάρτηση print().
  • Στο απαιτούμενο ψηφίο τοποθετείται μια τελεία.

Για παράδειγμα, οι ακόλουθες γραμμές θα παράγουν μια μεταβλητή float με δύο δεκαδικά ψηφία στα LED επτά τμημάτων.

float x = 2,12345;

disp.digit |= 0x80; //

Πολλαπλασιάζουμε τον αριθμό με το 100 και βάζοντας μια τελεία στο τρίτο ψηφίο, διαιρούμε το αποτέλεσμα με το 100.

Εδώ είναι ένα πρόγραμμα που εμφανίζει αριθμούς κινητής υποδιαστολής από 0,00 έως 99,99 στις ενδείξεις.

// έξοδο κινητής υποδιαστολής
#περιλαμβάνω
#περιλαμβάνω

// δείκτης τύπου 1; έξοδοι εκφόρτισης 5,4,3,2; έξοδοι τμήματος 6,7,8,9,10,11,12,13
Led4Digits disp(1, 5,4,3,2, 6,7,8,9,10,11,12,13);

void setup() (
MsTimer2::set(2, timerInterrupt); // διακοπή χρονοδιακόπτη 2 ms
MsTimer2::start(); // ενεργοποίηση διακοπής
}

void loop() (
float x = 0;

για (int i = 0; i< 10000; i++) {
x += 0,01;

disp.print((int)(x * 100.), 4, 1);
disp.digit |= 0x80; // ανάβει το σημείο τρίτου επιπέδου

καθυστέρηση(50);
}
}

//χειριστής διακοπής 2 ms
void timerInterrupt() (
disp.regen(); // αναγέννηση δείκτη
}

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

Υπάρχουν βιβλιοθήκες για εργασία με οθόνες LED μέσω ενός καταχωρητή αλλαγής ταχυτήτων. Κάποιος μου έγραψε ότι βρήκαν μια βιβλιοθήκη που λειτουργεί με οθόνη LED απευθείας συνδεδεμένη με την πλακέτα Arduino. Αλλά όταν το χρησιμοποιείτε, τα ψηφία της ένδειξης ανάβουν ανομοιόμορφα και κλείνουν το μάτι.

Σε αντίθεση με τα ανάλογα της, η βιβλιοθήκη Led4Digits.h:

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

Στο επόμενο μάθημα, θα συνδέσουμε ταυτόχρονα μια ένδειξη LED και μια μήτρα κουμπιών στην πλακέτα Arduino. Ας γράψουμε μια βιβλιοθήκη για ένα τέτοιο σχέδιο.

Κατηγορία: . Μπορείτε να το προσθέσετε σελιδοδείκτη.


Μπλουζα