TM1637 İLE SAYICI

Başlatan muyat, 30 Aralık 2019, 10:45:46

muyat

TM1637 4 Karakter 7 digit ekranla sayıcı yapmak istiyorum...
Yapmak istedigim şey 0-3000 ms arası saydırmak.Artır-asagı ile sayması istenen sayı belirlencek.Başlata basınca led yanıcak ve saydırsın istiyorum. Tabi belirlenen en son deger artır-azalt tuşuna tekrar basılmadıgı sürece hafızada kalcak..
Programla ilgili proteus dosyasını çizdim,proton dosyası ise basicle benzer oldugu için ekledim ..TM1637'nin basit sürüm şekliyle ilgili de bir dosya buldum.Fakat bunu kendi yapmak istedigime henuz uyarlayamadım...
Yardımcı olur musunuz.

ete

Bayılıyorum bu Çinlilerin hazırladığı data sheetlere okuyrsun okuyorsun bir şey anlamıyorsun. Anlar gibi oluyorsun ama tam tamına anlamak zor oluyor her nedense.
Bu aleti tam olarak çözemedim maalesef. Bir yandan diyor, Seri haberleşiyor ama I2C ile tam uyumlu değil çünki Slave adresi kullanılmıyor. Ama ACK yapıyor diyor.

Ete

muyat

Hocam ben bir haftadır inceliyorum proton dosyasını...
Seri haberleşme değil de sırayla bitleri kaydırarak yerleştirip ekrana görüntü geliyor.

Mesela ekledigim proton dosyasında tanımlamalar aşagıdaki gibi.Toplam 6 grid varken nede 7 kez saydırmış onu anlamadım.

Dim GRID_0 As $C0   ; %11000000 GRID0çıkış adresi 
Dim GRID_1 As $C1   ; %11000001 GRID1çıkış adresi
Dim GRID_2 As $C2   ; %11000010 GRID2çıkış adresi   
Dim GRID_3 As $C3   ; %11000011 GRID3çıkış adresi
Dim GRID_4 As $C4   ; %11000100 GRID4 çıkış adresi
Dim GRID_5 As $C5   ; %11000101 GRID5 çıkış adresi 

 surulen_bitler = GRID_0

For dongu_cikis = 0 To 7   
      Low CLK
      DIO = surulen_bitler.0      ''' data pinine surulen_bitler 'in 0. bitini yükle
      Nop              ''' mcu hızı düşük ve bekleme gerekmiyorsa bunu sil
        High CLK
        surulen_bitler = surulen_bitler >> 1   ''' 1 bit saga kayar      
   Next

ete

Bu verdiğin kod açıkçası seri bilgi yollamanın manuel yapılmasından başka bir şey değil.
Her bir clk palsinde bir Surulen_Bitler isimli değişkenin birer biti yollanıyor.
Ama bu kadar eziyete ne gerek var. Shiftout da aynı işi sorunsuz yapar zaten.
Benim takıldığım konu işin bu kısmı değil. display de mesela 2 rakamını göstermek için ne yapmalıyım. Bana kalırsa sende buradan yürü. Manuel de olsa bir byte yolladıktan sonra birde ACK kontrolü yapman gerek. Ancak bu şekilde yollanan bilginin alınıp alınmadığından emin olabilirsin.
Data sheet söylemiş nasıl olacağını.
Ben üretici olsam bir segment de en azından bir rakamın nasıl gösterileceğini adım senaryosu ile gösterirdim. Adamlar karma karışık bir anlatımla bir şeyler anlatmışlar ama ancak kendileri anlıyorlardır. Çözülmez demiyorum ama sürekli eşelemen ve uğraşman gerekiyor çözmek için. Doğru dürüst açıklasalar bir okumada anlar ve uygulayabilirdik. İnsanın bir ssürü işi olunca bir entegre ile bu kadar uğraşmak istemiyor doğrusu. SOnra neden bu entegre ile uğraşıyorsun? çokmu lazım hem kolay değil hemde çok büyük bir fayda sağlayacağınıda sanmıyorum.

Ete

muyat

Hocam bunun avantajı şu olcak..
tm1637 İnternette 4 pinli ekran şeklinde satılıyor.Pinlerden 2 tanesi besleme ucu.Diger ikisinden bilgi aktarılıyor.
Durum böyle olunca baskı devrede kapladıgı yer azalıyor..
Diger türlü önceki açtıgım konuda 4 haneli sayıcı ile yaparsam  işlemci de yeteri kadar pin kalmıyor.Ve mecburen bir büyük işlemciye geçmem gerekiyor.Veya shiftout kullanırsam da pcb büyüyor.
O nedenle bununla ugraşıyorum günlerdir.Yapabilirsem burda paylaşırım.

POWER

#5
Bir ara bu modüllerden bende almıştım.Elimde bu modülün sürülmesine temel teşkil edebilecek proğramı paylaşıyorum.Proğram bana ait değildir.şimdi hangi site olduğunu hatırlayamadım ama formdan arkadaşlar yardımcı olmuştu.iş yoğunluğundan bende fazla uğraşamadım.belki işinize yarar çözüm bulursunuz.

ete

Bu program data sheet den daha fazla bilgi verdi bana.
Biraz inceledim ve onu PBP ya çevirdim. Bazı yerlerini dahada kısalttım özellikle Byte yazma işlemini döngü kurarak değilde direk shiftout komutu ile yaptım.
İlişiktedir.

ete

muyat

Hocam siz bunu nasıl derlediniz?Basic sürümüyle mi ilgili acaba
Sigorta ayarları kısmında hata veriyor.
Sigorta ayarlarınının başına @ işareti koyunca  ve #config ve #endconfig isimli satırları silince derliyor.Bu şekilde derlesek olur değil mi?

ete

Olur elbette. Benim derlediğim 3.1 sürümü. Eski sürümlerde sigorta ayarları senin dediğin gibi yapılıyor.
Ete

opan2000

ETE hocam istediğim tek şey ısı sensöründen aldığım değeri bu modüle göndermek ve 7 segment display de göstermek. Çok teşekkür ederim paylaştığınız PBP kodunda biraz inceleme yaptım ama işim içinden çıkamadım yardımınızı bekliyorum. 

ete

Böyle genel anlamda yardım isteyince elimden bir şey gelmiyor maalesef. Ortaya bir şey koymamışsın. Sana yardım etmek için program mı yazayım? umarım bunu istemiyorundur.
TM1637 kullanılması epeyce zor olan bir modül. Zorluk bir sürü teferruatının olmasından kaynaklanıyor. Ancak bir kütüphane oluşturursanız ana programda kullanım nispeten basit oluyor.

Programlama bilgin ne seviyede bilemiyorum. Bu yazılanlardan bir şey anlamadığına göre bilgin pek yok gibi gözüküyor.

Bu durumda sana nasıl yardım edebileceğimi sen söyle bakalım. ALternatifleri ben söyleyeyim.

- Benden hazır program istersin. Onu yapmak için ortaya bir şema koyarsın şemaya göre program oluştururum. Ama bunu yaparmıyım bilemiyorum. Çünki pronsiplerime pek uymuyr maalesef.
- Sana bir kütüphane veririm. Birde sıcaklığı nasıl modül'e vereceğini açıklarım kendin programı yazarsın. Elbette bu iş de o kadar kolay değil. Kütüphane spesifik bir işlemciye göre yazılmış sen onu kendi işlemcine dönüştürmen lazım. Çok zor bir iş değil tabiiki bilene. Örnek kütüphanede LAT komutları kullanılmış senin işlemcinde LAT komutu yok ise onlaro PORT komutlarına dönüştürmen lazım gibi.

Şimdi sen söylemen lazım bilgi seviyen nedir? yada benden istedğin tam olarak nedir.

Ete

ahmet_zxc

Alıntı yapılan: ete - 30 Aralık 2019, 15:32:51Bayılıyorum bu Çinlilerin hazırladığı data sheetlere okuyrsun okuyorsun bir şey anlamıyorsun. Anlar gibi oluyorsun ama tam tamına anlamak zor oluyor her nedense.
Bu aleti tam olarak çözemedim maalesef. Bir yandan diyor, Seri haberleşiyor ama I2C ile tam uyumlu değil çünki Slave adresi kullanılmıyor. Ama ACK yapıyor diyor.

Ete

hocam kopyaladıkları entegrenin datasheet ini de kopyalıyorlar :-)
entegrede işlerine göre değişiklik yapıyorlar datasheet geriden geliyor bu sıkıntı ondan,
yani kopyala yapıştır hatası :-))))

Powered by EzPortal