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
(http://i.hizliresim.com/moEVNY.png) (http://hizliresim.com/moEVNY)
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
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.
Offset mi görüyorsunuz yoksa her reel değerde farklı bir okuma mi alıyorsunuz?
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.
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...
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.
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..
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/
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..
Max6675 proteusta duzgun calismiyor. Ben hic calistiramadim. Benim kodu direk kullanabilirsiniz gercek devrede duzgun calisiyor.
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
Değerli bilgileriniz için çok teşekkür ederim..