PIC 120 LEDli hareketli LED uygulaması yardım

Başlatan wadaa, 30 Kasım 2009, 19:54:23

wadaa

arkadaşlar forumda ve PIC devrelerde yeniyim. Hazırladığım bir devrede 120 LED'den oluşuyor. 4 BÖlümden oluşuyor. İlk bölümde Hareket başlıyor ikinci bölüme kadar. İkinci bölümde butona basılınca ilk bölümdeki hareket duracak ikinci bölümdeki hareket başlayacak..bu şekilde 4 bölümden oluşuyor. Elimde 16F877 var. Tek mikro denetleyici ile böyle bir devre nasıl yapılabilir. Mümkünse Proteusta örnek olabilecek bir çizim gönderebilirmisiniz. Şimdiden teşekkür ederim

wadaa

yokmu fikir verebilecek yada yardım edebilecek :(

fatihkuzucu

4 butondan gelen ucları 4 pine girersin. 4 tane ayrı pinden cıkan uclarıda 4 transistorü sürmek için kullanırsın. hangi butondandan uyarı gelirse ona ait cıkıs pinini aktif edip  baglı oldugu transistoru sürersin ve o bölümün ledleri calısmaya baslayabilir. 877 nin geri kalan uclarınıda ledleri sürmek için kullanacaksın.
Exp.Kits http://tinyurl.com/3qhs8pm   Küçük adamların, küçük fikirleri... Büyük adamların, büyük hayalleri...

bigbey

1. bölüm işini bitirince 2. bölüm yanmaya başlayacak bu arada 1. bölüm yanıkmı sönük'mü kalacak.
ledler nasıl bir düzende yanacak. 100 led aynı andamı yanacak. senaryo nasıl olacak.
TA6R

wadaa




arkadaşlar yukarıdaki resim acemice hazırlanmış ilk bakışta bu ne işe yarar dedirten bir deney resmi. deneyin işleyişini resim üzerinde anlatmaya çalışacağım. Öncelikle devre parça parça değil sadece alan sıkıntısından resimde parça parça gözüküyor. Ayrıca her butona basıldığında kendinden önceki butonlar inaktif konuma getiriyor yani kendinden önceki LED lerin hareketi duruyor. Yazıları rahat görülmesi için yeşil kare içerisine aldım.

Sistem şu şekilde:

BTN A'ya basıldığında A bölümdeki ledler 3'erli hareket ediyor. Bölümün sonuna gelindiğinde 5sn falan bekleyip tekrar başa dönüyor BTN B'ye basılana kadar.

BTN B'ye basıldığında A bölümündeki hareket duruyor ve B1, B2, B3 bölümündeki LEDler birerli hareket ediyor. Yine aynı şekilde BTN C'ye basılana kadar hareket devam ediyor.

BTN C'ye basıldığında B bölümlerindeki hareket duruyor C1, C2 ve C3 bölümlerindeki LEDler aynı anda birerli hareket ediyor. BTN D'ye basılana kadar hareket devam ediyor.

BTN D'ye basılınca C bölümlerindeki hareket duruyor ve D1, D2 ve D3 te bulunan LEDler birerli hareket ediyor. BTN E'ye basılana kadar hareket devam ediyor.

BTN E'ye basıldığında önce Kırmızı LEDler 3erli hareket ediyor. Kırmızı LEDler 2 tur atınca Mavi LEDler Kırmızıların peşinden 3erli hareket ediyor.Bu şekilde 4 tur atıyor. Yani 3 mavi LED 3 Kırmızı LEDin peşinden 4 tur koşuyor:) BTN F'ye basılana kadar hareket bu şekilde devam ediyor.

BTN F'ye basılınca E'deki hareket duruyor ve F'de önde 3 Kırmızı arkada 3 Mavi hareket ediyor.  Hareket BTN G'ye basılana kadar devam ediyor.

BTN G'ye basılınca F'deki hareket duruyor ve G'deki LEDler önde Kırmızı arkada Mavi LEDler olmak üzere 3erli hareket ediyor. F bölümünden farkı burada hız F bölümündeki hızın 2 katına çıkıyor.BTN H'ye basılana kadar devam ediyor.

BTN H'ye basılınca G'deki hareket duruyor ve H1de Kırmızı H2de Mavi LEDler 3erli hareket ediyor. BTN I'ya basılınca hareket duruyor.

BTN I'ya basılınca I1 de Kırmızı I2 de Mavi LEDler 3erli hareket ediyor. BTN K'ya basılınca I1 ve I2 deki hareket duruyor ve K Bölümlerindeki Beyaz LEDler aynı anda 15 sn yanıyor ve devre tamamlanıyor.  BTN L fazla olmuş onu dikkate almayın arkadaşlar.

NOT: Her bölümde LEDlerin hızı bir önceki bölümün iki katına çıkıyor.

Arkadaşlar bu devrede yapmaya çalıştığımız şey CERN'de yapılan LHC deneyini simüle etmek amacıyla yapılıyor. Kimsenin emeği üzerinden dersten geçme derdinde değilim. Bu deneyi tamamladığımda emeği geçen herkese isimleri ile teşekkür edilerek emekleri belirtilecek ve tabi forumun ismide geçecek. Önemsiz bir ayrıntı gibi görülebilir ama emeğe saygı. Bunda ciddiyim. Proje bitince formu burda yayınlarım. PIC devrelerle yada elektronikle ilgili hiçbir deneyimim yada çalışmam olmadı. C programlama bilgim var. Ama bu devreyle birlikte merakım daha da arttı. O yüzden bu devreyi yaparken öğrenmek ve inşallah okul bittiğinde mesleğimde (Fen Bilgisi Öğretmenliği) etkin bir şekilde yararlanmak istiyorum. Çünkü alanımda bir çok konu bu şekilde deneysel olarak çok daha rahat anlatılabilir. Bu kadar yazmamım sebebi amacımın bilginizi yada emeğinizi sömürmek olmadığını anlatabilmek.

Bu şekilde bir devreyi bana Proteusta çizebilecek bir arkadaş olursa sevinirim. Proteus'u da bu sayede kullanmaya başladım :) Ayrıca yardımcı olan arkadaşlar ad soyad ve meslek bilgilerini bana gönderirseler sevinirim. Proje formunda yazabilmek için.

Herkese teşekkür ederim

bigbey

çizdiğiniz resim açılmıyor. resmi detaylı görüntülenebilir durumda yükleyebilirmisiniz.
toplam led sayısı 120 adet mi? yoksa herbir fonksiyonda 120'şer mi?
TA6R

wadaa

ya özür dilerim yanlış linki kopyalamışım. LED toplamda 123 adet.

bigbey

TA6R

wadaa

hocam çok teşekkür ederim...bu akşam üzerinde çalışacağım.

wadaa

Hocam sayende devre konusunda yeterince bilgilendim. Size belki çok basit geliyordur ama benim gibi hiç bilgisi olmayan biri için karışık gibiydi ama mantığı anlayabiliyorum artık. Bi sorum ve birde isteğim olacak eğer fazla olmazsam. Soru şu: entegrenin girişini işlemcide B5 B6 ve B7 portlarına bağlamışsın. Bende 16F877A işlemci var. Bağlayacağım port farkedermi. Ricam ise bana hazırladığın devrenin yürüyen led olarak c ile kodlarını yazabilirmisin. İşlemciden entegreyi nasıl yönlendirdiğini görebilmek için.

Herşey için çok teşekkürler...

bigbey

Burada port'u nereye bağlanması gerektiğinin çok önemi yok.
pinlerden biri saat darbeleri (clock pulses) 2. veri (data)  3. aktif etmek (latch enable)
sen istediğin herhangi bir çıkış yapabilen pinleri kullanabilirsin.

Bu bağlantı SPI haberleşmesi için kullanılıyor.
Ben Assembler kullanıyorum.
aslında işlem basit...........Şunu yapacaksın.
göndermek istediğin data'nın bitlerini her bir clock darbesinde pic'ten 74595'e yollayacaksın data yollama işi bitince latch enable ucunu logic (0)  (1) yapacaksın gönderdiğin tüm bilgiler74595 lerin çıkında belirecek.
TA6R

wadaa

en sonunca yüzsüzlükten kovulacam sanırım. hocam verdiğin devre sayesinde çizimi hallettim. Birkaç gündür Assembly çalışıyorum. Zaten çalışacaktım bari bu sayede öğrenmek istedim. Eğer yüzsüzlüğe girmeyecekse assembly ile hazırlanmış kodu yazabilirmisin rica etsem. En güzel öğrenme şekli inceleyerek oluyor. tekrar tekrar teşekkür ediyorum.

bigbey

@wadaa,
Yapmış olduğun çizimi buraya koy. o çizim üzerinde modül modül çalışalım.
TA6R

wadaa

Hocam çizim oldukça acemi oldu. İlk defa yaptığım bi çizim. sanırım doğrudur. Verdiğim resimle çizim arasında bi kaç değişiklik var onları yazacağım. Ayrıca bazı yerlerde ortak anot kullandım. Mesela resimde Buton B'ye basılınca B1, B2 ve B3'de 1er led hareket edecek. Bende İlk Ledlerin anot uclarını birleştirdim ve tek bir porta bağladım. İkinci Ledleri de kendi içinde aynı şekilde yaptım. Hocam şemayı inceleyip hatalarımı yazabilirsen sevinirim.

Yapılan değişiklik şöyle:
Devrenin başlangıcına bir bölüm eklendi. Bu bölümde butona basılınca (devrede BTN A ile gösteriliyor) ilk olarak sarı LEDler yanacak bir süre sonra sarı LEDler sönecek ve kırmızılar yanacak. Daha donraki hareket BTN B'ye basınca devam edecek.
http://rapidshare.com/files/318145447/CERN_SHEMA.DSN

wadaa

74HC595 ile örnek yürüyen LED uygulaması için C kodlarını yazacak kimse varmı. Hala çözemedim :(  kızmayın lütfen...sadece örnek olması için. elimde küçük bir örnek olsa gerisini hallederim. Lütfen. son 2 günüm kaldı