Mündəricat:
2025 Müəllif: John Day | [email protected]. Son dəyişdirildi: 2025-01-23 12:54
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
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, 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ə 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ış
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ə:
Ardiuno ilə 32x8 Max7219 Dot Matrix: 5 addım (şəkillərlə)
Dot Matrix 32x8 Max7219 Ardiuno ilə İnterfeys: Hamıya Salam, Max7219 əsaslı Dot Matrix 2020 -ci ildə yeni deyil, son vaxtlara qədər quraşdırma prosesi yaxşı sənədləşdirilmişdi, biri də donanım kitabxanasını MajicDesigns -dən yükləyə bilərdi. və başlıq sənədlərində bir neçə sətir dəyişdi və FC16 bir cazibədarlıq kimi çalışdı. Bu vaxta qədər idi
Stress Testi Raspberry Pi: 6 Addım (Şəkillərlə birlikdə)
Raspberry Pi -nin Stress Testi: Raspberry Pi ilk dəfə azadlığa çıxanda bir alma aldatmacasına qapıldım, amma sonunda elektronika layihələrinə daha uyğun olduqları üçün Arduino ilə daha çox vaxt keçirdim. anbarda və bunun olduğunu düşündüm
SMS Monitor -- Dot Matrix Ekranı -- MAX7219 -- SIM800L: 8 addım (şəkillərlə)
SMS Monitor || Dot Matrix Ekranı || MAX7219 || SIM800L: Bu videoda bir GSM modulu, nöqtə matrisli ekranın necə istifadə ediləcəyini və üzərindəki sürüşmə mətninin necə göstəriləcəyini öyrənəcəksiniz. Bundan sonra onları GSM SIM üzərindən alınan mesajları nöqtəli matrisə keçirmək üçün birləşdirəcəyik. Bu olduqca asandır və siz
LED Dot-Matrix Ekranı: 8 Addım (Şəkillərlə birlikdə)
LED Dot-Matrix Ekranı: Bu, özəl LED Dot-Matrix ekranınızı necə hazırlamaq olar. LEDləri yandırmaq üçün tam bir proqramı əlavə edəcəyəm. Həm də olduqca hacked, özünüzə uyğun olaraq dəyişdirə bilərsiniz. Öz işimlə məşğul olmağa qərar verdim
Epee Bodycord Testi və Təmiri: 9 Addım (Şəkillərlə birlikdə)
Bir Epee Bodycord Testi və Təmiri: Müasir, Olimpiya tipli qılıncoynatma idman növündə qol vurma elektriklə aparılır. Elektrik siqnalının silahınızdan qol maşınına keçməsi üçün siqnalın hərəkət etməsi lazımdır: silahınızdakı bir teldən (qılınc istisna olmaqla) qolunuzu yuxarı və aşağıya