Picproje Elektronik Sitesi

DİJİTAL & ANALOG ELEKTRONİK => Temel Elektrik/Elektronik => Konuyu başlatan: elektronikAdam - 26 Haziran 2018, 13:29:09

Başlık: Voltaj testi
Gönderen: elektronikAdam - 26 Haziran 2018, 13:29:09
İ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
Başlık: Ynt: Voltaj testi
Gönderen: OG - 27 Haziran 2018, 00:02:25
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                                                                             



(https://s20.postimg.cc/t5h87m0hl/simulation.jpg) (https://postimg.cc/image/t5h87m0hl/)

(https://s20.postimg.cc/a0dyxvgop/bolucu.jpg) (https://postimg.cc/image/a0dyxvgop/)
Başlık: Ynt: Voltaj testi
Gönderen: asma - 27 Haziran 2018, 05:01:19
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.