Not 7: 5×7 Dot Matrix Display Uygulaması

Yayınlandı: 13 Kasım 2011 / Microchip PIC Programlama...
Etiketler:, , , , , , , , , , ,

nümüzde tabela sektörünün en çok kullandığı enstrümanlardan birisi olan kayan yazıların temel bileşeni, dot matrix displayleri inceliyoruz bu yazımızda. Dot matrix display aslında ledlerin yan yana ve alt alta dizilerek paketlendiği elemanlardır. Piyasada genelde 5×7 ve 8×8 olarak bulunmakla beraber çok farklı ebatlarda ve özelliklerde üretilmektedirler.  Bu displaylerin kontrolü ise 7 segment displaylerinki ile  temel olarak aynıdır. Hatırlayacağınız gibi 7 segment displayler birden çok kullanıldığında tarama methodu ile sürülmekteydi. Tarama methodu kullanacağımız pin sayısını azaltmakta , dolaysı ile hem devre karmaşıklığı hem de ekonomi yönünden bize fayda sağlamaktaydı. 7 segment displaylere nazaran dot matrix displaylerin sürülmesi biraz daha kapsamlıdır. Özellikle çok sütunlu uygulamalar tasarlanırken biraz kafa karıştırıcı olabilir.  Biz şimdilik tek bir 5×7 ortak anotlu bir dot matrixi süreceğiz. Unutmadan söyleyelim; dot matrix displayler ortak anod, veya ortak katod şeklinde üretilmektedirler. Ortak anodlu bir dot matrix displayde her sütunda bulunan ledler kendi aralarında anotlarından birbirlerine bağlanmışlardır. Ortak katodlu bir dot matrixde ise her sütundaki ledler kendi aralarında katotlarından bağlanmışlardır. Bunu aşağıdaki şemadan da görebilirsiniz.

ISIS’de 5×7 dot matrix displayler ortak anod olarak tasarlanmışlar. Bu yüzden biz de kendi uygulamamızda ortak anod kullanıyoruz. Dot matrixler sürülürken en önemli şeylerden birisi de display üzerinde göstereceğimiz şekillerin, sayıların, yazıların kodlanmasıdır. Ben ‘A’ harfini göstermek istedim ve ona göre de PORTB’ ye yükleyeceğim değerleri tek tek oluşturdum. Tabi burada dikkat edilmesiş gereken nokta, displayimiz ortak anod olduğundan yakacağımız satıra 0 göndermemiz gerektiğidir. Diyelim ki 1. satır, 1. sütundaki ledi yakmamız gerekiyor o zaman 1. sütuna +5V veriyoruz. 1. sütundaki tüm ledlerin anodlarında +5V var. Şu anda hangi satırdaki ledin katodunu şaseye çekersek o led yanacaktır. Yanmasını istemediğimiz ledlerin katodlarına ise +5V göndermemiz gerekir.

Devre Şeması
Büyütmek için tıklayın.

Bahsedeceğim diğer bir konu ise devrede kullandığım 3’den 8’e kod çözücü entegresi olan 74HC238dir. Bu entegre, girişlerinden verilen binary sayıya göre (Sıralama MSB’den LSB’ye doğru “C,B,A” şeklinde) çıkışlarını aktif eder. Diyelim ki girişten “010” yani “2” sayısı verildi. O zaman Y2 aktif, diğerleri pasiftir. Sözü fazla uzatmadan uygulamamıza geçelim.

char harf[5]={
0xc0,0xb7,0xb7,0xc0,0xff,//'A' harfinin kodları. Sondaki 0xff bir sütunun boş kalması için
};
char i;
void main()
{
trisb=0;
cmcon=7;
trisa=0;

while(1)
{
for(i=0;i{
PORTB=harf[i];// Sırası ile harf'in sütun sütun kodları PORTB'ye yükleniyor.
PORTA=i;    //PORTA'da hangi sütunun aktif edileceği saydırılıyor.
delay_ms(3);  //Ledlerin  belli bir süre yanması sağlanıyor.
}

}
}

Görüldüğü gibi ‘A’ harfi sütun sütun kodlanmıştır. ISIS simülasyonu harfi hatalı göstermektedir. Fakat gecikme 500ms civarına çekilir ise aslında kodların displayde düzgün görüntülendiği görülebilir. Uygulama simülasyondan gerçek hayata geçirildiğinde ben en yüksek led parlaklığına gecikme değerini 3ms yaptığımda ulaşmıştım.
Son olarak aşağıdaki videoyu izlemenizi öneririm. Gelecek notlarda görüşmek üzere..

Uygulamaya ait tüm dosyalara buradan ulaşabilirsiniz.

yorum
  1. SEDAT dedi ki:

    Hocam bu konuyla ilgili daha komplex bi örnek var mı elinde acaba .. internet te bulamadım

  2. mikrodunya dedi ki:

    Komplex örnekten kastınız nedir?

  3. SEDAT dedi ki:

    tmm hocam not:8 paylaşımının benim için yeteri kadar komplex .. Not:8’i yorumumdan sonra fartk ettim .

    Neyse eline sağlık hocam çook teşekkürler..

  4. onur dedi ki:

    merhaba hocam ben nevsehir hacıbektas myo da ogrenciyim 5×7 matrix led ıle a-z arası harflerı yazdıracagım programı tamam fakat matris bi turlu çalışmıyor degişim görülüyor fakat hepsi çalışıyo bi satırı duruyo felan bu konuda bana yardım edermısınız?

  5. UmutK. dedi ki:

    hocam merhaba. sorum şu, 5×7 display örneğini şu an için yapmaya çalışıyorum. 5×7 bir dot matris display şipariş ettim .Elime ulaştı fakat proteus simulasyonundaki gibi, bi tarafında 5 ayak diğer tarafında 7 ayak yok. her iki taraftada 7 ayak var? Bu durumda ne yapmam gerekiyor?

Bir Cevap Yazın

Aşağıya bilgilerinizi girin veya oturum açmak için bir simgeye tıklayın:

WordPress.com Logosu

WordPress.com hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap / Değiştir )

Twitter resmi

Twitter hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap / Değiştir )

Facebook fotoğrafı

Facebook hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap / Değiştir )

Google+ fotoğrafı

Google+ hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap / Değiştir )

Connecting to %s