Miliohm degerinde direnc olcmek

Başlatan Elektronikprojem, 02 Mart 2016, 19:13:21

ete

LMC662 deki buton probların kısa devre edilmesini simule ediyor olsa gerek.

Ete

Elektronikprojem

Problari birbirine değdirip sifirliyorum ardından problari ayırıp LmC662  üzerindeki butona basıyorum ekranda error yazılıyor tahminimce error yazısı yüksek değerde çıkıyor problar boşta iken de değerin sonsuz olması lazım diye düşünüyorum .Sonra olcume geçiyorum. Elimde bir de hioki firmasına ait miliohmmetre var onla olctugum değeri bu devrede bazen yakalıyorum bazen farklı değerler alıyorum

ete

Probları kısa devre edip sıfırlama butonuna basınca program önce Opamp çıkışndan gelen voltajı ölçüyor. Buna offset voltajı deniliyor. Butonu bırakıp bir direnç bağlayıp ölçüm yapınca yine opamp çıkışınıu ölçüyor ve offset voltaj değerini bu son ölçümden çıkartıp net dirence karşılık gelen gerilimi bulmuş oluyor. Bunuda formüle koyarak direnci hesaplıyor.
Probları boşta bırakıp sıfırlama butonuna basarsan hiç bir şey ölçülemeyeceği için sistem hata veriyor.

Bu sistemde şemada kalın çizgilerle gösterilmiş bağlantılar mutlaka en az 1mm lik teller ile yapılmalıdır. Prob telleri yine çok kalın olmalı en az 1 lik tel ve boyuda 10 cm den uzun olmamalı hatta mümkünse daha kısa olmalı.
Aksi halde bütün bunarın direnci hesaba dahil edilir ve sonuç da bozuk çıkar.

Ete

onurinci

hocam
Zeroing yani sıfırlama butonu  aynı gövdede çift'li bir bas bırak buton,ben bunu kendimce uygun görmedim,sebebi ölçüm yaptığım 30cm'lik .75'lik bakır kabloyu ,yapılan hesabın dışında bırakması idi,o yüzden önce propları kısa devre ediyorum,sonra sıfırlama butonuna basıyorum..kesinlikle proplar açık iken 0'lama olmuyor yapılan matematik işlem bozuluyor,0'lama pek stabil değil,bu da analog sistemden kaynaklı,örnek sıfırladım ölçtüm 2.5 mili ohm geldi, devreyi hiç ellemedim 15 dakika sonra ölçtüm,2.7 miliohm görüyorum,oysa yine sıfırlar isem yine en başta ölçtüğüm 2.5 miliohm'u net bir şekilde görüyorum..

sonmoikan

#19
Bende bir faydam olsun istedim. Elimden geldiği kadarıyla kodları basic e göre uyarlamaya çalıştım.
Simülasyonda güzel bir şekilde çalışıyor. Faydası olur umarım. Kod ve şema ekte sunulmuştur.
ABDULLAH

Elektronikprojem

Çok yararlı bilgiler aldım hepiniz sağolun.

onurinci

@sonmoikan
bunu zevkle deneyebilirim,sıfırlama butonuna ihtiyaç duymadınmı ?

sonmoikan

#22
Vakit bulabilirsem biraz uğraşıyım.
ABDULLAH

sonmoikan

#23
Offset (sıfırlama) ekledim arkadaşlar.


@ DEVICE pic16F88             'işlemci 16F88
@ DEVICE pic16f88, WDT_on     'Watch Dog timer kapalı
@ DEVICE pic16f88, PWRT_ON    'Power on timer açık
@ DEVICE pic16f88, MCLR_OFF   'mclr off
@ DEVICE pic16f88, PROTECT_On 'Kod Protek kapalı
@ DEVICE pic16f88, INTRC_OSC_NOCLKOUT
;@ DEVICE Pic16F88, CCPMX_On  'CCP1 on= PWM çıkışı PortB.3 de off=PWM çıkışı PortB.0 da
DEFINE OSC 4

DEFINE ADC_BITS     10     'A/D  çevirim sonucu 10 bit olarak ayarlandı
DEFINE ADC_CLOCK 3     'Clock  kaynağı (3=rc)
DEFINE ADC_SAMPLEUS 50 'Örnekleme zamanı mikro saniye cinsinden.

ADCON1= %10001110   ' 10 bit(0-1024 arası) sonuç almak için.
ANSEL = %00000100   ' PartA.2 den adc oku
;ADCON1.1 = 1;
;ADCON1.0 = 0;
CMCON = 7           ' PORTA digital
OSCCON= %01101100   ' 4 Mhz 'e eşitlenmiş olur.


TRISA=%11111111 : PORTA=0
TRISB=%00000000 : PORTB=0

   
' Define LCD pins
DEFINE LCD_DREG PORTB 'LCD data bacakları B porta bağlı
DEFINE LCD_DBIT 4 'LCD data bacakları 4.pinden başla
Define LCD_RSREG    PORTB   'LCD RS Bacağı B Porta bağlı
Define LCD_RSBIT    2       'LCD RS 2.pine baglı
Define LCD_EREG     PORTB   'LCD E Bacağı B Porta bağlı
Define LCD_EBIT     3       'LCD E 3.pine bağlı
DEFINE LCD_BITS 4 'LCD 4 bit olarak bağlı
DEFINE LCD_LINES 2 'LCD 2 satır

SYMBOL SECIM = PORTA.4
SYMBOL SIFIRLA = PORTA.5
SYMBOL LED   = PORTB.0

SAYAC VAR BYTE
HAM VAR WORD
TEMP VAR WORD
SONUC VAR WORD 70
OFFSET VAR WORD 75
DEGER VAR WORD  80

LCDOUT $FE,$40,$00,$00,$0E,$11,$11,$0A,$1B ; Ohm

Pause 200
Lcdout $fe,$80, 1, " MiLi OHMMETRE " ' Send value to LCD
Lcdout $fe,$c0, 1, "   0R - 1R74   " ' Send value to LCD
Pause 1000
LCDOUT $FE, 1

LED = 0
OFFSET=0

BASLA:

TEMP=0
      for SAYAC = 0 TO 100
         Adcin 2, HAM
         TEMP=TEMP+HAM
         PAUSEUS 500
     NEXT SAYAC
     HAM = TEMP / 100
     
     if HAM > 512 THEN
         Lcdout $fe,$80,1,"     HATA      "
         Lcdout $fe,$C0,1,"  ARALIK DISI  "
         PAUSE 500
         Lcdout $fe,$80,1,"               "
         PAUSE 500
         GOTO BASLA
      ENDIF
     
      if SECIM = 0 THEN                   
         SONUC = ((HAM * (10/4)) / 101) * 100   ;(10/4) 2.5 VOLT REFERANS
       else
         SONUC = ((HAM * (10/4)) / 11) * 100   
      ENDIF
     
      IF SIFIRLA = 0 THEN OFFSET=SONUC
      SONUC=SONUC-OFFSET
      IF SONUC >9300 THEN SONUC=0
     
      Lcdout $fe,$c0, 1,DEC4 SONUC ,"uV - ",DEC4 OFFSET,"uV"
     
      DEGER=SONUC/5
      Lcdout $fe,$85, 1,DEC1 DEGER DIG 3,".", DEC1 DEGER DIG 2, DEC1 DEGER DIG 1,0," "

      LED = 1
      PAUSE 250
      LED = 0
      PAUSE 250

GOTO BASLA
ABDULLAH

ete

Orjinal Programın aynı özelliklerine sahip programı ilişikte veriyorum.
Hesap sistemini kendi mantığıma göre yaptım. Orjinal HEX de dosya içindedir. gerekirse onu yükleyip karşılaştırma yapabilirsiniz.

Ete

Elektronikprojem


Elektronikprojem

Merhabalar . Hepinize iyi günler ETE hocamın verdiği kodları ve devreyi denedim  şu anda çalışıyor. Şöyle bişey yapmak istiyorum bu devrede
;eğer direnç değeri 10 mohm üzeri ise boşta kalan herhangi bir pine bağlayacağım  (led veya buzzer ) ile uyarı versin .Bu konuda bir fikir rica ediyorum.Analog gelen sinyalin kaç değerini almam gerektiği konusunda yardım bekliyorum .

ete

Benim kodlara fazla güvenme. Belirli aralıkta çalışıyor ama aralık dığında maalesef küsüratlı hesap nedeni ile saçmalayabiliyor.
Yinede yapmak istediğin işte illaki analog değeri bilmende gerekmiyor. Yapman gereken ;
IF miliohm>10 Then PORTX.x=1
Şeklinde bir komut koyman yeterli olur.

Ete

Elektronikprojem

#28
Hocam bir de kapattiginiz bir satır var hata Aralık dışı yazan neden kapattıniz o satırı ben o satırı açıp o değerle oynayarak bulmaya çalışıyorum

ete

Kapattım çünki aralık içinide aralık dıı olarak tanmlıyordu.

Sen kullan istediğin gibi.
Ete

Powered by EzPortal