MAX6675 hatalı ölçüyor ?

Başlatan mustafa_cmbz, 11 Temmuz 2018, 02:37:53

mustafa_cmbz

Merhabalar..

Ufak bir uygulama da kullamak üzere MAX6675 için ön hazırlık yapıyorum.Mevcutta elimde şuanda yok..

Proteusta ki denemelerimde sıcaklık thermocouple üzerinde 100°C iken ekranda 62 derece gösteriyor..

Geçmişte @Maxim  hocam biraz kapatlatmış kod çıkartmış sağ olsun..

Kurcaladığım da onun kod ile benim proton basic formunda aynı dertten muzdarip vatandaşın kodu da aynı sonucu vermekte..

@Maxim Hocamın uğraştığı sıralarda max6675 proteus kütüphanesi sıkıntılıymış sanırım aklıma o geldi acaba durum aynı mıdır?


Device=16F877A 
Declare Xtal 4

Declare LCD_DTPin PORTD.4
Declare LCD_RSPin PORTD.2
Declare LCD_ENPin PORTD.3        '  20X4 LCD
Declare LCD_Interface 4
Declare LCD_Lines 4

TRISC=0
      
Symbol DATA  = PORTC.4  ' SO
Symbol CS    = PORTC.2 
Symbol CLK  = PORTC.3  'SCK

Dim TEMP As Word

Dim MESURE As Word


ANA:
GoSub READ_THERMO
Print  At 2,2,Dec4 TEMP
DelayMS 500 

GoTo ANA

READ_THERMO:
CS = 0
SHIn DATA,CLK,MsbPre,[MESURE\16]
CS= 1
TEMP = (MESURE >> 5) & $03FF
Return



fofo

#1
Bu kodla ısı değerini doğru bir şekilde okuyabiliyorum.
SENSOR:
    CS=0 
    DELAYMS 1
    SHIN SO,SCK,0,[M\16]    
    CS=1
    DELAYMS 250
  IF M.2=1 THEN  
    PRINT $FE,2,"!SENSOR  HATASI!"
  PRINT $FE,$C0,"YOK VEYA ARIZALI" 
  STOP
  IF M.2=1 THEN 
  GOTO  SENSOR
    ELSE
    CLS
    GOTO BASLA
    ENDIF
    ENDIF
       M=M >>4 
    M=M/2
    ISI=M   

mustafa_cmbz

Bu doğru okuma realdemi isiste mi hocam zira sizin kodda aynı 100 derecede 62 derece gösteriyor..?

isiste doğru okuma yapabiliyorsanız bana proteus şeması vs atabilirmisiniz rica etsem.

Eugene

Offset mi görüyorsunuz yoksa her reel değerde farklı bir okuma mi alıyorsunuz?

mustafa_cmbz

ofsetten kastınız ne anlamadım ama 100 derecede 62 görüyorum thermocouplörün değerini değiştirdikçe bu değerde değişiyor doğal olarak ama öyle oynama dalgalanma vs yok tabi.

mustafa_cmbz

Device=16F877A	
Declare Xtal 4

Declare LCD_DTPin	PORTD.4
Declare	LCD_RSPin	PORTD.2
Declare	LCD_ENPin	PORTD.3         '  20X4 LCD
Declare	LCD_Interface	4
Declare	LCD_Lines	4

'************************************************

Dim X As Word
Dim Z As Word
Dim Y As Word 
Dim T As Word 
Dim TOL As Word
Dim K As Byte
Dim HN1 As Byte
Dim HN2 As Byte 
Dim HN3 As Byte 
X=1
Y=1
Z=1
T=1
TOL=1
K=0

'************************************************
      
Symbol DATA  = PORTC.4  ' SO
Symbol CS    = PORTC.2 
Symbol CLK   = PORTC.3  'SCK

Dim TEMP As Word

Dim MESURE As Word

TRISC=1


SENSOR:


Low CS 
SHIn DATA,CLK,0,[X\16]  
High CS 


X=((X>>2)/4)-24
HN1=Dig X,2
HN2=Dig X,1
HN3=Dig X,0
X=((HN1*100)+(HN2*10)+(HN3))
Z=X
Print At 1 , 1 ,"    ISI= ",Dec Z,"'C    "  'Print At 1 , 1 ,Dec HN1,".",Dec HN2,".",Dec HN3   
GoTo SENSOR


https://pwmccs.wordpress.com/2012/08/21/pic16f876a-max6675-lcd-termokupl-termostat/

buradaki arkadaşın paylaştığı kodlar ile sonuç alabildim...


fofo

Alıntı yapılan: mustafa_cmbz - 11 Temmuz 2018, 12:41:40Bu doğru okuma realdemi isiste mi hocam zira sizin kodda aynı 100 derecede 62 derece gösteriyor..?

isiste doğru okuma yapabiliyorsanız bana proteus şeması vs atabilirmisiniz rica etsem.

Gerçek devre de doğru sonuç veriyor.

mustafa_cmbz

Alıntı yapılan: fofo - 11 Temmuz 2018, 19:09:25Gerçek devre de doğru sonuç veriyor.

Simulasyonda 40 derece fark var hocam realde nasıl normal çalışıyor merak ettim.

Max6675 elime geçtiğinde deneme yapacağım.son durumu yazarım..

RaMu

Gerçekte çalışan yapmıştım doğru değer gösteriyordu,
şimdi o devreyi isis te simule edip deneyeyim dedim,
isis sensörde 100 'C derken pic ile 62.25 derece okuyor,
yani isiste bir sıkıntı var.
Sizin devrede gerçekte doğru çalışacak büyük ihtimalle.

Yalnız şurada protonla yapılmış isis simulasyonlu bir örnek var,
indirip baktım, simulasyonda doğru çalışıyor:
https://pwmccs.wordpress.com/2012/08/21/pic16f876a-max6675-lcd-termokupl-termostat/
Sorularınıza hızlı cevap alın: http://www.picproje.org/index.php/topic,57135.0.html

mustafa_cmbz

Alıntı yapılan: RaMu - 11 Temmuz 2018, 22:33:14Gerçekte çalışan yapmıştım doğru değer gösteriyordu,
şimdi o devreyi isis te simule edip deneyeyim dedim,
isis sensörde 100 'C derken pic ile 62.25 derece okuyor,
yani isiste bir sıkıntı var.
Sizin devrede gerçekte doğru çalışacak büyük ihtimalle.

Yalnız şurada protonla yapılmış isis simulasyonlu bir örnek var,
indirip baktım, simulasyonda doğru çalışıyor:
https://pwmccs.wordpress.com/2012/08/21/pic16f876a-max6675-lcd-termokupl-termostat/

Bende kararsız kaldım..Verdiğin linki bir üstte bende paylaştım.Elime geçince 2 koduda deneyeceğim..

Maxim

Max6675 proteusta duzgun calismiyor. Ben hic calistiramadim. Benim kodu direk kullanabilirsiniz gercek devrede duzgun calisiyor.

ete

Termokupl kablosu kendiside bir termokupl dur. Bu özelliği nedeni ile ortam sıcaklığını voltaj olarak algılar ve bunu asıl termokupl'a ekler. Bu nedenle termokup kablosuna ambient yani ortam sıcaklığı etkisi eklenmesi gerekir. Bunun için bir voltaj source (voltaj kaynağı) kullanılıyor. Yuvarlak ve üerinde + / -  işaretleri olan bir sembol. Değer olarak 1.00025e-3 kullanılır. Bu ortam sıcaklığını 25 derece kabul edilmesine karşılık gelir.
Versiyon 8 de SAMPLES klasöründe örneği mevcuttur. Linki;
C:\ProgramFiles(X86)\LabcenterElectronics\Proteus 8 Professional\Samples\Schematic & Pcb Layout\Thermo.pdsprj
Gerçek devrede sistem doğru çalışacaktır. Bu arada Max6675 artık tedavülden kaldırıldı yerine yenisi çıkartıldı MAX31855_T tipi kullanılır ise hem sonuç daha iyi hemde sıcaklık aralığı daha geniş olacaktır.

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

mustafa_cmbz

Değerli bilgileriniz için çok teşekkür ederim..