![Πώς να διασυνδέσετε μια MAX7219 οδηγούμενη μήτρα LED 8x8 με μικροελεγκτή ATtiny85: 7 βήματα Πώς να διασυνδέσετε μια MAX7219 οδηγούμενη μήτρα LED 8x8 με μικροελεγκτή ATtiny85: 7 βήματα](https://i.howwhatproduce.com/images/002/image-3944-19-j.webp)
Πίνακας περιεχομένων:
2025 Συγγραφέας: John Day | [email protected]. Τελευταία τροποποίηση: 2025-01-23 14:39
![Τρόπος διασύνδεσης MAX7219 οδηγούμενης μήτρας LED 8x8 με μικροελεγκτή ATtiny85 Τρόπος διασύνδεσης MAX7219 οδηγούμενης μήτρας LED 8x8 με μικροελεγκτή ATtiny85](https://i.howwhatproduce.com/images/002/image-3944-20-j.webp)
Ο ελεγκτής MAX7219 κατασκευάζεται από το Maxim Integrated είναι συμπαγές, σειριακό πρόγραμμα οδήγησης κοινής καθόδου σειριακής εισόδου/εξόδου που θα μπορούσε να διασυνδέσει μικροελεγκτές με 64 μεμονωμένα LED, αριθμητικές οθόνες LED 7 τμημάτων έως 8 ψηφίων, οθόνες γραμμών κλπ. -το τσιπ είναι ένας αποκωδικοποιητής κωδικού B-BCD, κύκλωμα πολλαπλής σάρωσης, προγράμματα οδήγησης τμημάτων και ψηφίων και μια στατική μνήμη RAM 8 × 8 που αποθηκεύει κάθε ψηφίο.
Τα δομοστοιχεία MAX7219 είναι πολύ βολικά για χρήση με μικροελεγκτές όπως το ATtiny85 ή, στην περίπτωσή μας, το Tinusaur Board.
Βήμα 1: Το υλικό
![Το Υλικό Το Υλικό](https://i.howwhatproduce.com/images/002/image-3944-21-j.webp)
![Το Υλικό Το Υλικό](https://i.howwhatproduce.com/images/002/image-3944-22-j.webp)
Οι μονάδες MAX7219 συνήθως μοιάζουν με αυτό. Έχουν ένα δίαυλο εισόδου στη μία πλευρά και ένα δίαυλο εξόδου στην άλλη. Αυτό σας επιτρέπει να μαργαρίσετε αλυσίδα 2 ή περισσότερες ενότητες, δηλαδή η μία μετά την άλλη, προκειμένου να δημιουργήσετε πιο περίπλοκες ρυθμίσεις.
Οι μονάδες που χρησιμοποιούμε είναι ικανές να συνδεθούν σε μια αλυσίδα χρησιμοποιώντας 5 μικρά άλματα. Δείτε την παρακάτω εικόνα.
Βήμα 2: Pinout και σήματα
Η μονάδα MAX7219 διαθέτει 5 ακίδες:
- VCC - ισχύς (+)
- GND-γείωση (-)
- DIN - Εισαγωγή δεδομένων
- CS - Επιλογή τσιπ
- CLK - Ρολόι
Αυτό σημαίνει ότι χρειαζόμαστε 3 ακίδες στην πλευρά του μικροελεγκτή ATtiny85 για τον έλεγχο της μονάδας. Αυτά θα είναι:
- PB0 - συνδεδεμένο στο CLK
- PB1 - συνδεδεμένο στο CS
- PB2 - συνδεδεμένο στο DIN
Αυτό αρκεί για να συνδεθείτε στη μονάδα MAX7219 και να την προγραμματίσετε.
Βήμα 3: Το πρωτόκολλο
![Το Πρωτόκολλο Το Πρωτόκολλο](https://i.howwhatproduce.com/images/002/image-3944-23-j.webp)
Η επικοινωνία με το MAX7219 είναι σχετικά εύκολη - χρησιμοποιεί ένα σύγχρονο πρωτόκολλο που σημαίνει ότι για κάθε bit δεδομένων που στέλνουμε υπάρχει ένας κύκλος ρολογιού που υποδηλώνει την παρουσία αυτού του bit δεδομένων.
Με άλλα λόγια, στέλνουμε 2 παράλληλες ακολουθίες σε bits - μία για το ρολόι και μια άλλη για τα δεδομένα. Αυτό κάνει το λογισμικό.
Βήμα 4: Το Λογισμικό
![Το λογισμικό Το λογισμικό](https://i.howwhatproduce.com/images/002/image-3944-24-j.webp)
Ο τρόπος λειτουργίας αυτής της μονάδας MAX7219 είναι ο εξής:
- Γράφουμε byte στον εσωτερικό του μητρώο.
- Το MAX7219 ερμηνεύει τα δεδομένα.
- Το MAX7219 ελέγχει τις λυχνίες LED στη μήτρα.
Αυτό σημαίνει επίσης ότι δεν χρειάζεται να κάνουμε κύκλους μέσω της συστοιχίας των LED συνεχώς για να τις ανάβουμε - ο ελεγκτής MAX7219 φροντίζει γι 'αυτό. Θα μπορούσε επίσης να διαχειριστεί την ένταση των LED.
Έτσι, για να χρησιμοποιήσουμε τις μονάδες MAX7219 με έναν βολικό τρόπο χρειαζόμαστε μια βιβλιοθήκη λειτουργιών για να εξυπηρετήσουμε αυτόν τον σκοπό.
Πρώτον, χρειαζόμαστε κάποιες βασικές λειτουργίες για να γράψουμε στους καταχωρητές MAX7219.
- Γράφοντας ένα byte στο MAX7219.
- Γράφοντας μια λέξη (2 byte) στο MAX7219.
Η συνάρτηση που γράφει ένα byte στον ελεγκτή μοιάζει με αυτήν:
void max7219_byte (uint8_t data) {for (uint8_t i = 8; i> = 1; i--) {PORTB & = ~ (1 << MAX7219_CLK); // Ορίστε το CLK στο LOW if (data & 0x80) // Mask το MSB των δεδομένων PORTB | = (1 << MAX7219_DIN); // Ορίστε το DIN στο HIGH else PORTB & = ~ (1 << MAX7219_DIN]; // Ορίστε το DIN στο LOW PORTB | = (1 << MAX7219_CLK]; // Ορίστε το CLK σε HIGH δεδομένα << = 1; // Αλλαγή προς τα αριστερά}}
Τώρα που μπορούμε να στείλουμε byte στο MAX7219 μπορούμε να ξεκινήσουμε την αποστολή εντολών. Αυτό γίνεται στέλνοντας 2 bye - το 1ο για τη διεύθυνση του εσωτερικού μητρώου και το 2ο για τα δεδομένα που θα θέλαμε να στείλουμε.
Υπάρχουν περισσότερες από δώδεκα καταχωρητές στον ελεγκτή MAX7219.
Η αποστολή μιας εντολής ή μιας λέξης είναι βασικά η αποστολή 2 συνεχόμενων byte. Η λειτουργία που εφαρμόζεται είναι πολύ απλή.
void max7219_word (διεύθυνση uint8_t, δεδομένα uint8_t) {PORTB & = ~ (1 << MAX7219_CS]; // Ορίστε το CS σε LOW max7219_byte (διεύθυνση); // Αποστολή της διεύθυνσης max7219_byte (δεδομένα). // Αποστολή των δεδομένων PORTB | = (1 << MAX7219_CS]; // Ορίστε το CS σε HIGH PORTB & = ~ (1 << MAX7219_CLK]; // Ορισμός CLK σε LOW}
Είναι σημαντικό να σημειωθεί εδώ η γραμμή όπου επαναφέρουμε το σήμα CS στο HIGH - αυτό σηματοδοτεί το τέλος της ακολουθίας - στην περίπτωση αυτή, το τέλος της εντολής. Μια παρόμοια τεχνική χρησιμοποιείται όταν ελέγχουμε περισσότερους από έναν πίνακες συνδεδεμένους σε μια αλυσίδα. Το επόμενο βήμα, πριν ξεκινήσουμε την ενεργοποίηση και απενεργοποίηση των LED, είναι η προετοιμασία του ελεγκτή MAX7219. Αυτό γίνεται γράφοντας ορισμένες τιμές σε ορισμένους καταχωρητές. Για ευκολία, ενώ την κωδικοποιούμε θα μπορούσαμε να βάλουμε την ακολουθία αρχικοποίησης σε έναν πίνακα.
uint8_t initseq = {0x09, 0x00, // Decode-Mode Register, 00 = No decode 0x0a, 0x01, // Intensity Register, 0x00.. 0x0f 0x0b, 0x07, // Scan-Limit Register, 0x07 για εμφάνιση όλων των γραμμών 0x0c, 0x01, // Μητρώο τερματισμού λειτουργίας, 0x01 = Κανονική λειτουργία 0x0f, 0x00, // Μητρώο δοκιμής εμφάνισης, 0x00 = Κανονική λειτουργία};
Απλώς πρέπει να στείλουμε τις 5 παραπάνω εντολές σε μια σειρά ως ζεύγη διευθύνσεων/δεδομένων. Επόμενο βήμα - φωτίζοντας μια σειρά LED.
Αυτό είναι πολύ απλό - γράφουμε μόνο μία εντολή όπου το 1 byte είναι η διεύθυνση (από 0 έως 7) και το 2 byte είναι τα 8 bits που αντιπροσωπεύουν τα 8 LED στη σειρά.
void max7219_row (uint8_t διεύθυνση, uint8_t δεδομένα) {if (διεύθυνση> = 1 && διεύθυνση <= 8) max7219_word (διεύθυνση, δεδομένα); }
Είναι σημαντικό να σημειωθεί ότι αυτό θα λειτουργήσει μόνο για 1 μήτρα. Αν συνδέσουμε περισσότερους πίνακες σε μια αλυσίδα, θα εμφανίζουν όλα τα ίδια δεδομένα. Ο λόγος για αυτό είναι ότι μετά την αποστολή της εντολής επαναφέρουμε το σήμα CS στο HIGH, το οποίο κάνει όλους τους ελεγκτές MAX7219 στην αλυσίδα να ασφαλίσουν και να δείξουν ό, τι ήταν η τελευταία εντολή.
Συνιστάται:
Πώς να γκρεμίσετε μια ψηφιακή δαγκάνα και πώς λειτουργεί μια ψηφιακή δαγκάνα: 4 βήματα
![Πώς να γκρεμίσετε μια ψηφιακή δαγκάνα και πώς λειτουργεί μια ψηφιακή δαγκάνα: 4 βήματα Πώς να γκρεμίσετε μια ψηφιακή δαγκάνα και πώς λειτουργεί μια ψηφιακή δαγκάνα: 4 βήματα](https://i.howwhatproduce.com/images/006/image-15293-j.webp)
Πώς να γκρεμίσετε μια ψηφιακή δαγκάνα και πώς λειτουργεί μια ψηφιακή δαγκάνα: Πολλοί άνθρωποι γνωρίζουν πώς να χρησιμοποιούν δαγκάνες για μέτρηση. Αυτό το σεμινάριο θα σας διδάξει πώς να γκρεμίσετε μια ψηφιακή δαγκάνα και μια εξήγηση για το πώς λειτουργεί η ψηφιακή δαγκάνα
Σεμινάριο: Πώς να βαθμονομήσετε και να διασυνδέσετε το κελί φόρτωσης με το Arduino UNO: 3 βήματα
![Σεμινάριο: Πώς να βαθμονομήσετε και να διασυνδέσετε το κελί φόρτωσης με το Arduino UNO: 3 βήματα Σεμινάριο: Πώς να βαθμονομήσετε και να διασυνδέσετε το κελί φόρτωσης με το Arduino UNO: 3 βήματα](https://i.howwhatproduce.com/images/009/image-24754-j.webp)
Φροντιστήριο: Πώς να βαθμονομήσετε και να διασυνδέσετε το κελί φόρτωσης με το Arduino UNO: Γεια σας παιδιά, θα σας δείξουμε το σεμινάριο: Πώς να βαθμονομήσετε και να διασυνδέσετε κυψέλες φόρτωσης ή μονάδα ισορροπίας HX711 με το Arduino UNO. Περιγραφή σχετικά με τη μονάδα ισορροπίας HX711: Αυτή η ενότητα χρησιμοποιεί 24 υψηλές μετατροπέας A / D ακριβείας. Αυτό το τσιπ έχει σχεδιαστεί για υψηλής προ
Πώς να χτίσετε 8x8 ΜΕΓΑΛΟ LED μήτρα (MAX7219 LED 10mm): 9 βήματα (με εικόνες)
![Πώς να χτίσετε 8x8 ΜΕΓΑΛΟ LED μήτρα (MAX7219 LED 10mm): 9 βήματα (με εικόνες) Πώς να χτίσετε 8x8 ΜΕΓΑΛΟ LED μήτρα (MAX7219 LED 10mm): 9 βήματα (με εικόνες)](https://i.howwhatproduce.com/images/011/image-30624-j.webp)
Πώς να φτιάξετε 8x8 ΜΕΓΑΛΟ LED μήτρα (MAX7219 LED 10mm): Έχετε εργαστεί με έτοιμη μήτρα LED 8x8 ως οθόνες; Έρχονται σε διάφορα μεγέθη και είναι αρκετά ενδιαφέροντα να δουλέψουν. Ένα μεγάλο άμεσα διαθέσιμο μέγεθος είναι περίπου 60mm x 60mm. Ωστόσο, αν ψάχνετε για μια πολύ μεγαλύτερη έτοιμη μήτρα LED
AVR Μικροελεγκτή Fuse Bits Διαμόρφωση. Δημιουργία και μεταφόρτωση στη μνήμη flash του μικροελεγκτή του προγράμματος αναβοσβήνει LED .: 5 βήματα
![AVR Μικροελεγκτή Fuse Bits Διαμόρφωση. Δημιουργία και μεταφόρτωση στη μνήμη flash του μικροελεγκτή του προγράμματος αναβοσβήνει LED .: 5 βήματα AVR Μικροελεγκτή Fuse Bits Διαμόρφωση. Δημιουργία και μεταφόρτωση στη μνήμη flash του μικροελεγκτή του προγράμματος αναβοσβήνει LED .: 5 βήματα](https://i.howwhatproduce.com/images/001/image-689-71-j.webp)
AVR Μικροελεγκτή Fuse Bits Διαμόρφωση. Δημιουργία και μεταφόρτωση στο Flash Memory of Microcontroller του LED Blinking Program: Σε αυτή την περίπτωση θα δημιουργήσουμε απλό πρόγραμμα σε κώδικα C και θα το γράψουμε στη μνήμη του μικροελεγκτή. Θα γράψουμε το δικό μας πρόγραμμα και θα μεταγλωττίσουμε το εξάγωνο αρχείο, χρησιμοποιώντας το Atmel Studio ως ολοκληρωμένη πλατφόρμα ανάπτυξης. Θα διαμορφώσουμε την ασφάλεια bi
Πώς να διασυνδέσετε μια οθόνη TFT 4x3”με ένα Arduino: 4 βήματα
![Πώς να διασυνδέσετε μια οθόνη TFT 4x3”με ένα Arduino: 4 βήματα Πώς να διασυνδέσετε μια οθόνη TFT 4x3”με ένα Arduino: 4 βήματα](https://i.howwhatproduce.com/images/002/image-4257-57-j.webp)
Πώς να διασυνδέσετε μια οθόνη TFT 4x3 "με ένα Arduino: Το FocusLCDs.com μου έστειλε ένα δωρεάν δείγμα μιας TFT LCD 4x3" (P/N: E43RG34827LW2M300-R) για να δοκιμάσω. Πρόκειται για μια έγχρωμη ενεργή μήτρα TFT (Thin Film Transistor) LCD (οθόνη υγρών κρυστάλλων) που χρησιμοποιεί άμορφο TFT πυριτίου ως συσκευή μεταγωγής. Αυτό το μοντέλο είναι γ