LCD ekranda 4 ayrı sıcaklık okuma için yardım ltf .

Başlatan Maxim, 05 Aralık 2005, 15:34:17

CaFFeiNe

@tatlisukurnazı hocam

ben analog devices tan sample alıyorum ücretsiz yoksa ilerde ücret filan istemesin içime kurt düşürdün şimdi :)

aYe

Alıntı yapılan: "CaFFeiNe"@tatlisukurnazı hocam

ben analog devices tan sample alıyorum ücretsiz yoksa ilerde ücret filan istemesin içime kurt düşürdün şimdi :)
Hocam bizede öğret nasıl yaptığını. Accelerometer sensörü alicam adamlardan, işiksiz topsuz mouse yapicam. Yoksa içimde uhde kalicak...
Dünyada iki şey sonsuzdur. İnsanın aptallığı ve evren. Ancak ikincisinden o kadar emin değilim... (Einstein)

OG

Alıntı Yapben analog devices tan sample alıyorum ücretsiz yoksa ilerde ücret filan istemesin içime kurt düşürdün şimdi
Haklısın, Microchip sample olayına benzemesin. Maalasef bizim insanımız çok istismarcı.
FORUMU İLGİLENDİREN KONULARA ÖM İLE CEVAP VERİLMEZ.

CaFFeiNe

@tatlisukurnazı

siteye üye oldum normal yoldan sample istiyorum bissürü sorular soruyor işte yılda ne kadar kullancan vs. sallıyorum bişiyler geliyor :)

aYe

Bende siteye üye oldum da; bir hafta sonra elektrodan bir densiz ariyor sample'larınız geldi toplamı şu kadar fatura bilgilerinizi verirmisiniz diyor. İyide sitede 2 dolar yazan entegreye neden 8 dolar istiyorsunuz diyorum sample fiyatları böyle adete geçince fiyat sorun diyorlar. Size sample direkt analog'un kendisinden mi geliyor? Temin şekliniz konusunda biraz detay verirmisiniz? Microchip'in sample olayı nedir bilmiyorum ama o hususta herhangi bir sıkıntım yok, özellikle 2000li yillarda arrow vasitasiyla 10 adete yakin pencereli 18 serisi göndererek(ben yaktikca onlar yolladi) mevcut projeme ciddi destek verdi, ki o zamanlar flash18'ler yoktu ve pencereli fiyati 50dolara yakindi. Arrow bu güne kadar ne istediysem gönderdi kargo ücreti bile talep etmiyorlar. Sıra mal alimina gelince 2-3 fazla demeyip arrow'u tercih ettiğim de bir gerçek zira destek karşılıklı olmalı...
Dünyada iki şey sonsuzdur. İnsanın aptallığı ve evren. Ancak ikincisinden o kadar emin değilim... (Einstein)

OG

Microchip önceden direk kendisi sample yolluyordu. Birilerinin suistimali sonucu bunu kesti.. Zaten burada dağıtıcı firması varken oradan göndermeye devam etmesi de anlamsız.



AD ise TNT ile yolluyor.  Sample kapınıza geliyor. Birçok component de sample 2 adedi geçemiyor.
FORUMU İLGİLENDİREN KONULARA ÖM İLE CEVAP VERİLMEZ.

fsan

Alıntı yapılan: "maxiboost"selamlar, sene sonu yoğunluğu nedeni ile biraz ara vermiştim ,dün akşam bayaa bir arama tarama sonucunda işime yarayacak cevabı gene burada buldum ama biraz daha sorun var .

https://www.picproje.org/index.php/topic,7139

buradaki mhk arkadaşın örneğinden faydalanarak bir çalışma yaptık ,
Orjinali bu şekilde

' PicBasic Pro program to measure voltage (0-5VDC) 
' and display on LCD with 2 decimal places 
' 
' This program uses the */ operator to scale the 
' ADC result from 0-1023 to 0-500.  The */ performs 
' a divide by 256 automatically, allowing math which 
' would normally exceed the limit of a word variable. 
' 
' Connect analog input to channel-0 (RA0) 

' Define LCD registers and bits 
DEFINE  LCD_DREG        PORTD 
DEFINE  LCD_DBIT        4 
DEFINE  LCD_RSREG       PORTE 
DEFINE  LCD_RSBIT       0 
DEFINE  LCD_EREG        PORTE 
DEFINE  LCD_EBIT        1 

' Define ADCIN parameters 
DEFINE  ADC_BITS        10        ' Set number of bits in result 
DEFINE  ADC_CLOCK       3        ' Set clock source (3=rc) 
DEFINE  ADC_SAMPLEUS    50       ' Set sampling time in uS 

adval  VAR WORD               ' Create adval to store result 


      TRISA = %11111111      ' Set PORTA to all input 
        ADCON1 = %10000010      ' Set PORTA analog and right justify result 
        Low PORTE.2            ' LCD R/W line low (W) 

        Pause 500                   ' Wait .5 second 

loop:    ADCIN 0, adval               ' Read channel 0 to adval (0-1023) 

      adval = (adval */ 500)>>2      ' equates to: (adval * 500)/1024 
       
 '***** aha tam burasina: 2 satir ekle ********
	    
        adval = adval * 32
        adval = adval / 10
        
        '*****************
       LCDOut $fe, 1               ' Clear LCD 
        LCDOut "DC Volts= ",DEC (adval/100),".", DEC2 adval   ' Display the decimal value  

        Pause 100                   ' Wait .1 second 

        GoTo loop                   ' Do it forever 
        End


Alıntı Yap
fakat simulasyonda girişe 5.0 volt verince lcd ekranda 1198.98 okuyorum ,bu olay 1023 - 1024 olayından kaynaklanıyor heralde .
Mesela 1200 değerini 10 yaparsanız yani 0-1023 olan giriş değerini 0-10 olarak lcd ye atarsanız hata iyice belirgin oluyor  9.09  gibi .
acaba burada ne gibi bir finetuning yapılabilir ?

Donanimda giris kismi: 0-15V  

Dosyalar aha burada:
http://home.no/fsan/projects/Diverse/0-12V_ADC/

kolay gelsin

Maxim

Teşekkürler fsan ,

Bu manifoldun önden görüntüsü ,elimde 2 adet var biri yedek ,
araba üzerine takılı olan manifold ta metrik8 vida delikleri açtım daha önce ,deliklerde şu anda civata takılı tapa niyetine .
Kısacası resimde kırmızı olarak işaretlediğim yerler delik.




Bu resmi 2 ay önce çekmiştim ,işte tapalar .




Biraz daha uzaktan çekilmiş hali ..




Bu manifoldun alttan görüntüsü .Haliyle araç üzerindekinin resimlerini çekmek mümkün değil .


fsan

bisey değil ustam :)
hehe ilginc bir hobbin varmis dogrusu umarim istedigini yaparsin.

kolay gelsin

Maxim

Bitti sayılır ,son hali burada thermo3.zip dosyasında .
http://groups.yahoo.com/group/PicProjeUP15/files/MaxiBoost/

Devreyi delikli pertinax üzerinde topladım ,çalıştırdım .
Sorun yokmu? var olmazmı ...

Sorun şu :
Aynı proteus simulasyonunda olduğu gibi lcd ekran kıpraşıyor .
Dosyayı indirip proteusta denerseniz görürsünüz ,ne görüyorsanız aynısı lcd ekranda oluyor .Ne yapmalı bilmiyorum .

Özet:
Devre 4 girişli 10 bit A/D çeviricidir ,değerler 2x16 karakter lcd ekranında okunur .4 adet type K thermocouple ,4 adet AD595 entegresi kullanılarak 1200 dereceye kadar olan 4 ayrı sıcaklık ölçülebilir .

AD595 çıkışı 10mV /derece`,dir .Yani 0C 0 volt ,100C 1 volt ,1000C 10 volt çıkış verir .Entegrenin çıkış gerilimi doğru gerilim bölücü dirençler ile 12 volt - 5 volta düşürülür .
Sonuçta 1200 derece sıcaklıkta 12 volt olan AD595 çıkışı 5 volt olarak PIC16F877`ye girilir ve ekranda 1200C yazması sağlanır .

Ekleme :
Program eproje forumundan alınmış ve gereken değişiklik yapılmıştır .
Orjinalinde 4 kanal voltmetre olarak kullanılan program Proton basic kullanılarak derlenmiştir .

DEVICE 16F877	

   Declare XTAL 4
   'OSILATOR FRKANSI 4MHz OLARAK BELIRLENIR

  		'2x16 LCD icin ayarlar tanimlanir
		'4 bit baglanti
        Declare LCD_DTPIN	PortD.4
        Declare	LCD_RSPIN	PortD.1
        Declare	LCD_ENPIN	PortD.0
        Declare	LCD_INTERFACE	4
        Declare	LCD_LINES	2 

		'ADC icin tanimlamalar
       	Declare ADIN_RES	10
        Declare ADIN_TAD	FRC
        Declare ADIN_STIME	100
		   
    'EKRANA YAZDIRILACAK ADC DEGISKENLERI TANIMLANIR
    DIM ADC_KANAL1 AS FLOAT
    DIM ADC_KANAL2 AS FLOAT
    DIM ADC_KANAL3 AS FLOAT
    DIM ADC_KANAL4 AS FLOAT
    
    'ISLEMLER ICIN GEREKLI GECICI DEGISKENLER TANIMLANIR
    DIM TEMP1 AS BYTE    
    DIM W1 AS WORD
    DIM W2 AS FLOAT
    DIM DWD AS DWORD
      
   'OLCUM VOLTAJI
   DIM OLCUM_VOLTAJI AS 1200
   DIM ADC_ORNEKSAYISI AS 100

GOTO RESET_VECTOR

;********************************************************************
PRJ_LOOP:
    ASM
        NOP
        NOP
        CLRWDT
        NOP
        NOP
    ENDASM
    call    adc_oku
    DELAYMS 1
GOTO PRJ_LOOP

;********************************************************************
'BU BOLUMDE ISLEMCININ BASLANGIC AYARLARI YAPILIR
RESET_VECTOR:
    ASM
        BCF	INTCON,GIE
        BTFSC   INTCON,GIE
        GOTO    RESET_VECTOR
    ENDASM

    ;ENERJI HATLARINDAKI PARAZITIK ETKI ICIN ACILIS GECIKMESI
    PAUSE 1000
 
    TRISA=%00111111
	ADCON1 = %10000010	'Set PORTA analog and right 
    INTCON=%00100000
    LCDOUT $FE, 1 ;lcd temizlenir

    TEMP1=ADC_ORNEKSAYISI
    ADC_KANAL1=0
    ADC_KANAL2=0
    ADC_KANAL3=0
    ADC_KANAL4=0

GOTO PRJ_LOOP

;********************************************************************
ADC_OKU:
	'ORNEKLER ALINIR VE ORTALAMA DEGER HESAPLANIR
	'BU EN DOGRU DEGERI YAKALAK VE
	'ADC GORUNTULEME HIZINI YAVASLATMAK ICINDIR

ADC_OKU_1:    
    ADCIN 0,W1
    ADC_KANAL1=ADC_KANAL1+W1
    
    ADCIN 1,W1
    ADC_KANAL2=ADC_KANAL2+W1

    ADCIN 2,W1
    ADC_KANAL3=ADC_KANAL3+W1

    ADCIN 3,W1
    ADC_KANAL4=ADC_KANAL4+W1
    
    TEMP1=TEMP1-1
    IF TEMP1>0 THEN RETURN 
	
    ADC_KANAL1=ADC_KANAL1/ADC_ORNEKSAYISI
    ADC_KANAL2=ADC_KANAL2/ADC_ORNEKSAYISI
    ADC_KANAL3=ADC_KANAL3/ADC_ORNEKSAYISI
    ADC_KANAL4=ADC_KANAL4/ADC_ORNEKSAYISI
	
	W2=OLCUM_VOLTAJI
	W2=W2/1023
	ADC_KANAL1=ADC_KANAL1*W2
	ADC_KANAL2=ADC_KANAL2*W2
	ADC_KANAL3=ADC_KANAL3*W2
	ADC_KANAL4=ADC_KANAL4*W2
  
	CALL EKRANI_YAZ

    TEMP1=ADC_ORNEKSAYISI
    ADC_KANAL1=0
    ADC_KANAL2=0
    ADC_KANAL3=0
    ADC_KANAL4=0
	           
RETURN
;********************************************************************
EKRANI_YAZ:

    LCDOUT $FE, 1:DELAYMS 30     'LCD CLS
	'CLS			 	   'VEYA BU KOMUTTA KULLANILABILIR 30ms
	
	IF PORTB.0=0 THEN
    dwd=adc_kanal1
    LCDOUT $FE, $80 
    LCDOUT "1>", DEC dwd
    LCDOUT $DF
    ENDIF
	
    IF PORTB.1=0 THEN
    DWD=ADC_KANAL2
    LCDOUT $FE,$88
    LCDOUT "2>",DEC dwd
    LCDOUT $DF
    ENDIF
	
    IF PORTB.2=0 THEN        
    DWD=ADC_KANAL3
    LCDOUT $FE, $C0
    LCDOUT "3>",DEC DWD
    LCDOUT $DF
    ENDIF
	
    IF PORTB.3=0 THEN
    DWD=ADC_KANAL4
    LCDOUT $FE,$C8
    LCDOUT "4>",DEC DWD
    LCDOUT $DF
    ENDIF
	
RETURN

END

fsan

Alıntı yapılan: "maxiboost"
Devreyi delikli pertinax üzerinde topladım ,çalıştırdım .
Sorun yokmu? var olmazmı ...

Sorun şu :
Aynı proteus simulasyonunda olduğu gibi lcd ekran kıpraşıyor .
Dosyayı indirip proteusta denerseniz görürsünüz ,ne görüyorsanız aynısı lcd ekranda oluyor .Ne yapmalı bilmiyorum .

@maxiboost

merhaba usta,
normaldir, büyük bir sorun değil. Lcd ekran kıpraşmasi, EKRANI_YAZ: LCDOUT $FE, 1 ;lcd temizlenir  komutun devamli döngü icerisinde tekrarlanmasindan kaynaklaniyor.

asagida kod
'################
arasindaki satirlari incele,  
'################
programda LCD ekran kirpismasini önlemek icin.

  DEVICE 16F877	

   Declare XTAL 4
   'OSILATOR FRKANSI 4MHz OLARAK BELIRLENIR

  		'2x16 LCD icin ayarlar tanimlanir
		'4 bit baglanti
        Declare LCD_DTPIN	PortD.4
        Declare	LCD_RSPIN	PortD.1
        Declare	LCD_ENPIN	PortD.0
        Declare	LCD_INTERFACE	4
        Declare	LCD_LINES	2 

		'ADC icin tanimlamalar
       	Declare ADIN_RES	10
        Declare ADIN_TAD	FRC
        Declare ADIN_STIME	100
		   
    'EKRANA YAZDIRILACAK ADC DEGISKENLERI TANIMLANIR
    DIM ADC_KANAL1 AS FLOAT
    DIM ADC_KANAL2 AS FLOAT
    DIM ADC_KANAL3 AS FLOAT
    DIM ADC_KANAL4 AS FLOAT
    
    'ISLEMLER ICIN GEREKLI GECICI DEGISKENLER TANIMLANIR
    DIM TEMP1 AS BYTE    
    DIM W1 AS WORD
	DIM W2 AS FLOAT
	Dim W3 As Float
	DIM DWD AS DWORD
      
   'OLCUM VOLTAJI
   DIM OLCUM_VOLTAJI AS 1200
   DIM ADC_ORNEKSAYISI AS 100
   
GOTO RESET_VECTOR

;********************************************************************
PRJ_LOOP:
    ASM
        NOP
        NOP
        CLRWDT
        NOP
        NOP
    ENDASM
    call    adc_oku
    DELAYMS 1
GOTO PRJ_LOOP

;********************************************************************
'BU BOLUMDE ISLEMCININ BASLANGIC AYARLARI YAPILIR
RESET_VECTOR:
    ASM
        BCF	INTCON,GIE
        BTFSC   INTCON,GIE
        GOTO    RESET_VECTOR
    ENDASM

    ;ENERJI HATLARINDAKI PARAZITIK ETKI ICIN ACILIS GECIKMESI
    PAUSE 1000
   
    '#################    
    'TRISb=%XXXX1111
    'portb=0
    '#################    
   
    TRISA=%00111111
	ADCON1 = %10000010	'Set PORTA analog and right 
    INTCON=%00100000
    LCDOUT $FE, 1 ;lcd temizlenir
    TEMP1=ADC_ORNEKSAYISI
    ADC_KANAL1=0
    ADC_KANAL2=0
    ADC_KANAL3=0
    ADC_KANAL4=0

GOTO PRJ_LOOP

;********************************************************************
ADC_OKU:
	'ORNEKLER ALINIR VE ORTALAMA DEGER HESAPLANIR
	'BU EN DOGRU DEGERI YAKALAK VE
	'ADC GORUNTULEME HIZINI YAVASLATMAK ICINDIR

ADC_OKU_1:    
    ADCIN 0,W1
    ADC_KANAL1=ADC_KANAL1+W1
    
    ADCIN 1,W1
    ADC_KANAL2=ADC_KANAL2+W1

    ADCIN 2,W1
    ADC_KANAL3=ADC_KANAL3+W1

    ADCIN 3,W1
    ADC_KANAL4=ADC_KANAL4+W1
    
    TEMP1=TEMP1-1
    IF TEMP1>0 THEN RETURN 
	
    ADC_KANAL1=ADC_KANAL1/ADC_ORNEKSAYISI
    ADC_KANAL2=ADC_KANAL2/ADC_ORNEKSAYISI
    ADC_KANAL3=ADC_KANAL3/ADC_ORNEKSAYISI
    ADC_KANAL4=ADC_KANAL4/ADC_ORNEKSAYISI
	
	W2=OLCUM_VOLTAJI
	W2=W2/1023
	ADC_KANAL1=ADC_KANAL1*W2
	ADC_KANAL2=ADC_KANAL2*W2
	ADC_KANAL3=ADC_KANAL3*W2
	ADC_KANAL4=ADC_KANAL4*W2
  
	CALL EKRANI_YAZ

    TEMP1=ADC_ORNEKSAYISI
    ADC_KANAL1=0
    ADC_KANAL2=0
    ADC_KANAL3=0
    ADC_KANAL4=0
	           
RETURN
;********************************************************************
EKRANI_YAZ:
    '#######################################################################
    'LCDOUT $FE, 1:DELAYMS 30     'LCD CLS
	'CLS			 	          'VEYA BU KOMUTTA KULLANILABILIR 30ms
    '#######################################################################
    

	'IF PORTB.0=0 THEN        
        dwd=adc_kanal1
        '#################
        LCDOUT $FE, $80,"1>" 
        gosub DEC_DWD
        '################
    'ENDIF
	
	'IF PORTB.1=0 THEN
        DWD=ADC_KANAL2
        '#################
        LCDOUT $FE,$88,"2>"
        gosub DEC_DWD
        '#################
    'ENDIF
	
	'IF PORTB.2=0 THEN        
        DWD=ADC_KANAL3
        '#################
        LCDOUT $FE, $C0,"3>"
        gosub DEC_DWD
        '#################
    'ENDIF
	
	'IF PORTB.3=0 THEN
        DWD=ADC_KANAL4
        '#################
        LCDOUT $FE,$C8,"4>"
        gosub DEC_DWD
        '#################
    'ENDIF
	
RETURN

'#################################################
DEC_DWD:
    select dwd
        case < 10   : LCDOUT DEC1 dwd, $DF,"   "
        case < 100  : LCDOUT DEC2 dwd, $DF,"  "
        case < 1000 : LCDOUT DEC3 dwd, $DF," "
        case else   : LCDOUT DEC4 dwd, $DF,""
    endselect
return
'#################################################

END


Sevgiler, saygilar..

kolay gelsin

Maxim

Fsan arkadaşım teşekkürler ,dediğin gibi ekran titremesi kayboldu .Fakat küçük bir değişiklik daha yapmam gerekiyor .

4 kanal sıcaklık ölçümü yapan devreyi geçici olarak değiştirmek zorunda kaldım ,Nedenide türkiye içerisinde adam gibi type K thermocouple prob yapabilen bir yer bulamamak .Probların et kalınlığı fazla olduğundan dolayı sıcaklık okumasında gecikme oluyor ,üstelik bana verilen 3 metre k tipi tc için iskontolu fiyat 31 euro + kdv .

Bende aşağıdaki adresten sipariş verdim bir adet ,amerikada okuyan arkadaşım 2 hafta sonra getirecek ,fiyatı 35$ .Eğer gelen tc gerçekten iş görürse 3 tane daha satın alıcam .

http://redlinegauges.com/product_info.php?cPath=22&products_id=20&dfwtekid=e381a4d1aa7a9d42e929c4acf0b57536

O yüzden devreyi aşağıdaki gibi değiştirdim .4 satır lcd ekran kullanıyorum .1 giriş thermocouple için diğer 3 tanesi çeşitli bilgi ekranı için kullanılacak .Eski devrede lcd ekrandaki değerlerinin hepsinin sonunda derece işareti vardı artık bunda yok ,fsan senin verdiğin değişiklikleri malesef denedim ama buna uyarlayamadım beceremedim yani,bir de 'TRISb=%XXXX1111   'portb=0 değişikliğini neden yapıyoruz onu anlayamadım .

Devre şeması :




Devrenin kodu :

  DEVICE 16F877	

   Declare XTAL 4
   'OSILATOR FRKANSI 4MHz OLARAK BELIRLENIR

  		'2x16 LCD icin ayarlar tanimlanir
		'4 bit baglanti
        Declare LCD_DTPIN	PortD.4
        Declare	LCD_RSPIN	PortD.1
        Declare	LCD_ENPIN	PortD.0
        Declare	LCD_INTERFACE	4
        Declare	LCD_LINES	4 

		'ADC icin tanimlamalar
       	Declare ADIN_RES	10
        Declare ADIN_TAD	FRC
        Declare ADIN_STIME	100
		   
    'EKRANA YAZDIRILACAK ADC DEGISKENLERI TANIMLANIR
    DIM ADC_KANAL1 AS FLOAT
    DIM ADC_KANAL2 AS FLOAT
    DIM ADC_KANAL3 AS FLOAT
    DIM ADC_KANAL4 AS FLOAT
    
    'ISLEMLER ICIN GEREKLI GECICI DEGISKENLER TANIMLANIR
    DIM TEMP1 AS BYTE    
    DIM W1 AS WORD
    DIM W2 AS FLOAT
    Dim W3 As Float
    Dim W4 As Float
    Dim W5 As Float
    DIM DWD0 AS DWORD
    Dim DWD1 As DWord
    Dim DWD2 As Dword
    
   'OLCUM VOLTAJI
   DIM OLCUM_VOLTAJI AS 1200
   DIM OLCUM_VOLTAJI1 AS 12
   Dim OLCUM_VOLTAJI2 As 100
   Dim OLCUM_VOLTAJI3 aS 16
   
   DIM ADC_ORNEKSAYISI AS 100

GOTO RESET_VECTOR

;********************************************************************
PRJ_LOOP:
    ASM
        NOP
        NOP
        CLRWDT
        NOP
        NOP
    ENDASM
    call    adc_oku
    DELAYMS 1
GOTO PRJ_LOOP

;********************************************************************
'BU BOLUMDE ISLEMCININ BASLANGIC AYARLARI YAPILIR
RESET_VECTOR:
    ASM
        BCF	INTCON,GIE
        BTFSC   INTCON,GIE
        GOTO    RESET_VECTOR
    ENDASM

    ;ENERJI HATLARINDAKI PARAZITIK ETKI ICIN ACILIS GECIKMESI
    PAUSE 1000
 

    'OPTION_REG = %00000001        ' Enable PORTB pullups
    TRISA=%00111111
    ADCON1 = %10000010	   ' Set PORTA analog and right 
    INTCON=%00100000
    
    LCDOUT $FE, 1 ;lcd temizlenir

    TEMP1=ADC_ORNEKSAYISI
    ADC_KANAL1=0
    ADC_KANAL2=0
    ADC_KANAL3=0
    ADC_KANAL4=0

GOTO PRJ_LOOP

;********************************************************************
ADC_OKU:
	'ORNEKLER ALINIR VE ORTALAMA DEGER HESAPLANIR
	'BU EN DOGRU DEGERI YAKALAK VE
	'ADC GORUNTULEME HIZINI YAVASLATMAK ICINDIR

ADC_OKU_1:    
    ADCIN 0,W1
    ADC_KANAL1=ADC_KANAL1+W1
    
    ADCIN 1,W1
    ADC_KANAL2=ADC_KANAL2+W1

    ADCIN 2,W1
    ADC_KANAL3=ADC_KANAL3+W1

    ADCIN 3,W1
    ADC_KANAL4=ADC_KANAL4+W1
    
    TEMP1=TEMP1-1
    IF TEMP1>0 THEN RETURN 
	
    ADC_KANAL1=ADC_KANAL1/ADC_ORNEKSAYISI
    ADC_KANAL2=ADC_KANAL2/ADC_ORNEKSAYISI
    ADC_KANAL3=ADC_KANAL3/ADC_ORNEKSAYISI
    ADC_KANAL4=ADC_KANAL4/ADC_ORNEKSAYISI
	
    W2=OLCUM_VOLTAJI
    W3=OLCUM_VOLTAJI1
    W4=OLCUM_VOLTAJI2
    W5=OLCUM_VOLTAJI3
    
    W2=W2/1023
    W3=W3/1023
    w4=w4/1023
    W5=W5/1023
    
    ADC_KANAL1=ADC_KANAL1*W2
    ADC_KANAL2=ADC_KANAL2*W3
    ADC_KANAL3=ADC_KANAL3*W4
    ADC_KANAL4=ADC_KANAL4*W5
    
    cALL EKRANI_YAZ

    TEMP1=ADC_ORNEKSAYISI
    ADC_KANAL1=0
    ADC_KANAL2=0
    ADC_KANAL3=0
    ADC_KANAL4=0
	           
RETURN
;********************************************************************
EKRANI_YAZ:

    LCDOUT $FE, 1:DELAYMS 1     'LCD CLS
	'CLS			 	   'VEYA BU KOMUTTA KULLANILABILIR 30ms
	
    IF PORTB.0=0 THEN
    DWD0=adc_kanal1
    LCDOUT $FE, $80   'BIRINCI SATIR BASI
    LCDOUT "KANAL A -- ",DEC DWD0
    LCDOUT $DF
    ENDIF
	
    IF PORTB.1=0 THEN
    'DWD=ADC_KANAL2
    LCDOUT $FE, $C0
    LCDOUT "KANAL B -- ",DEC1 (ADC_KANAL2 +8)
    ENDIF
	
    IF PORTB.2=0 THEN        
    DWD1=ADC_KANAL3
    LCDOUT $FE, $94 'üçüncü SATIR BASI
    LCDOUT "KANAL C -- ",DEC DWD1," %"
    ENDIF
	
    IF PORTB.3=0 THEN
    'DWD2=ADC_KANAL4
    LCDOUT $FE, $D4
    LCDOUT "KANAL D -- ",DEC1 ADC_KANAL4," VOLT"
    ENDIF
	
RETURN

END


Proteus ve Proton pic basic kod dosyası :
http://groups.yahoo.com/group/PicProjeUP15/files/MaxiBoost/

thermo4.zip dosyasındadır .

aster

Selam, bir ipucu versem işinizi görebilmisiniz?
K tipi tc Ni-NiCr tellerin birleşmesi sonucu oluşur
piyasada 0.25 mm kalınlığında olması lazım (demir eritme de ölçümlerde bu tip ince tel kullanılıyordu)
siz sadece teli alsanız birleştirmeyi yaparsınız (sıcak nokta)
kablo uzatma işi kolay, uç kısmını silikonla izole edip bir kılıfa soksanız
veya piyasada 5-6mm çapında hazır kılıflarda var bulabilirseniz bunları kullanın derim

bende hazır almak tan ziyade kendim yaparım termokuplumu
2mm tel kullanıyorum boncukluyorum borusunu hazırlıyorum tekrar bir dış koruyucu kılıf alıyorum kafa klemens ve çok ucuza geliyor tabi benim tüketimim fazla olduğu için uğraşıyorum

eger yapabilirim derseniz bahsettiğim ince tellerden bir deneyin derim

Maxim

Alıntı yapılan: "aster"Selam, bir ipucu versem işinizi görebilmisiniz?
K tipi tc Ni-NiCr tellerin birleşmesi sonucu oluşur
piyasada 0.25 mm kalınlığında olması lazım (demir eritme de ölçümlerde bu tip ince tel kullanılıyordu)
siz sadece teli alsanız birleştirmeyi yaparsınız (sıcak nokta)
kablo uzatma işi kolay, uç kısmını silikonla izole edip bir kılıfa soksanız
veya piyasada 5-6mm çapında hazır kılıflarda var bulabilirseniz bunları kullanın derim

bende hazır almak tan ziyade kendim yaparım termokuplumu
2mm tel kullanıyorum boncukluyorum borusunu hazırlıyorum tekrar bir dış koruyucu kılıf alıyorum kafa klemens ve çok ucuza geliyor tabi benim tüketimim fazla olduğu için uğraşıyorum

eger yapabilirim derseniz bahsettiğim ince tellerden bir deneyin derim

Zaten problem kılıf olayı ,tel bendede var ,max 900 - 1000 dereceyi kesin görecek olan bu kılıfın ciddi dayanıklı olması lazım ,dayanıklılık demek  kılıfın et kalınlığının ince olmaması demek ,fakat kalın oluncada okuma gecikiyor ,zor bir durum açıkçası ,üstelik eksoz manifoldunda çıkışa doğru ciddi bir hava basıncı oluşması söz konusu ve 15 cm ileride tahmini 100 bin devir dolaylarında dönen turbonun pervanesi var eğer bu kılıftan küçücük bir parça dahi kopsa geriye ne turbo kalır ne birşey .
O yüzden tc nin bu işe uygun olması veya düşünülmüş olması lazım ,piyasadaki hazır kılıfları bilemiyorum ,görmek lazım .

Siparişi verdim artık tc bir gelsin bakalım beğenmezsem başka yollara başvurucaz mecburen .

Bu arada www.eio.com dan 15$ lık bir 4x16 satır lcd siparişide verdim ,yetişirse o da gelecek .

aster

Demir çelik sektöründe kullanılan (eskiden tabi şimdi farklı olabilir )K tipi termokupl,
ince telin üstünde ince bir cam fanus içinde durur ve ısıyı ölçene kadar bu cam erimez sonra erir ve tel gider, ısı 1800 derece

ısıyı iyi iletmen için ısı silikonu kullan ama tel kılıfa izole olsun
kılıf olayını bir tornacıda halledebilirsin,