Alışveriş merkezinde, dükkanlarda, büfelerde, otobüslerde hatta dolmuşlarda bile gördüğümüz , reklam ve mesaj amaçlı tabelaların belki de en ilgi çekici olanı kayan yazılardır. Dot-matrix displayler kullanılarak yapılan bu tabelaların genelinde dışarıdaki bir PC ile haberleşecek yapıda bir adet mikrodenetleyicili kontrol mekanizması bulunmaktadır. Aşağıda vereceğim şema ve kodları dikkatlice incelemenizi tavsiye ediyorum. Lakin kod satırlarını burada tek tek yazarak anlatmak biraz zor. İşin temel mantığı mesajın bulunduğu diziyi tampon diziye birer eleman sola kaydırarak kopyalamak ve bu tampon diziyi dot matrix displaylere basmaktan ibaret. Unutmadan ekleyeyim kullandığım dot matrix ortak katod. Devre şeması ve kodu hemen paylaşıyorum…
Devrede dikkat edilmesi gereken eleman 74HC154 isimli 4’den 16’ya dekoder entegresi . Bu entegre girişlerine verilen sayıya göre herhangi bir çıkışını aktif eder. Diyelimki girişten binary olarak 5 sayısını girdik. O zaman 5. çıkışı aktif etmektedir. 0 girersek, 0. çıkış aktif olur. Dikkat edilmesi gereken nokta entegre çıkışlarının değillenmiş olmasıdır. Bu da aktif olan çıkışın “0”, pasif olan çıkışın ise “1” seviyesinde olacağı anlamına gelmektedir.
Kodumuz;
const char harf[64]={ 0x00,0x00,0x00,0x00,0x00,//Boşluk 0x00,0x00,0x00,0x00,0x00,//Boşluk 0x00,0x00,0x00,0x00,0x00,//Boşluk 0x7f,0x20,0x10,0x20,0x7f, //'M' harfinin kodları. 0x00,0x11,0x5f,0x11,0x00, //'İ' harfinin kodları. 0x7f,0x08,0x14,0x22,0x41, //'K' harfinin kodları. 0x00, //Boşluk 0x7f,0x48,0x4c,0x4A,0x31, //'R' harfinin kodları. 0x00, //Boşluk 0x3e,0x41,0x41,0x41,0x3e, //'O' harfinin kodları. 0x00,0x00, //Boşluk 0x0e,0x11,0x11,0x11,0x00, //'c' harfinin kodları. 0x00,0x00,0x00,0x00,0x00,//Boşluk 0x00,0x00,0x00,0x00,0x00,//Boşluk 0x00,0x00,0x00,0x00,0x00,//Boşluk }; char dizi[15]; char j=0,a=14,h,k; signed char i=0; //****************************************************************** //****************************************************************** void goster() { for(k=0;k<5;k++) //Hız ayarı (Düşürdükçe hızlanır) { for(h=0;h<15;h++) { PORTA=15; // Düzgün gözükmesi için sütunu söndürmek gerekiyor. 7 yüklememin sebebi tüm sütunları söndürmek. PORTB=dizi[h];// Sırası ile harf'in sütun sütun kodları PORTB'ye yükleniyor. PORTA=h; //PORTA'da hangi sütunun aktif edileceği saydırılıyor. delay_ms(3); //Ledlerin belli bir süre yanması sağlanıyor. } } } //****************************************************************** //****************************************************************** void main() { trisb=0; cmcon=7; trisa=0; portb=0; while(1) { for(i=14;i<=0;i--) //harf katarını dizi katarına aktarmak için kullanılan döngü.. { // Her seferinde dizi katarının değişkenlerini bir sola kaydırarak aktarır. dizi[i]=harf[a-j]; j++; } goster(); a++; j=0; if(a==64)a=14; //eğer a değeri "harf" katarının boyunu aşmışsa a değerini 14 yap. } }
Devrenin çalışan hali; (Breadboardda kablo karmaşası yaşadığım için 2 adet 5×7 display kullandım.)
Konu ile ilgili bütün kaynakları buradan indirebilirsiniz.
Bu notumu da başarı ile bitirdiğime göre artık biraz keyfime bakabilirim…
Sorularınızı aşağıdaki iletişim kısmından iletebilirsiniz. İyi çalışmalar..
Hocam pic16f628a’da yaklaşık iki kelimeden fazla kayan yazı uygulaması yapmaya çalıştığımda “Not enough ram” hatası alıyorum.Bunu aşmanın bir yolu varmı yoksa Ram hafızası daha fazla olan bi pic mi kullanmalıyım..
Şimdiden Teşekkürler..
Harf dizisini tanımlarken “const char dizi[x]=……..” şeklinde tanımlarsanız problem olmaz.
8×8 Dot Matrix ile kayan yazı yapacağım yazılımı ile ilgili yardımcı olabilir misiniz?
Satir taramali kayan yazi uygulamasina bakmanizi tavsiye ederim. Bu sitede var.
Çok sağolasın hocam.. Problem çözüldü..
öncelikle paylaşım güzel teşekkürler ama derlemeye çalıştığıtmda
PORTA
PORTB
PORTA
trisb
cmcon
trisa
PORTB HAtaları karşıma cıkıyor bu kod ccs mi ?
Hayır CCS ile değil. MikroC ile yazdım, eski versiyonu ile. Not 1’den ulaşabilirsiniz programın setup dosyasına.
peki hocam bu 35 ledi pic ile nasıl besleyeceğiz ? tamam isis te çalışırda pic in bacağından maksimum 20 mA çekebiliyoruz , bunu nasıl çözeriz?
Sütun tarama yönteminde (bu yazıda anlatılan yöntem) sütunlar tek tek tarandığı için her led yeterli akımı almaktadır. Satır tarama yönteminde ise tüm satır aynı anda yandığı için sütun sayısı arttıkça çekilen akımda artacaktır. bu sorunu çözebilmek için ULN2003 gibi entegreler veya mosfetler kullanılabilir. Sütun tarama yöntenminde ise herhangi bir sürücüye gerek yok. Şekildeki devrenin aynısı, videosunu izlediğiniz devre.
PIC e bilgisayarda yazdığınız programın adı ne
mikroc
dotmatrix sayısını nasıl artırabiliriz mikro c ile yazıldığı belli oluyor zaten emeğinize sağlık
Uzun yazılar için satır taramalı kayan yazı sistemini öneririm.
burdaki program sütun taramalı olarak çalışıyor emeğinize sağlık cevap için çok teşekkür ederim
Ben de teşekkür ederim iyi çalışmalar.
KOD patlak çalımıyo
Sanırım yanlış birşeyler yapıyorsunuz. Vermiş olduğum rar dosyasını indirip deneyebilirsiniz.
Hocam bu devreyi aynen isis-proteus’da kurdum fakat şöyle bişey oldu. dikey çubuklar soldan sağa doğru kaymaya başladılar. Tamam scrolling olayını anladım da burada harfleri görmemiz gerekirdi. Siz bunun aynısını yapıp çalışıtğını söylüyorsunuz. İnşallah ben hata yapıyorumdur fakat defalarca kurdum devreyei en baştan. Amacım bunun doğru çalıştığından emin olduktan sonra ledler kendim bağlayıp büyük bir tabela tasarlamak.(buna ilişkin olarak mikro cile yazılmış bir proje de yok).Cevabınız için teşekkür ederim.
Yukarıdaki mikro c kodunda bi sorun var. Ben bu gönderdiğiniz ccs c ile yapılmış kodun çalıştığını gördüm ve fakat mikro c ye aşinayım. mikro c ye yönelik yazılan koddaki sorunu çözmeniz mümkün mü?
Gönderdiğim kod MikroC ve çalışıyor. Simülasyonda da çalışıyor. Dün test ettim indirip. Pratikte de çalışıyor.
paylaşımınız çalııyor hiç bir sorun yok elinize sağlık yararlı bir paylaşım
(5×7 Dot Matrix) sayısını artırmak istiyorum mesela 10 tane (5×7 Dot Matrix) ısis devresi ….
ek olarak tarıhtır sıcaklıktır ..okuduğumuz sensörleri ,kayan yazı kodları ile nasıl birleştirebiliriz
anlatıtığım şekılde bir çalışma yapabilirmisiniz
Yakın zamanda böyle bir çalışma yapmayacağım. Daha uzun yazılar yazmak istiyorsanız satır taramalı kayan yazı ile ilgili yazıma bakabilirsiniz.
öncelikle paylaşım güzel teşekkürler ama derlemeye çalıştığıtmda
PORTA
PORTB
PORTA
trisb
cmcon
tris
bu hatayı alıyorum nasıl duzeltebılırm
proje dosyanızı gönderin bakalım hocam.
sızdekı projenın aynısı hocam
proje dosyanızı bana gönderin.
#include
#use delay(clock=4000000)
#fuses xt
char harf[63]={
0x00,0x00,0x00,0x00,0x00,//Boşluk
0x00,0x00,0x00,0x00,0x00,//Boşluk
0x00,0x00,0x00,0x00,0x00,//Boşluk
0x7f,0x20,0x10,0x20,0x7f, //’M’ harfinin kodları.
0x00,0x11,0x5f,0x11,0x00, //’İ’ harfinin kodları.
0x7f,0x08,0x14,0x22,0x41, //’K’ harfinin kodları.
0x00, //Boşluk
0x7f,0x48,0x4c,0x4A,0x31, //’R’ harfinin kodları.
0x00, //Boşluk
0x3e,0x41,0x41,0x41,0x3e, //’O’ harfinin kodları.
0x00, //Boşluk
0x3e,0x7f,0x63,0x63,0x36, //’C’ harfinin kodları.
0x00,0x00,0x00,0x00,0x00,//Boşluk
0x00,0x00,0x00,0x00,0x00,//Boşluk
0x00,0x00,0x00,0x00,0x00,//Boşluk
};
char dizi[15];
char j=0,a=14,h,k;
signed char i=0;
//******************************************************************
//******************************************************************
void goster()
{
for(k=0;k<5;k++) //Hız ayarı (Düşürdükçe hızlanır)
{
for(h=0;h=0;i–) //harf katarını dizi katarına aktarmak için kullanılan döngü..
{ // Her seferinde dizi katarının değişkenlerini bir sola kaydırarak aktarır.
dizi[i]=harf[a-j];
j++;
}
goster();
a++;
j=0;
if(a==63)a=14; //eğer a değeri “harf” katarının boyunu aşmışsa a değerini 14 yap.
}
}
Bu proje mikroC projesi değil. Diğer derleyicilerde ayarlamaların nasıl yapıldığı hakkına fikrim yok.
Merhabalar, piyasadaki led ışıklar sanırım “Dot Matrix” dediğimiz şey değil.Piyasada kullanılan p10 diye adı geçen 32*16’lık olanları nasıl kullanabileceğiz, proteusta da bulamadım.Yardımcı olursan sevinirim.
p10 panellerin sürülmesi bildiğimiz dot matrix displaylere göre farklılık gösterir. P10 paneller ile ilgili linkler;
http://www.picproje.org/index.php/topic,44253.0.html
http://etepic.com/index.php?topic=1061.0
ne projesı bu
Sanirim ccs c
dırenc kullandınız mı devrede
Tarama çok hızlı olduğu için gerek kalmıyor.
devreyı kurdum matrix hep yanıyor
Ortak anot mu katod mu kullandiniz matrisi?
ortak anot
ortak katot kullandım hallettım ilgilendıgın ıcın saol
devreyi de ccs diline cevrdım ısteyen olursa atayım
Bu programin cssne nasil ulasirim frekanstan dolayi galiba dengesiz sekilde ledler yaniyo katot matrix kulandim bide ust 7 bacak alt giris 5 bacak son iki bosta
slm hocam ben devrede ortak anot matris kullanacam programda ne gibi değişiklik yapmak lazım.
sadece programda değil, devrede de değişiklik yapmanız gerekir. 74547 entegrelerini değiştirmeniz gerekir.
bu devreyi yapmak istiyorum elimde 8*8lik iki tane dotmatrix display var aynı işlemci ve entegrenin sonunda e harfi var bu kod 8*8 çevrilirmi elimdeki işlemci bunu destekler mi kaç voltla beslediniz ya da bi 5*7 lik display alsam yeter mi
ares çiziminde hata veriyor e postaya çizimi yollayabilirmisiniz
7.10 versiyonunu kullaniniz.
hocam bendeki 4 matrix var matrix in 16 bacagı var ve ikisi ortak anot ikisi ortak katot buna uygun bir devre verebilirmisiniz
hocam çizgi izleyen robot eklerseniz çok memnun olurum
hocam devreyi yaptım ancak kelime ne kadar uzun olursa ledlerde titremeler oluyor dahili osilatör kullandığımda daha da belli oluyor öneriniz nedir?
Satir taramali kayan yazi devresini oneririm.
zaten hocam hc595 ile yapılan satır taramalı devrenizi yaptım onda öyle bir sıkıntı var
Hangi Mcu’yu kullanıyorsunuz? Mesela MCU’yu 18f2550 seçerek 48MHz hızda çalıştırıp bu problemden kurtulabilirsiniz.
16f628 kullanıyorum ama bu problemi bu işlemcide çözemezmiyiz
Bu işlemciyle çözülmez zira problem hız problemi.
hocam adam gibi bir MikroC poğramı lazım bana bi link paylaşabilirmisiniz?
Elinize sağlık. Bir elektronik amatörüyüm. C ile yazılmış, işime yaramadı ama, çok hoş bir devre hazırlanmış. Böyle bir bilgiyi paylaştığınız için tebrik ediyorum. Başarı dileklerimle. Sağlıcakla kalın.
Güzel yorumunuz için ben de teşekkür ederim.
Saygılar.
Hocalarım ben basic dili ile kendimi gelistirmekteyim kayan yazı devresi yapmak istiyorum paylastiginiz gibi acaba basic hali varmidir bu kodun nasil yardimci olabilirsiniz bana
Merhaba ben assembly dilini yeni öğrenmeye başladım. Burada dosyyayı indirip içindeki asm kodunu mplap a gecirdiğimde birçok hata alıyorum.Neler eksik tam çözmedim. Bu projeyi yapmak istiyorum. Rica etsem mailime assembly kodunu tekrar gönderebilirmisiniz
hocam sizin bu devrenin malzeme listesine nerden ulaşabiliriz acaba ?