18b20 ve 18f4520 Problem

Başlatan gutaussehender, 25 Ocak 2012, 22:27:47

gutaussehender

merhaba arkadaşlar.

18f4520 ıle yaptıgım sıcaklık kontrollü devremde ilk önce lm35 kullanmıştım fakat lm35 ten iyi netice alamadım değer sürekli haddinden fazla değişiyor. lm35  ıle 20 okuma yapıp kucukten buyuğe sıralayıp ortadaki 6 degerın ortalamsını aldım ama sonuç perişan.

18b20 kullanayım dedım daha önce 18b20 ıle 16f628a da problem çıkmamıştı aynı okuma kodlarını kullanmama rağmen.

TRISD=%00000010


    Dim Busy        As Bit
    Dim HAM         As	Word
    Dim ISI         As Word
    Dim Floaat       As Word     
    Symbol ISARET_BITI = HAM.11    
    Dim ISARET      As Byte        
    Symbol Comm_Pin=PORTD.1
    Dim temp    As Byte


SENSOROKU:
           OWrite   Comm_Pin, 1, [$CC, $44]' ISI değerini oku
Bekle:
           ORead    Comm_Pin, 4, [Busy]    ' Busy değerini oku
           If      Busy = 0 Then Bekle    ' hala meşgulmü? , evet ise goto Bekle..!
           OWrite   Comm_Pin, 1, [$CC, $BE]' scratchpad memory oku
           ORead    Comm_Pin, 2, [HAM.LowByte, HAM.HighByte]' İki byte oku ve okumayı bitir.
           GoSub   Hesapla
Return



           ORead    Comm_Pin, 4, [Busy]    ' Busy değerini oku
           If      Busy = 0 Then Bekle    ' hala meşgulmü? , evet ise goto Bekle..!


satırında takılıyor busy değeri  hep 0. sorun isite de aynı orda da çalıştıramadım.
data ucunu porta,portb,portd,porte de denetım tüm portlarda aynı
data ucuna 4,7k pull-up bağlı durumda.

bu konuda bilgisi olan varsa teşekkürlerimi bir borç bilirim.

Maxim

LM35 problemi nedir ?
bir çok kere bir çok projede bir çok insan sorunsuz kullandı
sizin besleme dalgalanıyor olmasın? analog temelli ya sensör o yüzden

gutaussehender

bilmiyorum beni deli etti ilk zamanlar 0,8 er artıp azalıyordu sımdı ıse 0,4 er.
10bit adc nın en az 4,8mv u ölçüyor lm35 her derecede 10mv her 0,1v derecede 1mv degısım gosterıyor. sanırım işlemcinin adc çözünürlüğü bana yetmedi.
18b20 de 12bit çözünürlük işmi görür diye düşünüyorum 0,1derece.
ama 18f4520 de her zaman çalışan kod neden çalışmadı anlamadım

ds18b20 ıle isis ve kaynak kod ekte bi bakarmısınız.
http://www.fileswap.com/dl/ZBKVQecnUx/deneme01.rar.html

Maxim

bu kod çalışıyor tabi gerekli düzeltmelerden sonra

1-işlemcinin mclr ayağına vdd
2-okuma ucu portd.0 yazılmış ama şemada portc.0, tabi ona göre tris ayarı


Declare LCD_COMMANBUS 200 satırı Declare LCD_COMMANDUS olacak

drmp

lm35  çipini çok sık kullandım  ama çıkan sonucu anlık olarak ekrana yazarsan çok değişim oluyor ama kritik biir olçüm değil ise  ölçümler arasına biraz zaman koy 


gutaussehender

#6
Alıntı yapılan: Maxim - 26 Ocak 2012, 08:03:30
bu kod çalışıyor tabi gerekli düzeltmelerden sonra

1-işlemcinin mclr ayağına vdd
2-okuma ucu portd.0 yazılmış ama şemada portc.0, tabi ona göre tris ayarı


Declare LCD_COMMANBUS 200 satırı Declare LCD_COMMANDUS olacak

hayret bir olaydır ki bende çalışmıyor okuma ucunu şemada değiştirmiştim en son ama eski haline aldım yine d.0 a yıne aynı

           ORead    Comm_Pin, 4, [Busy]    ' Busy değerini oku
           If      Busy = 0 Then Bekle    ' hala meşgulmü? , evet ise goto Bekle..!


isiste baktıgımda burada takılıyor acaba benım pc mi yavaş kalıyor dicem ama gerçektede çalışmadı.

http://www.yukleresim.com/?v=NqiD5.jpg


Maxim


gutaussehender

evet. sizde çalıştım denediniz mi. ben şimdi başka bir pc de deneyceğim.
acaba benım protondan kaynaklanıyor olabilirmi.

Maxim

sorunsuz ..


bu hex dosyası

:020000040000FA
:040000001DEF01F0FF
:08000800016A018E136EFE0E69
:100010008CEC00F013508CEF00F000960450D8B434
:100020000086050E036E270E0D6E100E0CD8030E03
:100030000D6EE80E08D80D6A640E05D80D6A0A0E1A
:1000400002D80E5008D00C6E0F500B6E0E500A6E78
:10005000FFEC00F00A500A6E034E0096045003E0D5
:10006000035CD8B008D00A50D8A4009600B603D0DC
:10007000300F8CEF00F01200116E8C9600008C9403
:10008000959695940F0E9516115000B26AEF00F0F8
:100090003A0E0B6E980EEEEC00F0330E106E2CD86C
:1000A000130E0B6E880EEEEC00F026D8640EEDEC0D
:1000B00000F022D8640EEDEC00F0220E106E1CD879
:1000C000280E07D80C0E05D8060E03D80082115052
:1000D00001D00080106E00A00AD08C9403080BE3BE
:1000E0000AD8070E0B6ED00EEEEC00F01200008066
:1000F000FE0810E08C8400A000908C860F0E831602
:100100001050F00B83128C96103A00B0F5D7320ED7
:10011000EDEC00F01150120001BE3CEF00F0080EB3
:1001200007B4010E0D6E0C6AEA6802C0E9FF0550C3
:1001300016EC01F00550EF12060EEDEC00F0055044
:1001400002C0E9FFEF14FF0F07A40C3207B40C360E
:100150003C0EEDEC00F00D2EEAD70C50D8801200CA
:100160000C6E080E07B4010E0D6EEA6802C0E9FFBE
:10017000055016EC01F005500C32D8B0EF123C0ED1
:10018000EDEC00F00550EF120D2EF0D7D8801200E4
:1001900007A2120003D0076E07A01200EA6802C08F
:1001A000E9FF055016EC01F0010E0B6EF40EEEECBB
:1001B00000F00550EF12010E0B6EF40EEEEF00F0A2
:1001C0000D6A0C6EFF0E0C260D2200D0D8A0120076
:1001D000030E0B6EE30E02D8F5D70B6AF50F0A6E0D
:1001E000FE0E04E300D000000A26FDE200000A260D
:1001F0000B06F9E20AA002D000D0000012000F6A3C
:100200000E6A100EF36E0B340E360F360C500E5C69
:100210000D500F5805E30C500E5E0D500F5AD8804C
:100220000A360B36F32EEFD70A501200FF0AEF16EC
:1002300000D0E988E92AEC161200F86A006AAB6A75
:100240000001010E956E36EC01F065EC01F0800EB8
:10025000016EDADE046A1AC00FF019C00EF0DDDE9E
:10026000200E0ADF09DF640EABDFEFD7830E026ECC
:10027000010E056E076E8FDFCC0E72DF4E0E70DF43
:10028000FF0E6EDFFF0E6CDF7F0E6ADF830E026EE5
:10029000010E056E076E7FDFCC0E62DF480E60DF59
:1002A000830E026E010E056E076E75DFCC0E58DFF1
:1002B000B80E56DF830E026E010E056E076E6BDF01
:1002C000CC0E4EDFBE0E4CDF1200830E026E010E0E
:1002D000056E076E60DFCC0E43DF440E41DF830EF8
:1002E000026E010E056E040E076E19DF1680E8A07F
:1002F000169016B07DEF01F0F2D7830E026E010E5C
:10030000056E076E48DFCC0E2BDFBE0E29DF830E95
:10031000026E010E056E020E076E01DF176EFFDE24
:10032000186E36DF95EC01F0120018A6A6EF01F06A
:100330002D0E1D6E171C086E181C096E020E082467
:10034000176E000E0920186EA8EF01F02B0E1D6E1F
:1003500018500A0DF3CF15F017500A0DF3CF14F013
:10036000F450152615C01CF014C01BF0040ED890D4
:100370001C321B32E82EFBD71CC00BF01BC00AF04E
:100380000D6A0A0E0C6E3BDF196E0BC01AF01200DC
:060390000300FED7FFD7B9
:020000040030CA
:03000100070100F4
:02000500018078
:0600080000000FE00F40B4
:00000001FF

gutaussehender

sorunu tesbit ettim 8mhz de çalışmıyor

4mhz e düşürünce çalışmaya başladı.
acaba sebebi ne olabilir.

Maxim

#11
bakın tekrar soruyorum

kod 8 mhz ye göre

ama isiste işlemci osc ayarıda 8mhz mi ?


edit:
şimdi baktımda yolladığın şemada işlemci 4mhz ayarlı
o yüzden günlerdir devren çalışmıyor.

ben onu 8mhz yapmıştım çalıştırmadan önce.

gutaussehender

evet düzelttim.
şimdi şöyle.
yazılımda 4mhz isiste de 4mhz olunca çalışıyor.
yazılımda 16mhz isiste de 16mhz olunca da çalışıyor
fakat yazılımda 8mhz isiste de 8mhz olunca çalışmıyor nedense.
yani bende çalışmıyor.

gutaussehender

neyze zaten dahili osc kullanıyordum 4mhz kullanıp pll yı aktıf ettım.:)

ilginiz için çok teşekkür ederim. 8mhz de çalışmamasını anlayamadım ama önemli değil.

FUNKY

bu kısımda bu komut bu haliyle çalıştımı ........hayret?  GoSub CIK   olmalıydı...?
"     
GoTo CIK
    EndIf
    ISARET  = "+"   ;İşaret pozitif,Nokta aktif..
CIK:
    Floaat = (HAM*10)/16
    ISI=Floaat/10
Return
End"