transistör çıkışlı saat devresi

Başlatan ~ENES~, 08 Kasım 2012, 21:07:13

~ENES~

hocam afıınıza sığınarak bir devre rica ediyorum yapmış  olduğunuz saat devrelerinin hepsi bir sürücü entegre ile displeyler sürülmüş benim soracağım acaba bu sürücüler kaldırılıp yerine transistör yapamaz mıyız hem daha az maliyet olur hemde daha kolay devre olmuş olur kafamda şöyle bir devre var 16f628 ile yapılacak displaylerin abcdefg ucları ortak olacak transistör ile işlemciye girecek herbir displayı seçmek için ise her displeyin ortak ucu ayrı ayrı ( 4 adet 7 segment display olacağı için 4 adet ortak uc ) yine işlemciye girecek 16f628de kaldı 2 çıkış 1. çıkışa ısı sensör bilgisi ikinci çıkışa da rtc saat bilgisi girilse tamamen çıkışlar yetiyor böyle veya buna benzer mantıkta bir devre önerirseniz sevinirim hayırlı çalışmalar....
ALLAH'a teslim olmuş bir insan ! Ne sultan tanir , ne sadrazam !

ete

Zaman paylaşımlı display sürülme tekniğini kullanalım diyorsun.  Devre basit ama program ve zaman paylaşımını sağlamak çok zor.
4 adet 7 segment displayi titreşimsiz çalıştırabilmek için kesme kullanmak gerekiyor. Aksi taktirde titreme meydana gelmesi kaçınılmaz oluyor. Kesme kullanınca her 1-2 ms de bir kesme oluşturmak gerekiyor. Bu süreyi unutma sonradan tartışacağız.
DS18B20 sensörünün okunma süresi yaklaşık 750 ms dir. Neredeyse 1 saniyeye yakın zaman alıyor. Bu sensör okunacak,
- RTC den saat bilgisi alınacak
- program hangi bilgiyi gösterecekse onu ayarlayacak ve biraz daha zaman harcayacak yani.
Şimdi her 1-2 ms de bir program kesmeye giderse sıcaklığı sağlıklı okumayabilir.
Sonuçta dediğin sistem yapılabilir ama riskleri var. Bu nedenle şimdiye kadar pek kullanmadım. Yalnızca basit saat uygulamasını bu sistemde yapmıştım.

Ete


~ENES~

Peki hocam sadece saat devresi yapsak sizin yaptığınız basit saat devresinde galiba rtc yoktu ısı sensörü kullanmaya gerek yok sadece rtc ile saat devresi yapabilir miyiz...
ALLAH'a teslim olmuş bir insan ! Ne sultan tanir , ne sadrazam !

Mucit23

Hocam Ds18b20'nin 12bit okumada çevrim süresi 750 ms, Şunu anlamıyorum Bu süreye bir lafım yok ama sizin sıcaklık okuma kodlarınıza bakıyorum hep bu çevrim işleminin tamamlanmasını bekliyorsunuz. Ds18B20 750ms aralıklarla registerini güncelliyor. Yani mantıken okuma işleminin tamamlanmasını beklemeden okuma yaparsak registerdeki eski sıcaklık bilgisini görürüz. Acaba Ds18B20 çevrim işlemi yaparken haberleşmeyi yapamıyormu?

Aslında Benkenip beklenmediğinide tam anlayamıyorum.
Sizin sıcaklık okuma programınız bu şekilde
SENSOROKU:
           OWOUT   Comm_Pin, 1, [$CC, $44]' ISI değerini oku
Bekle:
           OWIN    Comm_Pin, 4, [Busy]    ' Busy değerini oku
           IF      Busy = 0 THEN Bekle    ' hala meşgulmü? , evet ise goto Bekle..!
           OWOUT   Comm_Pin, 1, [$CC, $BE]' scratchpad memory oku
           OWIN    Comm_Pin, 2, [HAM.Lowbyte, HAM.Highbyte]' İki byte oku ve okumayı bitir.
           GOSUB   Hesapla
           RETURN


Ds18B20 yi okuma işlemine başlaması için 0x44 verisini göndermek gerekiyor. Ardından Ds18B20 data hattını 0 yapıyor. Çevrim işlemi bittiğinde hattı high'a çekiyor ve okuma işlemininin bittiğini bildiriyor. Ardından okuma yapmamız gerekiyor. Yukarıdaki kodlarda çevrim işlemi tamamlanana kadar 750ms boyunca işlemciyi orada hapsetmiş oluyoruz.

Farzedelim bekleme yapmasak, ds18B20 okuma komutu verdikten sonra ardından sıcaklık bilgisini okumak için ayrı ayrı komutlar vereceğiz. Böyle olunca ds18b20 çevrim işlemini bırakıp yeni komutlarlamı ilgileniyor? Bu konuyu merak ediyorum
Bir ulusu yok etmenin En iyi yolu o ulusun dilini yok etmektir.

www.arectron.com/

ete

Yeni programlarımda artık beklemiyorum.
Okuma emrini verip programa dönüyor ve her işi nitirdikten sonra hazır olan bilgiyi alıyorum. Yeniden saat programı yazmadığım için eski programlarımı bu sisteme adapte ediyorum. En son 60 ledli saat projesi bu sistemle çalışıyor. Önceden 100 ms lik okuma peryodunu tercih etmiştim. Bu okumada bit sayısı düşük olunca ondalık kısmında sorun çıkmış idi. Ama yeni mantıkla onu düzelttim.
Ete

Mucit23

Anladım Hocam. Bu iş için bir timer tutmak daha mantıklı sanırım. Dediğiniz mantığı deneyeceğim.
Bir ulusu yok etmenin En iyi yolu o ulusun dilini yok etmektir.

www.arectron.com/

~ENES~

hocam şimdi tam olarak saati yapabiliyor muyuz söylediğim mmantık ile....
ALLAH'a teslim olmuş bir insan ! Ne sultan tanir , ne sadrazam !

ete

Benim yapacak vaktim yok maalesef. Merak eden yada boş vakti olan birisi yapabilir.
Ete

Powered by EzPortal