Voltaj testi

Başlatan elektronikAdam, 26 Haziran 2018, 13:29:09

elektronikAdam

İyi günler,
Bu işte yeni biri olarak soruyorum sorumu öncelikle bunu dikkate alırsanız sevinirim.
Benim elimde bir kart var 3 tane test noktası var. Bu test noktalarında 15.3V, 5V ve 3.3V var. Benim bir test kartı hazırlayıp bu noktalarda istenilen voltajların olup olmadığını kontrol etmem lazım. Eğer istenilen voltaj varsa led yanacak şekilde. Opamp karşılatırıcı ile yapılabilmekte fakat başka bir yolu var mı? teşekkürler şimdiden

OG

1 adet 12F675 ile yapabilirsin
Bütün dosyalar https://drive.google.com/open?id=1sSvNwhuQhyYshx1jT1SZTFf7biHGT984

Programın değişik ölçüm toleransları için (%1, %3, %5, %7, %10) farklı hexler içinde
Bu toleransı eeprom adres 0 daki kayıtlı değeri oynayarak 0-100 arası değiştirebilirsin
Tolerans demek şu
Olcum noktasında 2,5V olsun
+- hangi sınır değerler içinde ise bu değeri var ve sınırlar içinde kabul edeceği anlamında.

- - -
Montaj sonrası gerilim bölen dirençlerde kayma olabileceği için devreyi önce 1 kere setlemek gerek,
12F675 ilk hex yükleme yapıldıktan sonra setlenmemiş olduğundan çalışmayacak ve setleme bekleyecektir

SETLEME;
doğru değerde giriş voltajları bağlandıktan sonra
Butona basılıp giriş değerlerinin okunması sağlanır, okur, hafızasına kaydeder
ve 0,5 sn led yanıp söner, normal çalışmaya geçmek için tekrar butona basılmayı bekler
Butona basınca normal calışmaya gecer, boltajların üçü de var ve sınırlariçinde ise led yanar
aksi taktirde söner.

SETLEME işi tekrar yapılabilir, bunun için cihaz enerjilenmeden önce butona basılır, sonra enerjilenir,
butona basıldığı ledin yanması ile görülür, buton bırakılır, led söner
setleme işlemini buton bıraktıktan itibaren aynen üstteki şekli ile tekrar yapar ve normal çalışmaya geçer.

Program ( Proton )

Device = 12F675
Config CPD_OFF,CP_ON,BODEN_ON,MCLRE_OFF,PWRTE_ON,WDT_OFF,INTRC_OSC_NOCLKOUT
Set_OSCCAL
Declare Xtal 4
All_Digital = TRUE 


Declare Adin_Res 10
Declare Adin_Tad FRC
Declare Adin_Stime 100 

ANSEL = %00000111 

GPIO = 0
TRISIO = %00100111
GPIO = 0
IOC=%00000000  
INTCON=%00000000
OPTION_REG=%1001111 
ADCON0 = %10000000   
WPU = %00100000

'------------------------------------------------------------------------------- 

Dim tolerans As Byte
Dim HAM    As  Word  'ADC den okunan ham digital değer.
Dim volt_1 As Word
Dim volt_2 As Word
Dim volt_3 As Word 
Dim volt_1_min As Word
Dim volt_2_min As Word
Dim volt_3_min As Word

Dim volt_1_max As Word
Dim volt_2_max As Word
Dim volt_3_max As Word 

Dim s_1 As Byte
Dim dwd_1 As Dword

Dim buton As GPIO.5
Dim LED As GPIO.4 
'------------------------------------------------------------------------------- 



EData 10,_       '''  0    Voltaj sınırı için Yüzde tolerans
0,0,0,0,_       '''  1,   2,  3,  4 volt 1 için min ve max 
0,0,0,0,_       '''  5,   6,  7,  8 volt 2 için min ve max
0,0,0,0,_       '''  9,  10, 11, 12 volt 3 için min ve max
0,_             ''' 13
0,_             ''' 14       
0               ''' 15 

''''''''''
LED = 0
DelayMS 200
Clrwdt

s_1 = ERead 15      ''' onceden setlenmismi

If s_1 = 0 Then setle   ''' setlenmemisse 
If buton = 0 Then setle_onu ''' ailista buton basili ise set

    
 
BASLA:
    LED = 0     ''' led sonuk

bas_2:    
    ''' 1. girisi olc 
    HAM = ADIn 0
    If HAM < volt_1_min Then BASLA  '' min degerden  az ise ledi yakmadan basa      
    If HAM > volt_1_max Then BASLA  '' max degerden cok ise ledi yakmadan basa

    ''' 2. girisi olc 
    HAM = ADIn 1
    If HAM < volt_2_min Then BASLA  '' min degerden  az ise ledi yakmadan basa      
    If HAM > volt_2_max Then BASLA  '' max degerden cok ise ledi yakmadan basa

    ''' 3. girisi olc 
    HAM = ADIn 2
    If HAM < volt_3_min Then BASLA  '' min degerden  az ise ledi yakmadan basa      
    If HAM > volt_3_max Then BASLA  '' max degerden cok ise ledi yakmadan basa

    LED = 2     ''' led yanik
GoTo bas_2

'''
setle_onu:
    LED = 1
    For s_1 = 0 To 150
        Clrwdt
        DelayMS 1
        If buton = 0 Then setle_onu     ''' buton bırakasıya kadar bekle
    Next

setle:
    LED = 0
    For s_1 = 0 To 150
        Clrwdt
        DelayMS 1
        If buton = 1 Then setle         ''' buton basasıya kadar bekle
    Next
    DelayMS 500
    Clrwdt
    
    tolerans = ERead 0   ''' tolerans
    
    ''' birinci girisi oku
    HAM = ADIn 0
    GoSub hesap                 ''' yüzdenin yarisini hesapla gel      
    volt_1_min = HAM - dwd_1
    volt_1_max = HAM + dwd_1
    
    ''' ikinci girisi oku
    HAM = ADIn 0
    GoSub hesap                 ''' yüzdenin yarisini hesapla gel 
    volt_2_min = HAM - dwd_1
    volt_2_max = HAM + dwd_1        

    ''' ucuncu girisi oku
    HAM = ADIn 0
    GoSub hesap                 ''' yüzdenin yarisini hesapla gel 
    volt_3_min = HAM - dwd_1
    volt_3_max = HAM + dwd_1
    
    Clrwdt
    
    ''' değerleri EEPROM'a kaydet
    EWrite 1 , [ volt_1_min ]
    EWrite 3 , [ volt_1_max ]
    Clrwdt
    
    EWrite 5 , [ volt_2_min ]
    EWrite 7 , [ volt_2_max ]
    Clrwdt    

    EWrite 9 , [ volt_3_min ]
    EWrite 11 , [ volt_3_max ]
    Clrwdt
    
    EWrite 15 , [ 255 ]     ''' değerler kaydoldu
    
    LED = 1                 ''' led ile bildir  
    DelayMS 500
    Clrwdt
    LED = 0
setle_2:
    For s_1 = 0 To 150
        Clrwdt
        DelayMS 1
        If buton = 1 Then setle         ''' buton basasıya kadar bekle
    Next     
GoTo BASLA      ''' basa git
''''''

hesap:
    Clrwdt
    dwd_1 = HAM * tolerans
    dwd_1 = dwd_1 / 200     ''' yüzdenin yarısı
Return                                                                             





FORUMU İLGİLENDİREN KONULARA ÖM İLE CEVAP VERİLMEZ.

asma

Bir de bu işi yapan özel entegreler var. Mesela PC güç kaynaklarının çıkışını kontrol eden entegreler gibi. İstenilen ve standart değerler yakın. 3v3 , 5v ve 12v kontrol edilirken istenilen 15v3 olmuş. Gerilim bölücü direnç kullanarak halledilir.
PC power supply supervisor
ya da genel maksatlı voltage supervisor olarak aranabilir.
Ben ATX güç kaynaklarında rastlıyorum ama malzemeciden istemek/bulmak zor.
Örn: http://www.ti.com/lit/ds/symlink/tps3511.pdf

Kolay gelsin.