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

MAX7219 Συναρμολόγηση και δοκιμή μήτρας σημείων LED: 6 βήματα (με εικόνες)
MAX7219 Συναρμολόγηση και δοκιμή μήτρας σημείων LED: 6 βήματα (με εικόνες)

Βίντεο: MAX7219 Συναρμολόγηση και δοκιμή μήτρας σημείων LED: 6 βήματα (με εικόνες)

Βίντεο: MAX7219 Συναρμολόγηση και δοκιμή μήτρας σημείων LED: 6 βήματα (με εικόνες)
Βίντεο: Светодиодные матрицы на max7219 2024, Νοέμβριος
Anonim
Image
Image
Ελέγξτε το πακέτο
Ελέγξτε το πακέτο

Η οθόνη 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
Το πρόγραμμα οδήγησης MAX7219
Το πρόγραμμα οδήγησης MAX7219
Το πρόγραμμα οδήγησης 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: Η έξοδος

Image
Image
Η Έξοδος
Η Έξοδος
Η Έξοδος
Η Έξοδος
Η Έξοδος
Η Έξοδος

Δείτε ολόκληρο το βίντεο εδώ: -MAX7219 8x8 LED MATRIX ΣΥΝΕΛΕΥΣΗ ΚΑΙ ΔΟΚΙΜΗ χρησιμοποιώντας ARDUINO

Λοιπόν όλη αυτή η σκληρή δουλειά, σίγουρα αποδίδει αρκετά καλά όταν βλέπετε το αποτέλεσμα. Αξίζει τον κόπο !!

Εγγραφείτε στο κανάλι μου στο youtube: -Creative Stuff

Συνιστάται: