1000 TL Üzeri Alışverişlerde Ücretsiz Kargo ve Türkiye'nin Her Yerine 59,90₺

Arduino 8x8 Dot Matrix Modülü Kullanımı - MAX7219 | Robocombo

Arduino 8x8 Dot Matrix Modülü Kullanımı - MAX7219 | Robocombo

Arduino Meraklıları Merhaba, Bu yazımızda arduino ile 8x8 dot matrix modülü max7219 kullanımı nasıl yapılır inceleyeceğiz. Dot Matrixler aslında sürekli karşılaştığımız ama tanımadığımız elemanlardan biri olarak karşımıza çıkıyor. Şöyle ki bakkallardan marketlere,oto sanayiden kasaplara kadar hemen her dükkanın üstünde artık bu teknoloji kullanılıyor. Tabi ki 8x8 dot matrix değil .😊  

 

MAX7219 Kısa Bir Bakış


Şimdi MAX7219 modülüne daha yakından bakalım. 8x8 dot matrix, Arduino ile iletişim için sadece 3 kablo kullanırken 64 ayrı LED'i çalıştırabilir ve dahası, birden fazla sürücüyü ve matrisleri papatya dizimi yapabilir ve bunu yaparken yine aynı 3 kabloyu kullanırız.

64 LED, İşlemcinin 16 çıkış pimi tarafından kontrol edilir. LED'ler 8×8 sıra ve sütun olarak düzenlenmiştir. Böylece MAX7219 dot matrix modülünün her bir sütunu çok kısa bir süre için etkinleştirir ve aynı zamanda her satırı da çalıştırır. Böylece sütunlar ve sıralar arasında hızla geçiş yaptığı için insan gözü sadece sürekli bir ışık görecektir.

 

 

Ortak bir 8×8 dot matrixin pimlerinin nasıl düzenlendiğine dikkat edin.

 

Arduino ile Dot Matrix Kullanımı için Gerekli Malzemeler

 

Dot Matrix Uygulama

Alfabedeki harfleri yazdıran bir uygulama yapalım istedim. Önceden belirteyim bağlantıları yapmak biraz zaman alacaktır. Sabretmeden başaramazsınız .😉  

 

 

Devre çizimi

Gördüğünüz gibi anlatmaya gerek yok müke... Neyse bu espri trend değil artık😉   Eğer ki kablolamayı başardıysanız buyurunuz siz bu kodları hak ettiniz . Kod bloğunu incelemenizi tavsiye ederim. Düzenleyerek kendi istediğiniz şekilleri çıkartabilirsiniz. Belki de kendinize bir sembol oluşturabilirsiniz. Kolay gelsin diyorum.    

 

 

Arduino 8x8 Dot Matrix Kullanımı için Gerekli Kodlar


#define ROW_1 2
#define ROW_2 3
#define ROW_3 4
#define ROW_4 5
#define ROW_5 6
#define ROW_6 7
#define ROW_7 8
#define ROW_8 9
#define COL_1 10
#define COL_2 11
#define COL_3 12
#define COL_4 13
#define COL_5 A0
#define COL_6 A1
#define COL_7 A2
#define COL_8 A3

const byte rows[] = {
    ROW_1, ROW_2, ROW_3, ROW_4, ROW_5, ROW_6, ROW_7, ROW_8
};
// (1 = ON, 0 = OFF)

byte TODOS[] = {B11111111,B11111111,B11111111,B11111111,B11111111,B11111111,B11111111,B11111111};
byte EX[] = {B00000000,B00010000,B00010000,B00010000,B00010000,B00000000,B00010000,B00000000};
byte A[] = {B00000000,B00011000,B00100100,B00100100,B00111100,B00100100,B00100100,B00000000};
byte B[] = {B01111000,B01001000,B01001000,B01110000,B01001000,B01000100,B01000100,B01111100};
byte C[] = {B00000000,B00011110,B00100000,B01000000,B01000000,B01000000,B00100000,B00011110};
byte D[] = {B00000000,B00111000,B00100100,B00100010,B00100010,B00100100,B00111000,B00000000};
byte E[] = {B00000000,B00111100,B00100000,B00111000,B00100000,B00100000,B00111100,B00000000};
byte F[] = {B00000000,B00111100,B00100000,B00111000,B00100000,B00100000,B00100000,B00000000};
byte G[] = {B00000000,B00111110,B00100000,B00100000,B00101110,B00100010,B00111110,B00000000};
byte H[] = {B00000000,B00100100,B00100100,B00111100,B00100100,B00100100,B00100100,B00000000};
byte I[] = {B00000000,B00111000,B00010000,B00010000,B00010000,B00010000,B00111000,B00000000};
byte J[] = {B00000000,B00011100,B00001000,B00001000,B00001000,B00101000,B00111000,B00000000};
byte K[] = {B00000000,B00100100,B00101000,B00110000,B00101000,B00100100,B00100100,B00000000};
byte L[] = {B00000000,B00100000,B00100000,B00100000,B00100000,B00100000,B00111100,B00000000};
byte M[] = {B00000000,B00000000,B01000100,B10101010,B10010010,B10000010,B10000010,B00000000};
byte N[] = {B00000000,B00100010,B00110010,B00101010,B00100110,B00100010,B00000000,B00000000};
byte O[] = {B00000000,B00111100,B01000010,B01000010,B01000010,B01000010,B00111100,B00000000};
byte P[] = {B00000000,B00111000,B00100100,B00100100,B00111000,B00100000,B00100000,B00000000};
byte Q[] = {B00000000,B00111100,B01000010,B01000010,B01000010,B01000110,B00111110,B00000001};
byte R[] = {B00000000,B00111000,B00100100,B00100100,B00111000,B00100100,B00100100,B00000000};
byte S[] = {B00000000,B00111100,B00100000,B00111100,B00000100,B00000100,B00111100,B00000000};
byte T[] = {B00000000,B01111100,B00010000,B00010000,B00010000,B00010000,B00010000,B00000000};
byte U[] = {B00000000,B01000010,B01000010,B01000010,B01000010,B00100100,B00011000,B00000000};
byte V[] = {B00000000,B00100010,B00100010,B00100010,B00010100,B00010100,B00001000,B00000000};
byte W[] = {B00000000,B10000010,B10010010,B01010100,B01010100,B00101000,B00000000,B00000000};
byte X[] = {B00000000,B01000010,B00100100,B00011000,B00011000,B00100100,B01000010,B00000000};
byte Y[] = {B00000000,B01000100,B00101000,B00010000,B00010000,B00010000,B00010000,B00000000};
byte Z[] = {B00000000,B00111100,B00000100,B00001000,B00010000,B00100000,B00111100,B00000000};
float timeCount = 0;
void setup() {
    // Serial haberleşmeyi başlatıyoruz.
    Serial.begin(9600);   
    // Tüm pinler Çıkış pini olarak ayarlandı
    // Pinler giriş olsaydı, ekran çok kısık olacaktı.
    for (byte i = 2; i <= 13; i++)
        pinMode(i, OUTPUT);
    pinMode(A0, OUTPUT);
    pinMode(A1, OUTPUT);
    pinMode(A2, OUTPUT);
    pinMode(A3, OUTPUT);
}
void loop() {

delay(5);// daha parlak gözüksün diye bekleme var 
timeCount += 1;
if(timeCount <  70) {
drawScreen(A);
} else if (timeCount <  1) { // do nothing
} else if (timeCount <  150) {
drawScreen(R);
} else if (timeCount <  1) {// nothing
} else if (timeCount <  270) {
drawScreen(D);
} else if (timeCount <  1) {// nothing
} else if (timeCount <  350) {
drawScreen(U);
} else if (timeCount <  1) {// nothing
} else if (timeCount <  430) {
drawScreen(I);
} else if (timeCount <  1) {// nothing
} else if (timeCount <  510) {
drawScreen(N);
} else if (timeCount <  1) {
  
} else if (timeCount <  550) {
  drawScreen(O);
} else if (timeCount <  1) {// do nothing
} else if (timeCount <  590) {
drawScreen(EX);
} else if (timeCount <  1) {// nothing
} else if (timeCount <  630) {
drawScreen(EX);
} else if (timeCount <  1) {

//} else if (timeCount <  670) {
//drawScreen(A);
//} else if (timeCount <  1) {

//} else if (timeCount <  710) {
//drawScreen(R);
//} else if (timeCount <  1) {

//} else if (timeCount <  750) {
//drawScreen(D);
//} else if (timeCount <  1) {

//} else if (timeCount <  790) {
//drawScreen(U);
//} else if (timeCount <  1) {

//} else if (timeCount <  830) {
//drawScreen(I);
//} else if (timeCount <  1) {

//} else if (timeCount <  870) {

//} else if (timeCount <  1) {
  
//} else if (timeCount <  910) {
//  drawScreen(O);
//} else if (timeCount <  1) {

} else {
// starta geri dön
timeCount = 0;
}
}
 void  drawScreen(byte buffer2[]){
     
    
   // serideki tüm dizileri "ON" moduna getiriyoruz.
    for (byte i = 0; i < 8; i++) {
        setColumns(buffer2[i]); // c
        
        digitalWrite(rows[i], HIGH);
        delay(2); // Çoklama efektini görmek istiyorsanız bunu 50 veya 100 olarak ayarlayabilirsiniz

        digitalWrite(rows[i], LOW);
        
    }
}


void setColumns(byte b) {
    digitalWrite(COL_1, (~b >> 0) & 0x01); // 1. bit: 10000000
    digitalWrite(COL_2, (~b >> 1) & 0x01); // 2. bit: 01000000
    digitalWrite(COL_3, (~b >> 2) & 0x01); // 3. bit: 00100000
    digitalWrite(COL_4, (~b >> 3) & 0x01); // 4. bit: 00010000
    digitalWrite(COL_5, (~b >> 4) & 0x01); // 5. bit: 00001000
    digitalWrite(COL_6, (~b >> 5) & 0x01); // 6. bit: 00000100
    digitalWrite(COL_7, (~b >> 6) & 0x01); // 7. bit: 00000010
    digitalWrite(COL_8, (~b >> 7) & 0x01); // 8. bit: 00000001
    
    // Eğer matrisinizin polaritesi benimkinin tersi ise yukarıdaki '~' yi kaldırın.
}

Gerekli malzemeleri buradan temin etmenizi öneririm piyasayı az çok biliyorsanız zaten siz de fark edersiniz.  

Eğer Arduino 8x8 Dot Matrix Modülü Kullanımı yazımızı beğendiyseniz, Tüm Yazılarımız ve Projelerimize BURAYA TIKLAYARAK ulaşabilirsiniz.
.

 

Yazımıda Bulunan Ürünleri Robocombo.com Adresinden Satın Alabilirsiniz.

 

Etiketler: Arduino 8×8 Dot Matrix Modülü Kullanımı – MAX7219
Ekim 17, 2021
Listeye dön
cultureSettings.RegionId: 0 cultureSettings.LanguageCode: TR
Çerez Uyarısı

Alışveriş deneyiminizi iyileştirmek için yasal düzenlemelere uygun çerezler (cookies) kullanıyoruz. Detaylı bilgiye Gizlilik ve Çerez Politikası
sayfamızdan erişebilirsiniz.