Yüreyen Led Simülasyonu

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
delphiciadayi
Üye
Mesajlar: 10
Kayıt: 23 May 2014 04:16

Yüreyen Led Simülasyonu

Mesaj gönderen delphiciadayi »

Arkadaşlar öncelikle merhaba.6 Led'den oluşan yürüyen simülasyon yapacağım.Yol gösterebilecek olan arkadaş var mı?Editler ve timerları nasıl kullanacağım?Teşekkürler
Kullanıcı avatarı
mrmarman
Üye
Mesajlar: 4740
Kayıt: 09 Ara 2003 08:13
Konum: İstanbul
İletişim:

Re: Yüreyen Led Simülasyonu

Mesaj gönderen mrmarman »

Bu bir okul ödevi sanırım. Yardımcı olalım.

ilk aşamada timer'i unutun kafanız karışmasın, bir button koyun ve bu butona her basışta ışık bir hane sola kaysın.

(1) Bir rakamın 0 olduğunda sönük 1 olduğunda yanık olduğunu düşünün.

(2) 6 led ışığını ifade eden 6 haneli bir rakam için 000000 ise tüm ledler sönük olsun, 000001olursa son ışık yanıyor vb. gibi.

(3) Önce string işlemlerini kavramalısınız. Butona her basışta bu 6 haneli rakamın sonuna 0 veya 1 olarak yedinci yeni bir hane ekleyecek, en baştaki birinci haneyi sileceksiniz. Geriye daima sadece 6 hane kalacak. Bu size sağdan sola kayan 1 rakamını sağlayacaktır.

(4) artık sıra, sona 0 mı yoksa 1 mi ekleneceği kararına geliyor. Bir sayacın 6 ve katları olduğu zamanlarda 1 diğer zamanlarda 0 eklerseniz bu istediğinize de kavuşmuş olursunuz. Bu da matematikte 6'ya kalansız yani tam bölünen sayılarda 1 diğer sayılarda 0 demektir.

Buraya kadar bir yapın kodlarınızı görelim devamı gelecek.
Resim
Resim ....Resim
Kullanıcı avatarı
SimaWB
Üye
Mesajlar: 1316
Kayıt: 07 May 2009 10:42
Konum: İstanbul
İletişim:

Re: Yüreyen Led Simülasyonu

Mesaj gönderen SimaWB »

mrmarman yazdı:Bu bir okul ödevi sanırım. Yardımcı olalım.

ilk aşamada timer'i unutun kafanız karışmasın, bir button koyun ve bu butona her basışta ışık bir hane sola kaysın.

(1) Bir rakamın 0 olduğunda sönük 1 olduğunda yanık olduğunu düşünün.

(2) 6 led ışığını ifade eden 6 haneli bir rakam için 000000 ise tüm ledler sönük olsun, 000001olursa son ışık yanıyor vb. gibi.

(3) Önce string işlemlerini kavramalısınız. Butona her basışta bu 6 haneli rakamın sonuna 0 veya 1 olarak yedinci yeni bir hane ekleyecek, en baştaki birinci haneyi sileceksiniz. Geriye daima sadece 6 hane kalacak. Bu size sağdan sola kayan 1 rakamını sağlayacaktır.

(4) artık sıra, sona 0 mı yoksa 1 mi ekleneceği kararına geliyor. Bir sayacın 6 ve katları olduğu zamanlarda 1 diğer zamanlarda 0 eklerseniz bu istediğinize de kavuşmuş olursunuz. Bu da matematikte 6'ya kalansız yani tam bölünen sayılarda 1 diğer sayılarda 0 demektir.

Buraya kadar bir yapın kodlarınızı görelim devamı gelecek.
Tebrikler :bravo:
"Nasıl yardımcı olunur?" sorusuna dört dörtlük cevap :bravo:
There's no place like 127.0.0.1
cmkare
Üye
Mesajlar: 177
Kayıt: 23 Ağu 2010 11:29

Re: Yüreyen Led Simülasyonu

Mesaj gönderen cmkare »

Bunun için raize componentinin içinde LEDDisplay var. işinize yarayabilir.
delphiciadayi
Üye
Mesajlar: 10
Kayıt: 23 May 2014 04:16

Re: Yüreyen Led Simülasyonu

Mesaj gönderen delphiciadayi »

mrmarman yazdı:Bu bir okul ödevi sanırım. Yardımcı olalım.

ilk aşamada timer'i unutun kafanız karışmasın, bir button koyun ve bu butona her basışta ışık bir hane sola kaysın.

(1) Bir rakamın 0 olduğunda sönük 1 olduğunda yanık olduğunu düşünün.

(2) 6 led ışığını ifade eden 6 haneli bir rakam için 000000 ise tüm ledler sönük olsun, 000001olursa son ışık yanıyor vb. gibi.

(3) Önce string işlemlerini kavramalısınız. Butona her basışta bu 6 haneli rakamın sonuna 0 veya 1 olarak yedinci yeni bir hane ekleyecek, en baştaki birinci haneyi sileceksiniz. Geriye daima sadece 6 hane kalacak. Bu size sağdan sola kayan 1 rakamını sağlayacaktır.

(4) artık sıra, sona 0 mı yoksa 1 mi ekleneceği kararına geliyor. Bir sayacın 6 ve katları olduğu zamanlarda 1 diğer zamanlarda 0 eklerseniz bu istediğinize de kavuşmuş olursunuz. Bu da matematikte 6'ya kalansız yani tam bölünen sayılarda 1 diğer sayılarda 0 demektir.

Buraya kadar bir yapın kodlarınızı görelim devamı gelecek.
hocam harikasınız dediğiniz yere kadar yaptım şuan tek bi sorun var buttonun onclick yordamında button.click1 button.click2 şeklinde click6 ya kadar yaptım ama bunları nasıl sırayla değiştireceğimi yapamadım.Yani butona ilk tıklandığında button1.click sonraki tıklandığında button1.click2 şeklinde devam ettiremedim.
ödev sorusuda şöyle""En az 6 led’den oluşan yürüyen ışık simulasyon programının yazılması. (Not: Yürüyen ışık devresi Start, stop, hızlı, yavaş ve ters yön butonlarına sahip olacaktır""
Kullanıcı avatarı
mrmarman
Üye
Mesajlar: 4740
Kayıt: 09 Ara 2003 08:13
Konum: İstanbul
İletişim:

Re: Yüreyen Led Simülasyonu

Mesaj gönderen mrmarman »

Yanlış anlaşıldı. Sadece (1) tek butona basınca adımlayacak bir sistem olacaktı. Siz 6 adet buton yaptığınızı ifade ettiniz.

Anlatmaya çalıştığım akış şöyle olacaktı...:

(1) Bir sayaç olacak adı iSayac olsun. Bu sayaç 1'den başlayıp devam edecek. Dilersen bu bir saatin saniyesi ile ilişkili olur maksimumu önemsizdir, dilersen led sayısı kadar olur. Karar sana ait.

(2) Bir string değişken olacak. Adı strLedler olsun. İçeriği led sayısı kadar 0'dan ibaret olacak. Dilersen son hanesi 1 olabilir. Bunun kararı da sana ait.

(3) Bir tek buton olacak, her basışta bu iSayac değerine 1 ekleyecek. Ardından da iSayac'ın daha önce söylediğim metod ile led sayısı olan 6'nın katı olup olmadığını sorgulayacaksınız.

ipucu vereyim :

Kod: Tümünü seç

if iSayac MOD 6 = 0 then begin { 6'nın katı olduğunu anladık.} end;
(4) Bu led sayısına ulaşıldığında strLedler değişkenini ilk değer olan led sayısı kadar 0 olan hale veya dilersen de en sonuncusu 1 olan hale geri döndüreceksiniz.

(5) Henüz led sayısına ulaşılmadıysa strLedler := strLedler + '0'; deyip karakter sayısı led sayı limitin üzerine çıkan strLedler string değişkenindeki ilk harfi sileceksiniz ki yine led sayısı kadar rakam kalsın.

Buraya kadar olan kısmı koda dökebilirsen devam edicem.
Resim
Resim ....Resim
delphiciadayi
Üye
Mesajlar: 10
Kayıt: 23 May 2014 04:16

Re: Yüreyen Led Simülasyonu

Mesaj gönderen delphiciadayi »

mrmarman yazdı:Yanlış anlaşıldı. Sadece (1) tek butona basınca adımlayacak bir sistem olacaktı. Siz 6 adet buton yaptığınızı ifade ettiniz.

Anlatmaya çalıştığım akış şöyle olacaktı...:

(1) Bir sayaç olacak adı iSayac olsun. Bu sayaç 1'den başlayıp devam edecek. Dilersen bu bir saatin saniyesi ile ilişkili olur maksimumu önemsizdir, dilersen led sayısı kadar olur. Karar sana ait.

(2) Bir string değişken olacak. Adı strLedler olsun. İçeriği led sayısı kadar 0'dan ibaret olacak. Dilersen son hanesi 1 olabilir. Bunun kararı da sana ait.

(3) Bir tek buton olacak, her basışta bu iSayac değerine 1 ekleyecek. Ardından da iSayac'ın daha önce söylediğim metod ile led sayısı olan 6'nın katı olup olmadığını sorgulayacaksınız.

ipucu vereyim :

Kod: Tümünü seç

if iSayac MOD 6 = 0 then begin { 6'nın katı olduğunu anladık.} end;
(4) Bu led sayısına ulaşıldığında strLedler değişkenini ilk değer olan led sayısı kadar 0 olan hale veya dilersen de en sonuncusu 1 olan hale geri döndüreceksiniz.

(5) Henüz led sayısına ulaşılmadıysa strLedler := strLedler + '0'; deyip karakter sayısı led sayı limitin üzerine çıkan strLedler string değişkenindeki ilk harfi sileceksiniz ki yine led sayısı kadar rakam kalsın.

Buraya kadar olan kısmı koda dökebilirsen devam edicem.
hocam ilginizden dolayı çok teşekkür ederim.Tek buton olayını anladım sadece Buton ikinci kez tıklanıldığını koda dökemedim.
procedure TForm1.Button1Click(Sender: TObject);
begin
Ledler:=000000;
if Ledler=000000 then Ledler:=100000;
if Ledler=100000 then edit1.Color:=clLime; {normal renk green}. burdan sonra ledler:=100000 010000 olacak bu sefer edit1.color:=clGreen; edit2.color ise clLime; bunu yaptığımda da arada zaman farkı olmadığından bilgisayar çok hızlı işletip direk edit2 yi yakıyor.Başa döndürme olayını for dodöngüsüyle isayac ile yaparsamda o zaman Ledler değişkenini 100000 010000 001000 000100 000010 000001 şeklinde nasıl değiştiricem
Kullanıcı avatarı
xozcanx
Üye
Mesajlar: 362
Kayıt: 05 Oca 2012 12:55

Re: Yüreyen Led Simülasyonu

Mesaj gönderen xozcanx »

Merhaba;
Ekte bulunan dosyada bir .exe var sizin yapmak istediğiniz bu tarz bir uygulama mıdır.
Eğer bu şekilde ise yöntem olarak yine Muharrem hocamızın gösterdiği yöntem üzerinden devam edin neyin nasıl olduğunu kavramış olursunuz. istediğiniz sonucu vermese de kodları burada paylaşmaya özen gösterin. En azından sonuca gitmeyen bir yolu göstermiş/paylaşmış olursunuz. :wink:
Dosya ekleri
Project1.rar
Yürüyen Led
(218.43 KiB) 212 kere indirildi
Nasibinde varsa, alırsın karıncadan bile ders, Nasibinde yoksa, bütün cihan önüne serilse, sana ters..
delphiciadayi
Üye
Mesajlar: 10
Kayıt: 23 May 2014 04:16

Re: Yüreyen Led Simülasyonu

Mesaj gönderen delphiciadayi »

xozcanx yazdı:Merhaba;
Ekte bulunan dosyada bir .exe var sizin yapmak istediğiniz bu tarz bir uygulama mıdır.
Eğer bu şekilde ise yöntem olarak yine Muharrem hocamızın gösterdiği yöntem üzerinden devam edin neyin nasıl olduğunu kavramış olursunuz. istediğiniz sonucu vermese de kodları burada paylaşmaya özen gösterin. En azından sonuca gitmeyen bir yolu göstermiş/paylaşmış olursunuz. :wink:
Hocam amacım bunu yapmak istediğim program tam olarak bu çok teşekkür ederim takıldığım yerlerde muharrem hocamla birlikte size danışırım teşekkür ederim
Kullanıcı avatarı
mrmarman
Üye
Mesajlar: 4740
Kayıt: 09 Ara 2003 08:13
Konum: İstanbul
İletişim:

Re: Yüreyen Led Simülasyonu

Mesaj gönderen mrmarman »

:lol:
Resim
Resim ....Resim
Kullanıcı avatarı
xozcanx
Üye
Mesajlar: 362
Kayıt: 05 Oca 2012 12:55

Re: Yüreyen Led Simülasyonu

Mesaj gönderen xozcanx »

Anlaşılan Exe uygulaması ile olayın kod akışını çözdünüz!
Nasibinde varsa, alırsın karıncadan bile ders, Nasibinde yoksa, bütün cihan önüne serilse, sana ters..
delphiciadayi
Üye
Mesajlar: 10
Kayıt: 23 May 2014 04:16

Re: Yüreyen Led Simülasyonu

Mesaj gönderen delphiciadayi »

xozcanx yazdı:Anlaşılan Exe uygulaması ile olayın kod akışını çözdünüz!
Hocam sadece derdimi doğru anlatabildim diye mutlu oldum.Zaten amacım bunu yapmak diye belirttim orada.Kod derdim olsaydı baştan belirtirdim.Görsel açıdan fikir verdi.
cmkare
Üye
Mesajlar: 177
Kayıt: 23 Ağu 2010 11:29

Re: Yüreyen Led Simülasyonu

Mesaj gönderen cmkare »

ozaman rzLEDDisplay kullansaydın hiç bu kadar uğraşmazdın.
Kullanıcı avatarı
xozcanx
Üye
Mesajlar: 362
Kayıt: 05 Oca 2012 12:55

Re: Yüreyen Led Simülasyonu

Mesaj gönderen xozcanx »

Projenizin son durumu nedir, Sonucu burada belirtirseniz buradaki hocalarımız ona göre hareket eder ve yardımcı olmaya çalışır. Projenizi de bitirdiyseniz kodlarıda burada paylaşırsanız, sizden sonra bir başkasına da lazım olabilir, takıldığı nokta olabilir, sizin paylaşımınız sayesinde sorununu çözmüş olmuş, Bunu size karşı yapılan bir uyarı vs. gibi algılamayın. Her ne olursa tüm yapılan görüşmeler/yazışmalar karşılıklı saygı çerçevesinde olmalıdır.
Başarılar,, ;)
Nasibinde varsa, alırsın karıncadan bile ders, Nasibinde yoksa, bütün cihan önüne serilse, sana ters..
Lord_Ares
Üye
Mesajlar: 1070
Kayıt: 15 Eki 2006 04:33
Konum: Çorlu

Re: Yüreyen Led Simülasyonu

Mesaj gönderen Lord_Ares »

xozcanx yazdı:Merhaba;
Ekte bulunan dosyada bir .exe var sizin yapmak istediğiniz bu tarz bir uygulama mıdır.
Eğer bu şekilde ise yöntem olarak yine Muharrem hocamızın gösterdiği yöntem üzerinden devam edin neyin nasıl olduğunu kavramış olursunuz. istediğiniz sonucu vermese de kodları burada paylaşmaya özen gösterin. En azından sonuca gitmeyen bir yolu göstermiş/paylaşmış olursunuz. :wink:
Merhaba Ekteki örnek bozulmuş mümkünse tekrar paylaşabilirmisin.
Cevapla