Arduino ile 8×8 LED Matrix Uygulaması

İnternet üzerinde mevcut 8×8 led matrix projelerini incelediğimizde çoğu yazar MAX7219 kullanarak devrelerini oluşturulmuş. Bu makalede ise Arduino ile 8×8 LED matrix 74HC595 entegresi kullanılarak arduino uygulaması oluşturulacaktır. 8×8 led matrix hakkında sitemiz içerisinde detaylı bilgi verilmiştir. Led matrix bacak yapısı hakkında bilgilerini tazelemek için led matrix yazımızı okumanız devreyi oluştururken size fayda sağlayacaktır.

Arduino led matrix
Arduino ile 8×8 Led Matrix Uygulaması

Uygulama için Gerekli Malzemeler

  • 2x 74HC595 (Shift Register)
  • 8×8 Katot Led Matrix
  • Arduino
  • Bağlantı kabloları
  • Breadboard (2 Adet yada büyük boy Breadboard)

Arduino ile 8×8 Led Matrix Devre Bağlantısı

Aşağıdaki bağlantı şemasında 2 adet 74HC595 entegresi mevcut bu entegreler Led Matrix’i sürmemize yardımcı entegrelerdir. Entegrelerin birisi satır diğeri ise sütunları kontrol etmektedir. 74HC595 çalışma prensibini hatırlatacak olursak. Entegreye SHCP, STCP, DS  bacaklarına palsler (5V) göndererek entegrenin çıkış gerilimlerini belirliyoruz. Bu palslerin gönderimi içinde Arduino uno kullanılmaktadır. 13, 12 ve 11 pinler birinci 74HC595 entegresinin SHCP, STCP, DS bacaklarına; 7, 6 ve 5 pinler ilede ikinci 74HC595 entegresinin SHCP, STCP, DS bacaklarına bağlanmıştır. Bu sayede arduino programlamasına göre çıkışlarımızı ayarlamış olacağız. Bu şekilde arduinodan gelecek çıkış bilgileri ile 74HC595 aracılığı ile 8×8 led matrix sürmüş olacağız 74HC595 (shift register) entegresini ait bilgiyi sitemiz içerisindeki elektronik malzeme bilgisi kategorisinde arama yaparak bulabilirsiniz.

Arduino 8x8 Led Matrix Bağlantı Şeması

Arduino ile 8×8 Led Matrix Devre Bağlantı Şeması

Arduino ile 8×8 Led Matrix Kodları

int latchPin = 12; //Bacak Bağlantısı birinci 74HC595 için ST_CP
int clockPin = 13; //Bacak Bağlantısı birinci 74HC595 için SH_CP
int dataPin = 11; //Bacak Bağlantısı birinci 74HC595 için DS
int latchPin2 = 6; //Bacak Bağlantısı ikinci 74HC595 için ST_CP
int clockPin2 = 7; //Bacak Bağlantısı ikinci 74HC595 için ST_CP
int dataPin2 = 5; //Bacak Bağlantısı ikinci 74HC595 için ST_CP
int i=0,j=0,k=0,length_of_cathode_decimal_array, cathode_decimal_value=0;
int two_multiple=1;
int length_of_two_d_array=8;
int anode_decimal[]={1, 2, 4, 8, 16, 32, 64, 128};
int cathode_decimal[8];
int text_to_display[8][8]={
{0, 0, 1, 1, 1, 1, 0, 0},
{0, 1, 0, 0, 0, 0, 1, 0},
{1, 0, 1, 0, 0, 1, 0, 1},
{1, 0, 0, 0, 0, 0, 0, 1},
{1, 0, 1, 0, 0, 1, 0, 1},
{1, 0, 0, 1, 1, 0, 0, 1},
{0, 1, 0, 0, 0, 0, 1, 0},
{0, 0, 1, 1, 1, 1, 0, 0}
};
void setup() {
pinMode(latchPin, OUTPUT);
pinMode(clockPin, OUTPUT);
pinMode(dataPin, OUTPUT);
pinMode(latchPin2, OUTPUT);
pinMode(clockPin2, OUTPUT);
pinMode(dataPin2, OUTPUT);
for(j=0;j<length_of_two_d_array;j++)
{
for(i=0;i<8;i++) { if(text_to_display[i][j]==0) { if(i>0)
{
for(k=0;k<i;k++)
{
two_multiple=two_multiple * 2;
}
}
cathode_decimal_value=cathode_decimal_value + two_multiple;
two_multiple=1;
}
}
cathode_decimal[j]=cathode_decimal_value;
cathode_decimal_value=0;
}
}
void loop() {
for(k=0;k<7;k++)
{
for(j=0;j<8;j++)
{
for(i=0;i<5;i++)
{
digitalWrite(latchPin, LOW);
shiftOut(dataPin, clockPin, MSBFIRST, anode_decimal[j]);
digitalWrite(latchPin, HIGH);
digitalWrite(latchPin2, LOW);
shiftOut(dataPin2, clockPin2, MSBFIRST, cathode_decimal[j]);
digitalWrite(latchPin2, HIGH);
}
digitalWrite(latchPin, LOW);
shiftOut(dataPin, clockPin, MSBFIRST, 0);
digitalWrite(latchPin, HIGH);
digitalWrite(latchPin2, LOW);
shiftOut(dataPin2, clockPin2, MSBFIRST, 255);
digitalWrite(latchPin2, HIGH);
}
}
}

Arduino 8×8 LED Matrix Kodlarını Dosya Olarak İndirebilirsiniz.

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

This site uses Akismet to reduce spam. Learn how your comment data is processed.