Arduino ile 8x8 Matrix Kayan Yazı

Arduino ile 8x8 Matrix Kayan Yazı

Arduino ile 8x8 matris kayan yazı devresini yapacağız. Bu devrede yazılar yukarı doğru kayarak geçiş yapacaktır.Bu devremizin yapılışını adım adım anlatacağız ve istediğimiz çıktıyı verebileceğiz. Bu devremiz çok basit gibi görünsede yapılışı olduğunca zordur. Zor olan kısmı ise led bağlantılarını yapmaktır. Led bağlantılarının yapılır şekli aşağıdaki gibidir :  Burada bacakların önünde hangi numara yazıyorsa arduino üzerinde oraya bağlantımızı yapacağız.

Ledlerin pozitif bacaklarını aşağıdaki gibi bağlıyoruz :

Arduino ile 8x8 Matrix Kayan Yazı Pozitif Bacak Bağlantısı

Ledlerin negatif bacaklarını aşağıdaki gibi bağlıyoruz :

Arduino ile 8x8 Matrix Kayan Yazı Negatif Bacak Bağlantısı

Devremizi Yapmak için Gerekli Malzemeler : 

  • Arduino Uno
  • 64 adet Led
  • Bağlantı Kabloları

Yazılarımızı oluşturmak için gerekli olan karakter seti : 

  24,60,102,126,102,102,102,0,0,0,             // A
  124,102,102,124,102,102,124,0,0,0,           // B
  60,102,96,96,96,102,60,0, 0,0,               // C
  120,108,102,102,102,108,120,0, 0,0,          // D
  126,96,96,120,96,96,126,0, 0,0,              // E
  126,96,96,120,96,96,96,0, 0,0,               // F
  60,102,96,110,102,102,60,0, 0,0,             // G
  102,102,102,126,102,102,102,0, 0,0,          // H
  60,24,24,24,24,24,60,0, 0,0,                 // I
  30,12,12,12,12,108,56,0, 0,0,                // J
  102,108,120,112,120,108,102,0, 0,0,          // K
  96,96,96,96,96,96,126,0, 0,0,                // L
  99,119,127,107,99,99,99,0, 0,0,              // M
  102,118,126,126,110,102,102,0, 0,0,          // N
  60,102,102,102,102,102,60,0, 0,0,            // O
  124,102,102,124,96,96,96,0, 0,0,             // P
  60,102,102,102,102,60,14,0, 0,0,             // Q
  124,102,102,124,120,108,102,0, 0,0,          // R
  60,102,96,60,6,102,60,0, 0,0,                // S
  126,24,24,24,24,24,24,0, 0,0,                // T
  102,102,102,102,102,102,60,0, 0,0,           // U
  102,102,102,102,102,60,24,0, 0,0,            // V
  99,99,99,107,127,119,99,0, 0,0,              // W
  102,102,60,24,60,102,102,0, 0,0,             // X
  102,102,102,60,24,24,24,0, 0,0,              // Y
  126,6,12,24,48,96,126,0, 0,0,                // Z

 

Örneğin: bizim programımızda istediğimiz yazıyı yazmak için AZKOD yazısını yazmak için kullanacağımız kod aşağıdaki gibidir. Sizde bu koda bakarak istediğiniz yazıyı yazabilirsiniz.

// ilk satırda ve son satırda matrixi boş bırakıyoruz. İsterseniz bırakmayabilirsiniz.

char karakter[] = {0,0,0,0,0,0,0,0,0,0,0,
24,60,102,126,102,102,102,0,0,0, 
126,6,12,24,48,96,126,0,0,0,
102,108,120,112,120,108,102,0,0,0,
60,102,102,102,102,102,60,0, 0,0, 
120,108,102,102,102,108,120,0, 0,0,
0,0,0,0,0,0,0,0,0,0,0};

Şimdi Gelelim En önemli Kısma Kod kısmında kaç karakterli yazımız olacağını belirliyoruz. Şuan bizim AZKOD yazdıracağız 5 karakterimiz var birde ilk ve son satırda boş bıraktık yani toplam 7 satırımız var. Biz döngümüzün nereye kadar devam edeceğini satırlarımıza göre belirliyoruz. Döngümüzün kaç olacağı Satır sayısı * 10 - 8 olarak belirlenir. Bizim 7 satırımız vardı yani 7*10-8 = 62 'ye kadar döngümüz devam edecek.

//bu kısım çok önemli yoksa yazınızı yazar ve saçma sapan karakterler çıkabilir. 
 for(int x=0;x<52;x++) //7 satır *10 -8 = 62 
  {……..

 

Arduino ile 8x8 Matrix Kayan Yazı Devresi Kodları : 

char cikis[8] = {8,9,10,11,12,13,A0,A1};
char karakter[] = {0,0,0,0,0,0,0,0,0,0,0,
24,60,102,126,102,102,102,0,0,0, 
126,6,12,24,48,96,126,0,0,0,
102,108,120,112,120,108,102,0,0,0,
60,102,102,102,102,102,60,0, 0,0, 
120,108,102,102,102,108,120,0, 0,0,
0,0,0,0,0,0,0,0,0,0,0};
void setup() 
{
  for (int x=8;x<14;x++)
  {
    pinMode(x, OUTPUT);
  }
  pinMode(A0, OUTPUT);
  pinMode(A1, OUTPUT);
  
  for (int i=0;i<8;i++)
  {
    digitalWrite(cikis[i],HIGH);
  }
  DDRD = 0xFF;
  PORTD =0;
}
void loop() 
{
  for(int x=0;x<52;x++)
  {
    for(int a=0;a<20;a++)
    {
         for (int i=0;i<8;i++)
          { 
             digitalWrite(cikis[i],LOW);
             PORTD = karakter[i+x];
            delay(1);
            digitalWrite(cikis[i],HIGH);
          }    
    }
  }
  delay(1000);
}

 

Önceki Ders: Arduino ile 7 Segment 0-9 Geri Sayıcı Sonraki Ders: Arduino ile Havaya Yazı