Merhabalar, bu yazımda bir C# LCD Simülator Uygulaması vereceğim. Bu uygulamayı sıfırdan ben yapmadım. Var olan bir projeyi aldım ve biraz değişiklik yaptım. Hoşuma giden bir proje olduğu içinde paylaşmak istedim. Yazının sonunda kaynağı görebilirsiniz. C# konusunda yapacak fazla şey bulamadığım için artık farklı farklı şeyleri denemeye başladım. Zamanla çok daha ilginç ve farklı konularla yazılarıma devam edeceğim. Verdiğim kaynağın proje kodlarına ulaşılamamaktadır.
C# LCD Simülator Uygulaması
Ekran görüntüsü aşağıdaki gibidir.
textbox’a yazdığımız harfleri yukarıdaki kareleri yani ledleri boyayarak yazıyor. Aslında boyamıyor textbox’un yanındaki picturebox’ları led olarak kullanarak yeniden ayarlıyor diyebiliriz. Burada harfleri yazabilmemiz için 8×8 lik 2 boyutlu diziler kullanıyoruz. 8×8 olmasının sebebi ise yukarıdaki görselde gördüğünüz led alanında dikeyde 8 kare kullanmış olmamızdır.
Öncelikle 8×8 dizi içerisinde bir harfin görüntüsünü oluşturmamız gerekiyor. Örneğin A harfine bakalım.
public static int[,] A() { return new int[8, 8]{ {0,0,1,1,1,1,0,0}, {0,1,0,0,0,0,1,0}, {0,1,0,0,0,0,1,0}, {0,1,0,0,0,0,1,0}, {0,1,1,1,1,1,1,0}, {0,1,0,0,0,0,1,0}, {0,1,0,0,0,0,1,0}, {0,1,0,0,0,0,1,0}}; }
Yukarıdaki diziye baktığımızda yukarıdaki led alanı gibi duruyor değil mi? Bu dizideki 1 ler yukarıdaki led alanında yeşil renkle gösterildiğinde A harfi yazılmış oluyor. Şuanda projede tüm harfler yer almaktadır.
Şimdi proje kodlarına geçelim.
Led alanının hazırlanması…
void EkranGetir() { ekransatir = new PictureBox[8, 80]; int xpos = 0; int ypos = 20; int width = 8; int height = 8; for (int i = 0; i < 8; i++) { for (int j = 0; j < 80; j++) { ekransatir[i, j] = new PictureBox(); panel1.Controls.Add(ekransatir[i, j]); ekransatir[i, j].Image = led0.Image; ekransatir[i, j].SetBounds(xpos, ypos, width, height); ekransatir[i, j].Show(); xpos += 8; } xpos = 0; ypos += 8; } }
8×8 piksel ile mevcut (gri renkli) picturebox”u kullanarak led alanını hazırladık.
public void yaz() { int gonder = 0; int i, j; char[] gelen = textBox1.Text.ToUpper().ToCharArray(); for (i = 0, j = 0; i < gelen.Length && j < gelen.Length; i++, j++) { harfyaz(gonder, gelen[j]); gonder += 8; } }
Bu metot ile textbox’a yazılan kelimedeki harfleri bir array list’e alıyoruz. Bu liste ile bir döngü kurup, harfyaz metodunu çalıştırıyoruz. Parametre olarak da harf genişlik değerini (yani 8 pixel/kare/led) ve sıradaki harfi gönderiyoruz .
public void harfyaz(int a, char c) { int x = a; harfsec(c); for (int i = 0; i < 8; i++) { x = a; for (int j = 0; j < 8; j++) { if (Harf[i, j] == 1) { ekransatir[i, x].Image = led1.Image; } else if (Harf[i, j] == 0) { ekransatir[i, x].Image = led0.Image; } x++; } } }
harfyaz metodu ile gelen harf bilgisi ile Harf.cs dosyasındaki ilgili harfin 8×8 lik dizisini alıyoruz. Aldığımız harf dizisindeki 1 değerlerini, ekran yaz metodunda da kullandığımız ekransatir dizisindeki karşılığını yeşil picturebox ile değiştiriyoruz. 8×8 lik dizideki 0 olan alanları da gri picturebox ile değiştiriyoruz. Böylece harfi yazmış oluyoruz.
int[,] Harf; public void harfsec(char karakter) { switch (karakter) { case 'A': Harf = Harfler.A(); break; case 'B': Harf = Harfler.B(); break; case 'C': Harf = Harfler.C(); break; case 'D': Harf = Harfler.D(); break; case 'E': Harf = Harfler.E(); break; case 'F': Harf = Harfler.F(); break; case 'G': Harf = Harfler.G(); break; case 'H': Harf = Harfler.H(); break; case 'I': Harf = Harfler.I(); break; case 'J': Harf = Harfler.J(); break; case 'K': Harf = Harfler.K(); break; case 'L': Harf = Harfler.L(); break; case 'M': Harf = Harfler.M(); break; case 'N': Harf = Harfler.N(); break; case 'O': Harf = Harfler.O(); break; case 'P': Harf = Harfler.P(); break; case 'R': Harf = Harfler.R(); break; case 'S': Harf = Harfler.S(); break; case 'T': Harf = Harfler.T(); break; case 'U': Harf = Harfler.U(); break; case 'V': Harf = Harfler.V(); break; case 'Y': Harf = Harfler.Y(); break; case 'Z': Harf = Harfler.Z(); break; } }
Bu metot ile de textbox’a yazılan her harf için belirlenmiş olan diziyi alıyoruz. Aldığım projede sadece A harfi vardı. Diğer harfleri ben hazırladım. Eğer size rakamlar vs de lazım olursa yukarıdaki mantıkla hazırlayabilirsiniz.
C# LCD Simülator Uygulaması yazımda bu kadar arkadaşlar. Diğer yazılarımda görüşmek üzere. Umarım faydalı olmuştur. Aşağıdaki linklerden eğitim seti sayfasına ve github projesine ulaşabilirsiniz.
C Sharp Eğitim Seti eğitimi sayfasına gitmek için tıklayınız. Derslerime özel olarak hazırladığım Github Projeme buradan ulaşabilirsiniz… Bu projenin Github sayfasına buradan ulaşabilirsiniz.
Sağlıcakla ve kodla kalın….