Πίνακας περιεχομένων:
- Προμήθειες
- Βήμα 1: Ελέγξτε το πακέτο
- Βήμα 2: Λίγα λόγια για αυτήν την ιδιαίτερη κουκκίδα
- Βήμα 3: Το πρόγραμμα οδήγησης MAX7219
- Βήμα 4: Το κύκλωμα
- Βήμα 5: Ο Κώδικας
- Βήμα 6: Η έξοδος
Βίντεο: MAX7219 Συναρμολόγηση και δοκιμή μήτρας σημείων LED: 6 βήματα (με εικόνες)
2024 Συγγραφέας: John Day | [email protected]. Τελευταία τροποποίηση: 2024-01-30 08:34
Η οθόνη Dot-Matrix είναι μια συσκευή εμφάνισης που περιέχει διόδους εκπομπής φωτός ευθυγραμμισμένες με τη μορφή μήτρας. Αυτές οι οθόνες Dot matrix χρησιμοποιούνται σε εφαρμογές όπου τα σύμβολα, τα γραφικά, οι χαρακτήρες, τα αλφάβητα, οι αριθμοί πρέπει να εμφανίζονται μαζί στατικά καθώς και Κύλιση κίνησης. Η οθόνη Dot Matrix κατασκευάζεται σε διάφορες διαστάσεις όπως 5x7, 8x8, 16x8, 128x16, 128x32 και 128x64 όπου οι αριθμοί αντιπροσωπεύουν τις λυχνίες LED σε σειρές και στήλες. Επίσης αυτές οι οθόνες έρχονται σε διαφορετικά χρώματα όπως κόκκινο, πράσινο, κίτρινο, μπλε, Πορτοκαλί, Λευκό.
Σε αυτό το Instructable, θα περάσω από τη διασύνδεση ενός 8x8 Dot Matrix που έχει ένα πρόγραμμα οδήγησης MAX7219 σε ένα Arduino Uno. Ας ξεκινήσουμε.
Προμήθειες
MAX7219
Βήμα 1: Ελέγξτε το πακέτο
Όπως μπορείτε να δείτε, έχω μια smt έκδοση της πλακέτας οδηγού, είναι πολύ σημαντικό να επαληθεύσετε κάθε ένα από τα εξαρτήματα που χρειάζεστε, καθώς τα εξαρτήματα smd είναι πολύ μικρά σε μέγεθος και μπορείτε εύκολα να τα χάσετε. Υπάρχουν επίσης διαθέσιμες εκδόσεις βουτιά στο διαδίκτυο, αλλά εγώ την έκδοση smt για το μέγεθός της.
Βήμα 2: Λίγα λόγια για αυτήν την ιδιαίτερη κουκκίδα
μία μονάδα μπορεί να οδηγήσει την κοινή κάθοδο μήτρας 8x8 κουκκίδων.
Τάση λειτουργίας: 5 v
Διαστάσεις: μήκος 3,2 cm X 3,2 cm πλάτος X 1,3 cm ύψος, οπές με τέσσερις βίδες, διάμετρος 3 mm
Ενότητες με διεπαφές εισόδου και εξόδου, υποστήριξη για πολλαπλές λειτουργικές μονάδες.
Τα τερματικά δεδομένων IN και OUT καθορίζονται στη μονάδα.
Βήμα 3: Το πρόγραμμα οδήγησης MAX7219
Το MAX7219 είναι ένα IC σχεδιασμένο για τον έλεγχο ενός LED MATRIX 8x8. Το IC είναι σειριακοί οδηγοί οθόνης κοινής καθόδου (Common Negative) που διασυνδέουν μικροεπεξεργαστές (ή μικροελεγκτές) με αριθμητικές οθόνες LED 7 τμημάτων έως 8 ψηφίων, οθόνες ράβδων ή 64 μεμονωμένες λυχνίες LED.
Χαρακτηριστικά και Προδιαγραφές
Εύρος τάσης λειτουργίας: +4,0 έως +5,5V
Συνιστώμενη τάση λειτουργίας: +5V
Μέγιστη τάση τροφοδοσίας: 6V
Μέγιστο επιτρεπόμενο ρεύμα για ανάκλαση σε κάθε ακίδα τμήματος: 100mA
Μέγιστο επιτρεπόμενο ρεύμα μέσω κάθε πείρου γείωσης DIGIT: 500mA
Χαμηλή κατανάλωση ενέργειας
Χρόνος καθυστέρησης δεδομένων προς τμήμα: 2,2mSec
Θερμοκρασία λειτουργίας: 0 ° C έως +70 ° C
Θερμοκρασία αποθήκευσης: -65 ° C έως +150 ° C
Βήμα 4: Το κύκλωμα
Το κύκλωμα είναι αρκετά απλό και μπορεί να κατασκευαστεί χρησιμοποιώντας αρσενικά προς θηλυκά καλώδια. Απλώς ακολουθήστε το pinout και δημιουργήστε το κύκλωμα. Μπορείτε αργότερα να το συναρμολογήσετε σε PCB εάν κάνετε μόνιμη εφαρμογή για το Matrix.
Η διαμόρφωση καρφιτσών έχει ως εξής:
- Vcc έως 5V Pin του Arduino.
- Gnd to Gnd Pin του Arduino.
- DIN στο ψηφιακό pin 12 του Arduino.
- CS σε ψηφιακό pin 11 του Arduino
- CLK στο Digital Pin 10 του Arduino.
Βήμα 5: Ο Κώδικας
Εδώ σε αυτό το Instructable θα σας δώσω δύο διαφορετικούς κωδικούς. Κάποιος θα δημιουργήσει μερικά αγγλικά αλφάβητα και εικονίδια στο Matrix. Το άλλο ένα θα θέσει όλα τα 64 LED που ανάβουν ένα προς ένα. Πρέπει να χρησιμοποιήσετε τη βιβλιοθήκη lledcontrol για να λειτουργήσει.
Αυτός είναι ο κωδικός για αγγλικά αλφάβητα και χαμόγελα
#include int DIN = 12; int CS = 11; int CLK = 10; byte e [8] = {0x7C, 0x7C, 0x60, 0x7C, 0x7C, 0x60, 0x7C, 0x7C}; byte d [8] = {0x78, 0x7C, 0x66, 0x66, 0x66, 0x66, 0x7C, 0x78}; byte u [8] = {0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x7E, 0x7E}; byte c [8] = {0x7E, 0x7E, 0x60, 0x60, 0x60, 0x60, 0x7E, 0x7E}; byte οκτώ [8] = {0x7E, 0x7E, 0x66, 0x7E, 0x7E, 0x66, 0x7E, 0x7E}; byte s [8] = {0x7E, 0x7C, 0x60, 0x7C, 0x3E, 0x06, 0x3E, 0x7E}; byte dot [8] = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18}? byte o [8] = {0x7E, 0x7E, 0x66, 0x66, 0x66, 0x66, 0x7E, 0x7E}; byte m [8] = {0xE7, 0xFF, 0xFF, 0xDB, 0xDB, 0xDB, 0xC3, 0xC3}; LedControl lc = LedControl (DIN, CLK, CS, 0); void setup () {lc.shutdown (0, false); // Το MAX72XX βρίσκεται σε κατάσταση εξοικονόμησης ενέργειας κατά την εκκίνηση lc.setIntensity (0, 15). // Ορίστε τη φωτεινότητα στη μέγιστη τιμή lc.clearDisplay (0); // και καθαρίστε την οθόνη} void loop () {byte smile [8] = {0x3C, 0x42, 0xA5, 0x81, 0xA5, 0x99, 0x42, 0x3C}; byte neutral [8] = {0x3C, 0x42, 0xA5, 0x81, 0xBD, 0x81, 0x42, 0x3C}; byte συνοφρυωμένο [8] = {0x3C, 0x42, 0xA5, 0x81, 0x99, 0xA5, 0x42, 0x3C}; printByte (χαμόγελο); καθυστέρηση (1000)? printByte (ουδέτερο); καθυστέρηση (1000)? printByte (συνοφρυωμένο); καθυστέρηση (1000)? printEduc8s (); lc.clearDisplay (0); καθυστέρηση (1000)? } void printEduc8s () {printByte (e); καθυστέρηση (1000)? printByte (d); καθυστέρηση (1000)? printByte (u); καθυστέρηση (1000)? printByte (c); καθυστέρηση (1000)? printByte (οκτώ); καθυστέρηση (1000)? printByte (ες); καθυστέρηση (1000)? printByte (τελεία); καθυστέρηση (1000)? printByte (c); καθυστέρηση (1000)? printByte (o); καθυστέρηση (1000)? printByte (m); καθυστέρηση (1000)? } void printByte (χαρακτήρας byte ) {int i = 0; για (i = 0; i <8; i ++) {lc.setRow (0, i, χαρακτήρας ); }}
και τον κωδικό για τη δοκιμή και των 64 LED
// Πρέπει πάντα να συμπεριλαμβάνουμε τη βιβλιοθήκη#include "LedControl.h"
/*
Τώρα χρειαζόμαστε ένα LedControl για να δουλέψουμε. ***** Αυτοί οι αριθμοί καρφιτσών πιθανότατα δεν θα λειτουργήσουν με το υλικό σας */ LedControl lc = LedControl (12, 11, 10, 1);
/ * πάντα περιμένουμε λίγο μεταξύ ενημερώσεων της οθόνης */
ανυπόγραφη μεγάλη καθυστέρηση = 100;
void setup () {
/ * Το MAX72XX βρίσκεται σε κατάσταση εξοικονόμησης ενέργειας κατά την εκκίνηση, πρέπει να πραγματοποιήσουμε μια κλήση αφύπνισης */ lc.shutdown (0, false). / * Ρυθμίστε τη φωτεινότητα σε μεσαίες τιμές */ lc.setIntensity (0, 8). / * και καθαρίστε την οθόνη */ lc.clearDisplay (0). }
/*
Αυτή η μέθοδος θα εμφανίζει τους χαρακτήρες για τη λέξη "Arduino" ο ένας μετά τον άλλο στη μήτρα. (χρειάζεστε τουλάχιστον 5x7 led για να δείτε ολόκληρους τους χαρακτήρες) */ void writeArduinoOnMatrix () {/ *εδώ είναι τα δεδομένα για τους χαρακτήρες */ byte a [5] = {B01111110, B10001000, B10001000, B10001000, B01111110}; byte r [5] = {B00111110, B00010000, B00100000, B00100000, B00010000}; byte d [5] = {B00011100, B00100010, B00100010, B00010010, B11111110}; byte u [5] = {B00111100, B00000010, B00000010, B00000100, B00111110}; byte i [5] = {B00000000, B00100010, B10111110, B00000010, B00000000}; byte n [5] = {B00111110, B00010000, B00100000, B00100000, B00011110}; byte o [5] = {B00011100, B00100010, B00100010, B00100010, B00011100};
/ * τώρα εμφανίστε τα ένα ένα με μικρή καθυστέρηση */
lc.setRow (0, 0, a [0]); lc.setRow (0, 1, a [1]); lc.setRow (0, 2, a [2]); lc.setRow (0, 3, a [3]); lc.setRow (0, 4, a [4]); καθυστέρηση (καθυστέρηση) lc.setRow (0, 0, r [0]); lc.setRow (0, 1, r [1]); lc.setRow (0, 2, r [2]); lc.setRow (0, 3, r [3]); lc.setRow (0, 4, r [4]); καθυστέρηση (καθυστέρηση) lc.setRow (0, 0, d [0]); lc.setRow (0, 1, d [1]); lc.setRow (0, 2, d [2]); lc.setRow (0, 3, d [3]); lc.setRow (0, 4, d [4]); καθυστέρηση (καθυστέρηση) lc.setRow (0, 0, u [0]); lc.setRow (0, 1, u [1]); lc.setRow (0, 2, u [2]); lc.setRow (0, 3, u [3]); lc.setRow (0, 4, u [4]); καθυστέρηση (καθυστέρηση) lc.setRow (0, 0, i [0]); lc.setRow (0, 1, i [1]); lc.setRow (0, 2, i [2]); lc.setRow (0, 3, i [3]); lc.setRow (0, 4, i [4]); καθυστέρηση (καθυστέρηση) lc.setRow (0, 0, n [0]); lc.setRow (0, 1, n [1]); lc.setRow (0, 2, n [2]); lc.setRow (0, 3, n [3]); lc.setRow (0, 4, n [4]); καθυστέρηση (καθυστέρηση) lc.setRow (0, 0, o [0]); lc.setRow (0, 1, o [1]); lc.setRow (0, 2, o [2]); lc.setRow (0, 3, o [3]); lc.setRow (0, 4, o [4]); καθυστέρηση (καθυστέρηση) lc.setRow (0, 0, 0); lc.setRow (0, 1, 0); lc.setRow (0, 2, 0); lc.setRow (0, 3, 0); lc.setRow (0, 4, 0); καθυστέρηση (καθυστέρηση) }
/*
Αυτή η λειτουργία ανάβει μερικά Leds στη σειρά. Το μοτίβο θα επαναλαμβάνεται σε κάθε σειρά. Το μοτίβο θα αναβοσβήνει μαζί με τον αριθμό σειράς. ο αριθμός σειράς 4 (index == 3) θα αναβοσβήνει 4 φορές κ.λπ. lc.setRow (0, σειρά, B10100000); καθυστέρηση (καθυστέρηση) lc.setRow (0, σειρά, (byte) 0); για (int i = 0; i
/*
Αυτή η συνάρτηση φωτίζει μερικά Leds σε μια στήλη. Το μοτίβο θα επαναληφθεί σε κάθε στήλη. Το μοτίβο θα αναβοσβήνει μαζί με τον αριθμό στήλης. Ο αριθμός στήλης 4 (index == 3) θα αναβοσβήνει 4 φορές κ.λπ. lc.setColumn (0, col, B10100000); καθυστέρηση (καθυστέρηση) lc.setColumn (0, col, (byte) 0); για (int i = 0; i
/*
Αυτή η συνάρτηση θα ανάψει κάθε Led στη μήτρα. Το led θα αναβοσβήνει μαζί με τον αριθμό σειράς. ο αριθμός σειράς 4 (index == 3) θα αναβοσβήνει 4 φορές κ.λπ. */ void single () {for (int row = 0; row <8; row ++) {for (int col = 0; col <8; col ++) { καθυστέρηση (καθυστέρηση) lc.setLed (0, row, col, true); καθυστέρηση (καθυστέρηση) για (int i = 0; i
void loop () {
writeArduinoOnMatrix (); σειρές (); στήλες(); μονόκλινο(); }
Βήμα 6: Η έξοδος
Δείτε ολόκληρο το βίντεο εδώ: -MAX7219 8x8 LED MATRIX ΣΥΝΕΛΕΥΣΗ ΚΑΙ ΔΟΚΙΜΗ χρησιμοποιώντας ARDUINO
Λοιπόν όλη αυτή η σκληρή δουλειά, σίγουρα αποδίδει αρκετά καλά όταν βλέπετε το αποτέλεσμα. Αξίζει τον κόπο !!
Εγγραφείτε στο κανάλι μου στο youtube: -Creative Stuff
Συνιστάται:
Διοργανωτής γραφείου με ρολόι μήτρας LED και Bluetooth: 7 βήματα
Desk Organizer With LED Matrix Clock και Bluetooth: Το γραφείο μου ήταν πολύ ακατάστατο και ήθελα να έχω έναν ωραίο οργανωτή όπου θα μπορούσα να τακτοποιήσω τα μολύβια μου, τις βούρτσες ζωγραφικής, τα πήλινα εργαλεία κ.λπ. Κοίταξα πολλούς διοργανωτές στην αγορά αλλά δεν μου άρεσε κανένα από αυτά Το Ξεκίνησα να σχεδιάσω τον δικό μου οργανωτή γραφείου και εδώ
Φωτισμός τριών σημείων: 4 βήματα
Φωτισμός τριών σημείων: Η ρύθμιση του σωστού φωτισμού για τη φωτογραφία μπορεί να είναι πολύ σημαντική για την εικόνα. Μία από τις πιο γνωστές ρυθμίσεις φωτισμού είναι η εγκατάσταση φωτισμού τριών σημείων. Η εγκατάσταση ήταν επιτυχής για τόσους πολλούς φωτογράφους. Το μέγεθος, η απόσταση, η ένταση
Σχεδιασμός μεγαφώνου κατά δοκιμή και σφάλμα: 11 βήματα (με εικόνες)
Σχεδιασμός μεγαφώνων με δοκιμή και σφάλμα: " Τώρα πρέπει να φτιάξω το δικό μου ζευγάρι ηχείων! &Quot; Σκέφτηκα, αφού τελείωσα τον Serious Amplifier μου. " Και αν μπορώ να φτιάξω έναν αξιοπρεπή ενισχυτή, σίγουρα μπορώ να το κάνω αυτό. " Έτσι πήδηξα στον κόσμο του σχεδιασμού και της κατασκευής ηχείων, περιμένοντας ένα ωραίο
Δοκιμή και επισκευή bodycord Epee: 9 βήματα (με εικόνες)
Δοκιμή και επιδιόρθωση κορδονιού Epee: Στο άθλημα της σύγχρονης ξιφασκίας ολυμπιακού στιλ, η βαθμολογία γίνεται ηλεκτρικά. Για να μεταφερθεί το ηλεκτρικό σήμα από το όπλο σας στη μηχανή βαθμολόγησης, το σήμα πρέπει να ταξιδέψει: μέσω ενός σύρματος στο όπλο σας (εκτός από τη σπαθιά) επάνω στο μανίκι σας και κάτω
Δημιουργήστε το δικό σας πληκτρολόγιο μήτρας μεμβράνης (και συνδέστε το στο Arduino): 7 βήματα (με εικόνες)
Δημιουργήστε το δικό σας πληκτρολόγιο μήτρας μεμβράνης (και συνδέστε το στο Arduino): Θέλετε να δημιουργήσετε το δικό σας πληκτρολόγιο μεμβράνης; Γιατί; το να φτιάξετε το δικό σας πληκτρολόγιο μπορεί να είναι χρήσιμο για πολλούς λόγους. Είναι φθηνό και εύκολο να το κάνετε, μπορεί να τοποθετηθεί σε καταστάσεις όπου μπορεί να βανδαλιστεί ή να κλαπεί χωρίς ιδιαίτερη απογοήτευση, μπορεί να