Haberler:

Foruma Resim Yükleme ve Boyut Sınırlaması ( ! )  https://bit.ly/2GMFb8H

Ana Menü

DS18B20 HATASI

Başlatan izzethoca, 22 Nisan 2010, 12:09:40

izzethoca

DS18B20  DEVREYE BAĞLADIĞIMDA 65.5 DERECE YAZIP ÖYLE KALIYOR İSİS DENEMELERİNDE 10SNS BU ŞEKİLDE YAZIP ISIYI OKUYOR
YARDIMCI OLURSANIZ SEVİNİRİM

ete

Kullandığın formülü görmeden soruna çözüm bulam çok zor.
Ancak hemen belirteyim. Bu sorun, genelde ısı çevriminde kullandığın değişkenlerin byte yerine Word cinsinden seçilmesi ile çözülebiliyor.

Ete
Bilgi hazinedir paylaştıkça büyür.            http://etepic.com

izzethoca

sayın hocam sizin notlarınızdan aldığım kısmı kullandım aşağdaki gibi

INCLUDE "sensoku.pbp"
include "lcdyaz.pbp"
TRISB=%00000000
TRISA=%00000111
PORTB=0
PORTA=0
'----------------------------------------------------------------

'----------------------------------------------------------------
BASLA:

 
  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.
ISARET ="+"
    TEMP = 625 * HAM        '
    ISI = DIV32 10          ' Div32 hassas derece hesabı için 32 bit bölme yapıyoruz.
    FLOAT = (ISI //1000)/100
    ISI=ISI/1000
if ISARET_BITI = EKSI_ISI then
       ISARET   = "-" 
       temp=($ffff-ham+1)*625
       ISI  = DIV32 10
       FLOAT = (ISI //1000)/100
       ISI=ISI/1000
endif
pause 10
lcdout $fe,$83,"SICAKLIK"
   LCDOUT $FE,$C3,ISARET,DEC ISI,".",DEC1 (Float)," ",Derece,"C " '2. satırda ısı
GOTO BASLA
END

sensoku dosyası ise

Busy        VAR BIT         ' Busy Status-Bit
HAM         VAR   WORD        ' Sensör HAM okuma değeri
ISI         VAR WORD        ' Hesaplanmış ISI değeri
Float       VAR WORD        ' Holds remainder for + temp C display
X           VAR WORD       
ISARET_BITI   VAR HAM.Bit11   '   +/- sıcaklık İşaret biti,  1 = olursa eksi sıcaklık
EKSI_ISI   CON 1           ' Sıfır altında isaret biti=1  oluyor kontrol için
DERECE     CON 223         ' ° işareti
ISARET     VAR BYTE        '  ISI değeri için  +/-  işaret
TEMP        VAR BYTE       ' Div32 bit hesap için geçici değişken
SYMBOL Comm_Pin=PORTA.2    ' One-wire Data-Pin "DQ" PortB.0 da

izzethoca

ete hocam isiste nrmal çalışıyor ama önce 65 derece yazıyo  2 sn sonra normal çalışıyır

ete

Bu kodları kullanmıyorum artık. Acemilik dönemi yaptığım bir şeydi.
Şimdi aşağıdakini kullanıyorum. Hem daha hassas işlem yapıyor hemde hesap işlemi sınırlar dahilinde yapılıyor.
Hesapla:                 ' Ham değerden Santigrat derece hesabı
    Sign  = "+"
    IF SIGN_BITI = NEGAT_ISI THEN
       Sign   = "-"  
       ham=~ham+2
    endif
    float = (HAM*10)/16        ' 
    ISI=FLOAT/10 
    RETURN


Ete
Bilgi hazinedir paylaştıkça büyür.            http://etepic.com

izzethoca

HOCAM ÇOK TEŞEKKÜR EDERİM  SANIRIM DEVREDE BİR SORUN VAR  VERMİŞ OLDUĞUNUZ FORMULDE 85 LE BAŞLIYOR 1 SN SONRA NORMAL DEĞER GÖSTERİYOR İSİS TE HERŞEY NORMAL AMA DEVREYE BAĞLAYINCA 85 DERECE SABİT KALIYOR DAHA ÖNCE
YAPTIĞIM DENEME KARTIM VAR ONU KULLANIYORUM SAAT VE ISI SENSÖRÜ BİRLEŞİK PİC DENEME KARTIMLA ARASINDA
30CM BİR KABLO VAR SANIRIM O PROBLEM OLUŞTURUYOR SAAT VE ISISENSÖRÜNÜ PIC İLE BİRLİKTE OLAN BİRDENEME
KARTI YAPIP TEKRAR DENEYECEĞİM
   YALNIZ ÖNCEKİ DENEMEMİ JAL İLE YAPTIĞIMDA ÇALIŞIYORDU 18B20 PROBLEMLİ OLABİLİR DİYE YENİSİNİ TAKTIM
YİNE OLMADI 
İLGİNİZ İÇİN TEŞEKKÜR EDERİM SONUCU  BURADAN SİZE BİLDİRECEM HOCAM BİRDE BU SİTEDEN SİZE BİR ÖZEL MESAJ
GÖNDERMİŞTİM SANIRIM ULAŞMADI

ete

İzzethoca,

Forum değiştikten sonra özel mesaj konusunda beni uyarmıyor. Bende pek bakmıyordum uyarı nasılsa gelecek diye.
Sen söyleyinece baktımki bir sürü mesaj birikmiş.
Sanırım DS1307 konusunda yardım istemişsin. Bunu gördüm yalnızca.

Sorun neyse açıkla yardımcıolmaya çalışayım.

Ete
Bilgi hazinedir paylaştıkça büyür.            http://etepic.com

izzethoca

ete hocam geçen bir sorun yoktu saat isis te çok yavaş örneğin 10 sn bir ilerliyor bu sorunu
bir türlü çöezemedim. Benim sizi rahatsız etme amacım bu formullerin nasıl oluştuğu idi
onuda  mod 16 kısmına kadar çözdüm fakat fomulün geri kalanını çözmeye çalışıyorum
örneğin
sn2=sn-sn1
sn2=sn2//15

picbasic programlamaya başlayalı 3 hafta oldu hoş görürsünüz umarım bu gün tatil baskı devre çıkarıp
saat ve ısı devresini pic ile aynı bord üzerine yapacağım.

ete

İsis de genelde devrenin yüklüolmasına bağlı olarak simulasyon gerçek zaman saatine göre yavaş işlemektedir.
Geçen zamanı aşağıda bulunan isis zaman saatinden izleyebilirsiniz. Bu devrede sorun var anlamına gelmiyor.
Yalnızca çok fazla simule edilmesi gereken şeyler olduğu için simulasyon yavaş işliyor.
Bu dediklerim programda bir hata yoksa geçerli tabiiki. Programa bakmak lazım acaba gecikme gerçekten programdanmı kaynaklanıyor.

Formüllere gelince hangi formüllerin naısl oluştuğunu sordun anlamadım.
sn2=sn-sn1
sn2=sn2//15
eşitliklerinde SN2 için SN değerinden SN1 çıkartılmış.
SN2=SN2//15  eşitliğinde ise bir mod alma işlemi uygulanmış. Yani SN2 değeri 15 bölünüp kalan yeniden SN2 ye eşitlenmiş oluyor.

Başka sorun varsa cevaplayayım.

Ete
Bilgi hazinedir paylaştıkça büyür.            http://etepic.com

izzethoca

ete hocam en son yaptığımız mod işlemini neden 15 e göre yaptık  o kımını anlayamadım

ete

Ben senin verdiklerin üzerinden izahat yaptım. Bu formüller ne ile alakalı bilmiyorum.
Bir programdan alıntı ise programı koyda ona göre yorum yapayım.

Ete
Bilgi hazinedir paylaştıkça büyür.            http://etepic.com