digital ohm metre yardım

Başlatan ruzgar78, 24 Şubat 2015, 18:47:36

ruzgar78

Ete hocam 2 ohm un üzerine çıkınca alarm vericek bir devre yapmaya çalışıyorum.
adc den ham değeri okutup volt olarak işledim. nerde yanlış yapıyorum neleri düzeltmeliyim hocam

r=V/I
I=(VS-VDUT)/R1 ; R1 GERİLİM BÖLÜCÜDEKİ SABİT 2K LIK DİRENC DEĞERİM ; VS DEVREYE UYGULANAN GERİLİM ; VDUT DA GERİLİM DÜŞÜMÜ
R= VDUT/I

PROGRAM ŞÖYLE YAZDIM AMA BİR TÜRLÜ DİRENÇ DEĞERİNİ EKRANDA OKUTAMADIM
@ 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  'on= PWM çıkışı PortB.3 de off=PWM çıkışı PortB.0 da
DEFINE OSC 4
OSCCON=%01101100
cmcon=7
PORTA=0:TRISA=1
PORTB=0:TRISB=%00000000
'OPTION_REG.7=0
DEFINE ADC_BITS 10    ' ADCIN resolution  (Bits)
DEFINE ADC_CLOCK 1    ' ADC clock source  (Fosc/8)
DEFINE ADC_SAMPLEUS 3 ' ADC sampling time (uSec)

DEFINE LCD_DREG      PORTB   ;LCD data bacakları hangi porta bağlı?
DEFINE LCD_DBIT      4      ;LCD data bacakları hangi bitten başlıyor?
DEFINE LCD_RSREG     PORTB   ;LCD RS Bacağı Hangi Porta bağlı ?
DEFINE LCD_RSBIT     1      ;LCD RS bacağı Hangi Bite bağlı ?
define lcd_RWREG     PORTB
define LC_RWBIT      2
DEFINE LCD_EREG      PORTB   ;LCD Enable Bacağı Hangi Porta bağlı?
DEFINE LCD_EBIT      3      ;LCD Enable Bacağı Hangi bite bağlı ?
DEFINE LCD_BITS      4      ;LCD 4 bit mi yoksa 8 bit olarak bağlı?
DEFINE LCD_LINES     2

ADCON0=0
ADCON1 = %10000000 
ANSEL=%00000001

HAM    var  word  ;ADC den  okunan ham Digital değer.
DIRENC  var  word ;16 bit  değişken tipi seçtik kullanacağımız değer 10 bit olacak.
Mvolt  var  byte
MMVOLT VAR BYTE
I      VAR BYTE
TOPLAM VAR WORD
AMPER  VAR WORD
R VAR  WORD

lcdout $fe,1
PAUSE 300

BASLA:
      Toplam=0
      FOR I=0 to 9
         ADCIN 0,HAM
         TOPLAM=TOPLAM+HAM
      NEXT
      HAM=TOPLAM/10
    DIRENC=((1023-ham)*/5819)/100
      lcdout $fe,$80,"DIRENC=",dec DIRENC,"   "
      lcdout $fe,$c0,"ham=",dec ham,"   "

PAUSE 500
GOTO BASLA

ete

Hem programını hemde yüklemiş olduğun şemanı değiştirdim.
Yükle ve bak.
Ete

ruzgar78

hocam öğrenmek için soruyorum 5819 değeri neye karşılık geliyor

ruzgar78

Kohm değerine çekince direnci okunan deger farklı oluyor

ete

#4
Devreye 10 ohmluk bir ayarlı direnç ekledim. Bana 2 ohm dan küçük olunca alarm verecek bir sistem dedin.
Min direnç değerinde yani sıfır ohmda sistem ADC den 1023 okuyor. Maksimum dirençte ise sistem ADC den, 979 gibi bir değer okuyor. O halde 10 ohmluk değer değişimi 1023-979=44 birimlik ADC değerinde gerçekleşiyor demektir.
Bu 10 (10 ohm toplam direnç değerini)  44 e bölersek 0,22727272 gibi bir değer buluruz. Bunuda 256 ile çarparsak 58,181818 gibi bir değer buluruz. Bu değeri 5819 kabul edip hesap sonucu bulunan değeri 100'e bölerek birim okuma başına hesaplanan direnc değeri için sabit çarpanımızı bulmuş oluruz.

Bütün direnç ölçecek devreler mutlaka kademeli olarak seçilirler. Kohm ölçeceksen başka bir gerilim bölme devresi hazırlaman ve hesabı ona göre değiştirmen gerekir.

Ete

ruzgar78

şimdi anladım hocam ,  çok teşekkür ederim

Powered by EzPortal