İçindekiler:

MAX7219 LED Nokta Vuruşlu Montaj ve Test: 6 Adım (Resimlerle)
MAX7219 LED Nokta Vuruşlu Montaj ve Test: 6 Adım (Resimlerle)

Video: MAX7219 LED Nokta Vuruşlu Montaj ve Test: 6 Adım (Resimlerle)

Video: MAX7219 LED Nokta Vuruşlu Montaj ve Test: 6 Adım (Resimlerle)
Video: M#3 MAX7219 7-сегментные и матричные дисплеи | Аутсил Дев. ПЛК Мега 2024, Temmuz
Anonim
Image
Image
Paketi Kontrol Et
Paketi Kontrol Et

Dot-Matrix Display, matris şeklinde hizalanmış ışık yayan diyotlar içeren bir görüntüleme cihazıdır. Bu Dot matrix ekranlar, Sembol, Grafik, Karakter, Alfabe, Rakamların birlikte statik olarak gösterilmesinin gerektiği uygulamalarda kullanılır. Kaydırma hareketi. Dot Matrix Display 5x7, 8x8, 16x8, 128x16, 128x32 ve 128x64 gibi çeşitli ölçülerde üretilmekte olup, burada sayılar satır ve sütunlarda LED'leri temsil etmektedir. Turuncu, Beyaz.

Bu Eğitilebilir Tabloda, bir MAX7219 sürücüsüne sahip bir 8x8 Dot Matrix'i bir Arduino Uno'ya arabirimlemeden geçeceğim. Haydi başlayalım.

Gereçler

MAX7219

1. Adım: Paketi Kontrol Edin

Gördüğünüz gibi, sürücü kartının bir smt versiyonuna sahibim, smd bileşenlerinin boyutu çok küçük olduğundan ve bunları kolayca kaybedebileceğinizden, gereken her bir bileşeni doğrulamak çok önemlidir. Çevrimiçi dip sürümü de var ama kullandım boyutu için smt sürümü.

2. Adım: Bu Özel Nokta Matrisi Hakkında Biraz

Bu Özel Nokta Matris Hakkında Biraz
Bu Özel Nokta Matris Hakkında Biraz

tek modül, 8x8 nokta vuruşlu ortak katodu çalıştırabilir.

Çalışma voltajı: 5 v

Boyutlar: uzunluk 3,2 cm X 3,2 cm genişlik X 1,3 cm yükseklik, dört vidalı delikler, 3 mm çap

Giriş ve çıkış arayüzlü modüller, çoklu modülleri basamaklandırma desteği.

Veri GİRİŞ ve ÇIKIŞ terminalleri modül üzerinde belirtilmiştir.

3. Adım: MAX7219 Sürücüsü

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

MAX7219, 8x8 LED MATRIX'i kontrol etmek için tasarlanmış bir IC'dir. IC, mikroişlemcileri (veya mikro denetleyiciyi) 8 haneye kadar 7 segmentli sayısal LED ekranlara, çubuk grafik ekranlara veya 64 ayrı LED'e bağlayan seri giriş ortak katot (Ortak Negatif) ekran sürücüleridir.

Özellikler ve Spesifikasyonlar

Çalışma voltajı aralığı: +4.0 ila +5.5V

Önerilen çalışma voltajı: +5V

Maksimum besleme gerilimi: 6V

Her segment pininden çekilmesine izin verilen maksimum akım: 100mA

Her DIGIT topraklama piminden geçmesine izin verilen maksimum akım: 500mA

Düşük güç tüketimi

Veriden Segmente Gecikme Süresi: 2.2mSec

Çalışma sıcaklığı: 0°C ila +70°C

Depolama Sıcaklığı: -65°C ila +150°C

Adım 4: Devre

Devre
Devre
Devre
Devre

Devre oldukça basittir ve erkek-dişi jumper kablolar kullanılarak oluşturulabilir. Sadece pinout'u takip edin ve devreyi kurun. Matrix için kalıcı bir uygulama yapıyorsanız, daha sonra bir PCB üzerine monte edebilirsiniz.

Pin Yapılandırması aşağıdaki gibidir:

  • Arduino'nun 5V Pinine Vcc.
  • Arduino'nun Gnd'den Gnd Pinine.
  • Arduino'nun DIN - Dijital Pin 12'si.
  • Arduino'nun CS'den Dijital Pin 11'ine
  • Arduino'nun Dijital Pin 10'una CLK.

Adım 5: Kod

İşte bu Eğitilebilir Tabloda size iki farklı kod vereceğim. Matrix'te bazı İngilizce alfabeler ve ifadeler oluşturulacaktır. Diğeri ise 64 LED'in hepsini tek tek yanacak. Çalışması için lledcontrol kitaplığını kullanmalısınız.

Bu İngilizce alfabe ve gülümsemeler için koddur

#include int 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 sekiz[8]= {0x7E, 0x7E, 0x66, 0x7E, 0x7E, 0x66, 0x7E, 0x7E}; bayt s[8]= {0x7E, 0x7C, 0x60, 0x7C, 0x3E, 0x06, 0x3E, 0x7E}; bayt nokta[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, başlangıçta güç tasarrufu modundadır lc.setIntensity(0, 15); // Parlaklığı maksimum değere ayarlayın lc.clearDisplay(0); // ve ekranı temizle } void loop(){ byte smile[8]= {0x3C, 0x42, 0xA5, 0x81, 0xA5, 0x99, 0x42, 0x3C}; bayt nötr[8]= {0x3C, 0x42, 0xA5, 0x81, 0xBD, 0x81, 0x42, 0x3C}; bayt kaşlarını[8]= {0x3C, 0x42, 0xA5, 0x81, 0x99, 0xA5, 0x42, 0x3C}; printByte(gülümseme); gecikme(1000); printByte(nötr); gecikme(1000); printByte(kaşlarını); gecikme(1000); printEduc8s(); lc.clearDisplay(0); gecikme(1000); } geçersiz printEduc8s() { printByte(e); gecikme(1000); printByte(d); gecikme(1000); printByte(u); gecikme(1000); printByte(c); gecikme(1000); printByte(sekiz); gecikme(1000); printByte(lar); gecikme(1000); printByte(nokta); gecikme(1000); printByte(c); gecikme(1000); printByte(o); gecikme(1000); printByte(m); gecikme(1000); } void printByte(bayt karakter ) { int i = 0; for(i=0;i<8;i++) { lc.setRow(0, i, karakter); } }

ve 64 LED'in tümünü test etme kodu

//Her zaman #include "LedControl.h" kitaplığını dahil etmeliyiz

/*

Şimdi çalışmak için bir LedControl'e ihtiyacımız var. ***** Bu pin numaraları muhtemelen donanımınızla çalışmayacaktır ***** pin 12 DataIn'e bağlı pin 10 CLK'ye pin 11 LOAD'a bağlı elimizde sadece tek bir MAX72XX var. */ LedControl lc=LedControl(12, 11, 10, 1);

/* ekran güncellemeleri arasında her zaman biraz bekleriz */

imzasız uzun gecikme süresi=100;

geçersiz kurulum() {

/* MAX72XX başlangıçta güç tasarrufu modunda, bir uyandırma çağrısı yapmamız gerekiyor */ lc.shutdown(0, false); /* Parlaklığı orta değerlere ayarlayın */ lc.setIntensity(0, 8); /* ve ekranı temizle */ lc.clearDisplay(0); }

/*

Bu yöntem, matris üzerinde birbiri ardına "Arduino" kelimesinin karakterlerini gösterecektir. (tüm karakterleri görebilmek için en az 5x7 led gerekir) */ void writeArduinoOnMatrix() { /* karakterlerin verileri burada */ byte a[5]={B01111110, B10001000, B10001000, B10001000, B01111110}; 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};

/* şimdi onları küçük bir gecikmeyle tek tek göster */

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]); gecikme (gecikme süresi); 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]); gecikme (gecikme süresi); 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]); gecikme (gecikme süresi); 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]); gecikme (gecikme süresi); 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]); gecikme (gecikme süresi); 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]); gecikme (gecikme süresi); 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]); gecikme (gecikme süresi); 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); gecikme (gecikme süresi); }

/*

Bu fonksiyon arka arkaya birkaç Led yakar. Desen her satırda tekrarlanacaktır. Desen, satır numarasıyla birlikte yanıp sönecektir. 4. satır (index==3) 4 kez yanıp sönecek vs. */ void rows() { for(int row=0;row<8;row++) { delay(delaytime); lc.setRow(0, satır, B10100000); gecikme (gecikme süresi); lc.setRow(0, satır, (bayt)0); for(int i=0;i

/*

Bu fonksiyon, bir sütundaki bazı Ledleri yakar. Desen her sütunda tekrarlanacaktır. Desen, sütun numarasıyla birlikte yanıp sönecektir. 4 numaralı sütun (index==3) 4 kez yanıp sönecek vb. */ void column() { for(int col=0;col<8;col++) { delay(delaytime); lc.setColumn(0, sütun, B10100000); gecikme (gecikme süresi); lc.setColumn(0, col, (byte)0); for(int i=0;i

/*

Bu fonksiyon matris üzerindeki her Led'i yakar. Led, sıra numarası ile birlikte yanıp sönecektir. 4 numaralı satır (index==3) 4 kez yanıp söner vb. */ void single() { for(int row=0;row<8;row++) { for(int col=0;col<8;col++) { gecikme (gecikme süresi); lc.setLed(0, satır, sütun, doğru); gecikme (gecikme süresi); for(int i=0;i

boşluk döngüsü () {

writeArduinoOnMatrix(); satırlar(); sütunlar(); bekar(); }

Adım 6: Çıktı

Image
Image
Çıktı
Çıktı
Çıktı
Çıktı
Çıktı
Çıktı

Videonun tamamını buradan izleyin:-MAX7219 8x8 LED MATRIX MONTAJ VE ARDUINO kullanarak TEST

Peki tüm bu sıkı çalışma, sonucu gördüğünüzde kesinlikle oldukça iyi sonuç veriyor. Buna değer !!

Youtube kanalıma abone olun:-Creative Stuff

Önerilen: