Mündəricat:

MAX7219 LED Dot Matrix Montajı və Testi: 6 Addım (Şəkillərlə birlikdə)
MAX7219 LED Dot Matrix Montajı və Testi: 6 Addım (Şəkillərlə birlikdə)

Video: MAX7219 LED Dot Matrix Montajı və Testi: 6 Addım (Şəkillərlə birlikdə)

Video: MAX7219 LED Dot Matrix Montajı və Testi: 6 Addım (Şəkillərlə birlikdə)
Video: Dot Matrix 8x8 Uygulaması #20 2024, Iyul
Anonim
Image
Image
Paketi yoxlayın
Paketi yoxlayın

Dot-Matrix Display, matris şəklində hizalanmış işıq yayan diodları ehtiva edən bir ekran qurğusudur. Bu Dot matrix displeyləri Symbol, Graphic, Characters, Alphabets, Rəqəmlərin həm statik, həm də birlikdə göstərilməsi lazım olan tətbiqlərdə istifadə olunur. Kaydırma hərəkəti. Dot Matrix Display, ədədlərin satır və sütunlarda LED -ləri təmsil etdiyi 5x7, 8x8, 16x8, 128x16, 128x32 və 128x64 kimi müxtəlif ölçülərdə istehsal olunur. Həmçinin bu ekranlar Qırmızı, Yaşıl, Sarı, Mavi, Narıncı, Ağ.

Bu Təlimat kitabında, MAX7219 sürücüsü olan 8x8 Dot Matrix ilə Arduino Uno arasında əlaqə quracağam. Başlayaq.

Təchizat

MAX7219

Addım 1: Paketi yoxlayın

Sürücü lövhəsinin smt versiyasına sahib olduğumu gördüyünüz kimi, smd komponentlərinin ölçüsü çox kiçik olduğu üçün asanlıqla hər şeyi yoxlamaq çox vacibdir. Onları da itirə bilərsiniz. ölçüsünə görə smt versiyası.

Addım 2: Bu Xüsusi Dot Matrix haqqında Biraz

Bu Xüsusi Dot Matrix haqqında Biraz
Bu Xüsusi Dot Matrix haqqında Biraz

tək modul 8x8 nöqtə matrisli ümumi katodu idarə edə bilər.

İşləmə gərginliyi: 5 v

Ölçülər: uzunluq 3.2 sm X 3.2 sm genişlik X 1.3 sm, dörd vintli deliklər, diametri 3 mm

Giriş və çıxış interfeysləri olan modullar, çoxlu modulların kaskadlanması üçün dəstək.

Məlumat IN və OUT terminalları modulda göstərilmişdir.

Addım 3: MAX7219 Sürücü

MAX7219 sürücü
MAX7219 sürücü
MAX7219 sürücü
MAX7219 sürücü

MAX7219, 8x8 LED MATRIX -i idarə etmək üçün hazırlanmış bir IC -dir. IC, mikroprosessorları (və ya mikrodenetleyiciyi) 8 rəqəmə qədər, 7-hissəli rəqəmsal LED displeylərə, ştrixli qrafikli displeylərə və ya 64 fərdi LED-lərə birləşdirən serial girişi ümumi katodlu (Ümumi Negativ) ekran sürücüləridir.

Xüsusiyyətlər və Xüsusiyyətlər

İşləmə gərginliyi aralığı: +4.0 ilə +5.5V arasında

Tövsiyə olunan iş gərginliyi: +5V

Maksimum təchizat gərginliyi: 6V

Hər seqment pinindən çəkməyə icazə verilən maksimum cərəyan: 100mA

Hər bir DIGIT topraklama pinindən icazə verilən maksimum cərəyan: 500mA

Aşağı enerji istehlakı

Məlumat-Segment Gecikmə müddəti: 2.2mSec

İşləmə temperaturu: 0 ° C -dən +70 ° C -ə qədər

Saxlama temperaturu: -65 ° C ilə +150 ° C arasında

Addım 4: Dövrə

Dövrə
Dövrə
Dövrə
Dövrə

Dövrə olduqca sadədir və kişidən dişi tullanan tellərdən istifadə etməklə tikilə bilər. Yalnız pinoutu izləyin və dövrə qurun. Matrix üçün daimi bir tətbiq edirsinizsə, daha sonra bir PCB üzərində yığa bilərsiniz.

Pin Konfiqurasiyası belədir:

  • Arduinonun 5V pininə Vcc.
  • Gnd - Gnd Arduino Pin.
  • Arduino rəqəmsal pin 12 üçün DIN.
  • CS Arduino rəqəmsal pin 11 -ə
  • Arduinonun Digital Pin 10 -a CLK.

Addım 5: Kod

Burada bu Təlimat kitabında sizə iki fərqli kod təqdim edəcəyəm. Matrisdə bir neçə İngilis əlifbası və smayllar yaradılacaq. O biri 64 LED -in hamısını bir -bir yandıracaq. İşləmək üçün lledcontrol kitabxanasından istifadə etməlisiniz.

İngilis əlifbalarının və gülüşlərinin kodu budur

#daxil et DIN = 12; int CS = 11; int CLK = 10; bayt e [8] = {0x7C, 0x7C, 0x60, 0x7C, 0x7C, 0x60, 0x7C, 0x7C}; bayt d [8] = {0x78, 0x7C, 0x66, 0x66, 0x66, 0x66, 0x7C, 0x78}; bayt u [8] = {0x66, 0x66, 0x66, 0x66, 0x66, 0x66, 0x7E, 0x7E}; bayt c [8] = {0x7E, 0x7E, 0x60, 0x60, 0x60, 0x60, 0x7E, 0x7E}; bayt səkkiz [8] = {0x7E, 0x7E, 0x66, 0x7E, 0x7E, 0x66, 0x7E, 0x7E}; bayt s [8] = {0x7E, 0x7C, 0x60, 0x7C, 0x3E, 0x06, 0x3E, 0x7E}; bayt nöqtəsi [8] = {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x18}; bayt o [8] = {0x7E, 0x7E, 0x66, 0x66, 0x66, 0x66, 0x7E, 0x7E}; bayt 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 başlanğıcında enerji qənaət rejimindədir (0, 15); // Parlaqlığı maksimum dəyərə qoyun lc.clearDisplay (0); // və ekranı sil} void loop () {byte smile [8] = {0x3C, 0x42, 0xA5, 0x81, 0xA5, 0x99, 0x42, 0x3C}; bayt neytral [8] = {0x3C, 0x42, 0xA5, 0x81, 0xBD, 0x81, 0x42, 0x3C}; bayt qaşqabağı [8] = {0x3C, 0x42, 0xA5, 0x81, 0x99, 0xA5, 0x42, 0x3C}; printByte (gülümsəmək); gecikmə (1000); printByte (neytral); gecikmə (1000); printByte (qaşqabaq); gecikmə (1000); printEduc8s (); lc.clearDisplay (0); gecikmə (1000); } boş printEduc8s () {printByte (e); gecikmə (1000); printByte (d); gecikmə (1000); printByte (u); gecikmə (1000); printByte (c); gecikmə (1000); printByte (səkkiz); gecikmə (1000); printByte (s); gecikmə (1000); printByte (nöqtə); gecikmə (1000); printByte (c); gecikmə (1000); printByte (o); gecikmə (1000); printByte (m); gecikmə (1000); } void printByte (bayt simvolu ) {int i = 0; üçün (i = 0; i <8; i ++) {lc.setRow (0, i, xarakter ); }}

və bütün 64 LED -in sınanması üçün kod

// Həmişə kitabxana daxil etməliyik#include "LedControl.h"

/*

İndi işləmək üçün bir LedControl lazımdır. ***** Bu pin nömrələri, ehtimal ki, aparatınızla işləməyəcək ***** pin 12, DataIn pin 10 -a, CLK pin 11 -ə, LOAD -a bağlıdır. Yalnız bir MAX72XX -ə sahibik. */ LedControl lc = LedControl (12, 11, 10, 1);

/ * Ekranın yeniləmələri arasında hər zaman bir az gözləyərik */

imzasız uzun gecikmə müddəti = 100;

boş quraşdırma () {

/ * MAX72XX başlanğıcda enerji qənaət rejimindədir, oyanış çağırışı etməliyik */ lc.shutdown (0, false); / * Parlaqlığı orta dəyərlərə təyin edin */ lc.setIntensity (0, 8); / * və ekranı silin */ lc.clearDisplay (0); }

/*

Bu üsul matrisdə "Arduino" sözünün simvollarını bir -birinin ardınca göstərəcək. (bütün simvolları görmək üçün ən az 5x7 ledə ehtiyacınız var) */ void writeArduinoOnMatrix () {/ *burada */ byte a [5] = {B01111110, B10001000, B10001000, B10001000, B01111110} simvolları üçün məlumatlar var; bayt r [5] = {B00111110, B00010000, B00100000, B00100000, B00010000}; bayt d [5] = {B00011100, B00100010, B00100010, B00010010, B11111110}; bayt u [5] = {B00111100, B00000010, B00000010, B00000100, B00111110}; bayt i [5] = {B00000000, B00100010, B10111110, B00000010, B00000000}; bayt n [5] = {B00111110, B00010000, B00100000, B00100000, B00011110}; bayt o [5] = {B00011100, B00100010, B00100010, B00100010, B00011100};

/ * indi kiçik bir gecikmə ilə onları bir -bir göstər */

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]); gecikmə (gecikmə vaxtı); 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]); gecikmə (gecikmə vaxtı); 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]); gecikmə (gecikmə vaxtı); 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]); gecikmə (gecikmə vaxtı); 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]); gecikmə (gecikmə vaxtı); 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]); gecikmə (gecikmə vaxtı); 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]); gecikmə (gecikmə vaxtı); 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); gecikmə (gecikmə vaxtı); }

/*

Bu funksiya bir neçə LED -i ardıcıl olaraq işıqlandırır. Nümunə hər sətirdə təkrarlanacaq. Nümunə sıra nömrəsi ilə birlikdə yanıb-sönəcək. sıra nömrəsi 4 (indeks == 3) 4 dəfə yanıb -sönəcək və s. */ void rows () {for (int row = 0; row <8; row ++) {gecikmə (gecikmə vaxtı); lc.setRow (0, sıra, B10100000); gecikmə (gecikmə vaxtı); lc.setRow (0, satır, (bayt) 0); üçün (int i = 0; i

/*

Bu funksiya bir sütundakı bəzi Ledləri yandırır. Nümunə hər sütunda təkrarlanacaq. Nümunə sütun nömrəsi ilə birlikdə yanıb-sönəcək. sütun sayı 4 (indeks == 3) 4 dəfə yanıb -sönəcək və s. */ void sütunları () {for (int col = 0; col <8; col ++) {gecikmə (gecikmə vaxtı); lc.setColumn (0, col, B10100000); gecikmə (gecikmə vaxtı); lc.setColumn (0, col, (byte) 0); üçün (int i = 0; i

/*

Bu funksiya matrisdəki hər bir Led'i yandıracaq. Led sıra nömrəsi ilə birlikdə yanıb-sönəcək. sıra nömrəsi 4 (indeks == 3) 4 dəfə yanıb -sönəcək və s. */ void single () {for (int row = 0; row <8; row ++) {for (int col = 0; col <8; col ++) { gecikmə (gecikmə); lc.setLed (0, satır, col, doğru); gecikmə (gecikmə vaxtı); üçün (int i = 0; i

boşluq döngəsi () {

writeArduinoOnMatrix (); satır (); sütunlar (); tək (); }

Addım 6: Çıxış

Image
Image
Çıxış
Çıxış
Çıxış
Çıxış
Çıxış
Çıxış

Videonun tam versiyasını burada izləyin: -MAX7219 8x8 LED MATRIX MONTAJI VƏ ARDUINO istifadə edərək test etməsi.

Yaxşı, bütün bu zəhmət, nəticəni gördükdə, şübhəsiz ki, çox yaxşı nəticə verir. Buna dəyər !!

Youtube kanalıma abunə olun: -Creative Stuff

Tövsiyə: