Yüreyen Led Simülasyonu
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
-
- Üye
- Mesajlar: 10
- Kayıt: 23 May 2014 04:16
Yüreyen Led Simülasyonu
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
Re: Yüreyen Led Simülasyonu
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.
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.
Re: Yüreyen Led Simülasyonu
Tebriklermrmarman 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.
"Nasıl yardımcı olunur?" sorusuna dört dörtlük cevap
There's no place like 127.0.0.1
Re: Yüreyen Led Simülasyonu
Bunun için raize componentinin içinde LEDDisplay var. işinize yarayabilir.
-
- Üye
- Mesajlar: 10
- Kayıt: 23 May 2014 04:16
Re: Yüreyen Led Simülasyonu
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.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.
ö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""
Re: Yüreyen Led Simülasyonu
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 :
(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.
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;
(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.
-
- Üye
- Mesajlar: 10
- Kayıt: 23 May 2014 04:16
Re: Yüreyen Led Simülasyonu
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.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 :(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.Kod: Tümünü seç
if iSayac MOD 6 = 0 then begin { 6'nın katı olduğunu anladık.} end;
(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.
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
Re: Yüreyen Led Simülasyonu
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.
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.
- 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..
-
- Üye
- Mesajlar: 10
- Kayıt: 23 May 2014 04:16
Re: Yüreyen Led Simülasyonu
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 ederimxozcanx 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.
Re: Yüreyen Led Simülasyonu
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..
-
- Üye
- Mesajlar: 10
- Kayıt: 23 May 2014 04:16
Re: Yüreyen Led Simülasyonu
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.xozcanx yazdı:Anlaşılan Exe uygulaması ile olayın kod akışını çözdünüz!
Re: Yüreyen Led Simülasyonu
ozaman rzLEDDisplay kullansaydın hiç bu kadar uğraşmazdın.
Re: Yüreyen Led Simülasyonu
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,,
Başarılar,,
Nasibinde varsa, alırsın karıncadan bile ders, Nasibinde yoksa, bütün cihan önüne serilse, sana ters..
Re: Yüreyen Led Simülasyonu
Merhaba Ekteki örnek bozulmuş mümkünse tekrar paylaşabilirmisin.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.