Voltmetre Ampermetre

Başlatan erdemefe, 19 Haziran 2010, 01:45:54

erdemefe

arkadaşlar protonda yaptığım voltmetre devresinde votaj 14.1 volta geldiğinde bir çıkış 14.4 volta geldiğinde başka bir çıkış vermesini istiyorum bunları sadece if komutları ile gerçekleştirebiliyorum fakat yapmak istediğim tam olarak voltaj istenilen değere geldikten 10 sn sonra çıkış vermek. if komutlarının arasında gecikme koyduğumda ise program o kısma geldiğinde başka hiçbir işlem yapmadan bekliyor yani voltaj değişikliğini göremiyorum. bu işlem için nasıl bir algoritma ya da nasıl bir çözüm bulabiliriz. bir arakdaştan kesme kullan önerisi aldım ama daha önce hiç kullanmadığım için beceremedim zaten programlama bilgim vasat seviyede.

'****************************************************************
'*  Name    : UNTITLED.BAS                                      *
'*  Author  : [select VIEW...EDITOR OPTIONS]                    *
'*  Notice  : Copyright (c) 2009 [select VIEW...EDITOR OPTIONS] *
'*          : All Rights Reserved                               *
'*  Date    : 31.10.2009                                        *
'*  Version : 1.0                                               *
'*  Notes   :                                                   *
'*          :                                                   *
'****************************************************************
Device 16F876
Declare LCD_DTPIN PORTB.4
Declare LCD_RSPIN PORTB.1
Declare LCD_ENPIN PORTB.3
Declare LCD_RWPIN PORTB.2
Declare LCD_INTERFACE 4
Declare LCD_LINES 2
Declare ADIN_RES 10
Declare ADIN_TAD FRC
Declare ADIN_STIME 50

ADCON1=%10001110
TRISA=%00010011
TRISB=0
TRISC=0

Dim VOLT As Word
Dim AMPER As Word
Dim HVD As Word
Dim HAD As Word
Dim HAM As Word

Dim MV As Byte
Dim MA As Byte
Dim a As Byte
Dim b As Byte
Dim c As Byte
Dim d As Byte

Dim WATT As Float

PORTB=0
PORTA=0
VOLT=0
Low PORTC.2
Low PORTC.3
DelayMS 100
Cls



Low PORTC.2
Low PORTC.3

BASLA:
ADIn 0,HAM

       If HVD>=141 Then
       High PORTC.2
       Else
       Low PORTC.2
       EndIf
       
       If HVD>=144 Then
       High PORTC.3
       Else
       Low PORTC.3
       EndIf

BAK:
If ADCON0.2=1 Then BAK
DelayMS 5

GoSub HESAPV

ADIn 1,HAM

DelayMS 5
GoSub HESAPA

GoSub HESAPW
DelayMS 5

GoSub EKRAN
DelayMS 1500
GoTo BASLA

EKRAN:
Print At 1,1,"V=",DEC2 VOLT,".",DEC1 MV   
Print At 2,1,"A=",DEC2 AMPER,".",DEC1 MA
Print At 1,9,"W=",#WATT
Return

HESAPV:
HVD=((HAM+1)*/1500)/10
VOLT=HVD/10
MV=(HVD)//10
Return

HESAPA:
HAD=((HAM+1)*/1250)/10
AMPER=HAD/10
MA=(HAD)//10

HESAPW:
WATT=(HVD*HAD)/100

Return
End

mustafacan

eğer volt şundan büyükse ve eşitse
şu işi yap
endif

eğer volt şundan büyükse ve eşitse
şu işi yap
endif


belki fikir olur...
Keşfedilecek çok teknoloji var. Boş Vaktim Yok!