MAX6675 hatalı ölçüyor ?

Başlatan mustafa_cmbz, 11 Temmuz 2018, 05: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?


Kod Seç
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

11 Temmuz 2018, 12:07:29 #1 Son düzenlenme: 11 Temmuz 2018, 14:55:18 fofo
Bu kodla ısı değerini doğru bir şekilde okuyabiliyorum.
Kod Seç
SENSOR:
    
CS=
    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
=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

Kod Seç
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, 15: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, 22: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 - 12 Temmuz 2018, 01: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..