mv ölçme devresi

Başlatan acemdiyarı, 05 Eylül 2013, 18:02:50

acemdiyarı

Selam ben 100mv gibi bir ölçüm devresi aradım ama dijital olarak bulamadım 3dijit olarak 12-16 serisi bir entegre için program yazabilecek bir arkadaş olursa şemasını oluşturabilirim teşekür ederim.

acemdiyarı

#1
Yanlışım olabilir öneride ve düzeltmede yardımcı olabilirsiniz, imkanlarım kısıtlı elimdeki malzemelere göre hareket etmeye çalııyorum.

ete

#2
100 mv ölçme demişsin ama girişe 5V verip gerilim bölerek 2,5V ölçmeye çalışıyor gözüküyorsun.
Bu sistem 100 mv'u nasıl ölçecek?. 100 mv ADC girişinden ölçülmek için küçük bir değerdir. Yalnızca 0-100mv ölçülecek ise bir opamp yardımı ile 0-100mv giriş 0-5V seviyesine getirilebilir. Ölçüm sonucu ekrana 0-100mv olarak verilebilir.

0-5v işini sen ayarlarsan aşağıdaki program AN0 dan girdiğin 0-5V luk değeri ekranda 0-100 olarak göstermektedir.


'****************************************************************
'*  Name    : UNTITLED.BAS                                      *
'*  Author  : E.T.E]                                            *
'*  Notice  : Copyright (c) 2013 [İzinsiz Kullanılamaz]         *
'*          : All Rights Reserved                               *
'*  Date    : 06.09.2013                                        *
'*  Version : 1.0                                               *
'*  Notes   :                                                   *
'*          :                                                   *
'****************************************************************

@ DEVICE pic12F675                      'işlemci 12F675
@ DEVICE pic12F675, WDT_OFF              'Watch Dog timer kapalı
@ DEVICE pic12F675, PWRT_ON             'Power on timer açık
@ DEVICE pic12F675, PROTECT_OFF         'Kod koruma kapalı
@ DEVICE pic12F675, MCLR_OFF            'MCLR pini kullanılMIYOR.
@ DEVICE pic12F675, INTRC_OSC_NOCLKOUT  'Dahili osilatör kullanılacak

DEFINE OSCCAL_1K 1  'bu komut mutlaka olacak OSCCAL değerini yeniden pice yazdırıyor

DEFINE OSC 4

DEFINE ADC_BITS 10    ' ADCIN resolution  (Bits)
'DEFINE ADC_CLOCK 1    ' ADC clock source  (Fosc/8)
DEFINE ADC_SAMPLEUS 10 ' ADC sampling time (uSec)

OPTION_REG=%10001000

CMCON = 7
ANSEL = %00000001
ADCON0=%10000000
GPIO=0
TRISIO=%00000001
WPU=0
'----------------------değişkenler-------------------------------

HAM    var WORD 56
VOLT   var word 58
BIRLER VAR BYTE 60
ONLAR  VAR BYTE 61
YUZLER VAR BYTE 62
SAYI   VAR BYTE
X      VAR BYTE
SYMBOL CLK=GPIO.1
SYMBOL DTA=GPIO.4
symbol KIL=GPIO.2
SYMBOL LED=GPIO.5

PAUSE 200

BASLA:

    ADCIN 0,HAM
    volt=(HAM+1)*/25
   
   X=VOLT DIG 0:GOSUB AL:BIRLER=SAYI
   X=VOLT DIG 1:GOSUB AL:ONLAR=SAYI
   X=VOLT DIG 2:GOSUB AL:YUZLER=SAYI

   SHIFTOUT DTA,CLK,1,[BIRLER,ONLAR,YUZLER]
   PULSOUT KIL,1
   PAUSE 100
   
   GOTO BASLA

AL:    LOOKUP X,[63,6,91,79,102,109,125,7,127,111,99,57],SAYI :RETURN   

     end

Ete

acemdiyarı

#3
Yardımınız için teşekkür ederim ete bey, giriş konusunda haklısınız açeleye geldi çizim girişe 358 ile hassas olacagını düşündüğüm için kullandım yanlız 100mv i geçince led yanmıyor çözünürlüğü en fazla bu şekilde kaça kadar yükseltilebilir1-2 hane daha eklenebilirmi.? 595 lerle değilde daha basit olabilirmi. 1-10-100-1000mv kademeli ölçüm yapmak için aklımda böle bir şey vardı ama bunu bulamadım burda yardımınızla gerçekleştirebilirim.

ete

Maksimum 5V ölçebilen bir girşin 5V tu aştığını anlaması çok zor.
Bu durumda sistemi 0-150 mv olarak tasarlamak gerekir. 100 mv aşıldığında o zaman led yaktırılır.
Hassasiyet pek bozulmasındersen 0-110 veya 0-120mv olarak da tasarlanır.
Bütün yapılacak iş programda;
max 100 mv ise (mevcut hali) formül Volt=(HAM+1)*/25
max 110 mv ise formül (110/1024)*256=27,5 bunu 275 alacağız Volt=((ham+1)*/275)/10
max 120 mv ise formül (129/1024)*256=30  ve Volt=(Ham+1)*/30
şeklinde uygulanır. Alta bir satır ilave edilerek,
IF VOLT>100 then
   LED=1
else
  LED=0
ENDIF
şeklinde iş kolayca halledilir.

Digit ve çözünürlük fiziksel olarak artırılabilr ancak matematiksel olarak word tipi değişken sınırları ile sınırlısınız. Word maksimum 65535 rakamını taşıyabilir. Buda ekrana 2 digit daha ilave edilebilir anlamına geliyor.
Sabit çarpanları 10 ile çarparak işlem yaparsanız bir digit 100 ile çarparak işlem yaparsanız 2 digit ilave etmiş olursunuz.
İlave digitler için ,
Birler=Volt dig 0
Onlar=Volt dig 1
Yuzler=Volt dig 2
Binler=Volt dig 3
Ybinler=volt dig 4
şeklinde alınıp ekrana verilir.
İlave digit karşılıkları shiftout komutuna eklenir.

Daha basit ve 595 kullanmadan yapmak için taramalı sisteme geçmek gerekir. Ama o zamanda hem transistörler devreye girer hemde bu pic yeterli gelmez. Daha basit gibi gözüksede hem devre hemde program açısından karmaşıklık artar.
Bence bu işlemci ile en basiti bu devre.

Elini verince kolunu kaptırmak gibi olmasın bir şey istedin yaptık verdik. Gerisini kendin halledersen her şey mümkün elbette.
Genelde yapıp vermeyi değil yol göstermeyi severim ve tercih ederim. Bu nedenle mümkün olduğunca izahat vermeye çalışıyorum. Arada birde olsa emek harcayanlara (en azından doğru dürüst bir şema üretenlere ) yapıp vererek de olsa yardımcı oluyorum. Vaktim müsait olduğu müddetçe.
Yok ben yapamıyorum diyorsan ya vazgeçeceksin, ya da oturup kendin yapmaya çalışacaksın yada ücretini ödeyip birisine yaptıracaksın. Sitede yapabilecek bir çok kişi mevcut.
Ete


acemdiyarı

Ete bey açıklamalarınız ve yardımınız için teşekkür ederim, amacım hepten hazırcılık değil tabiki azda olsa kendimce bişiler üretmeye yapmaya çalışıyorum ve yaparak daha iyi anlama olanagı karınca kararınca oluyor , verdiginiz şekilde program üzerinde ilaveleri yapmaya çalışacagım,

acemdiyarı

#6
sölediklerinizi uyguladım yanlız op amp kısımında istediğim hassaslıga inemedim 741 li devre üzerinde çalışarak of set faydası olur ümidi ile bu entegreyi kullandım ama giriş max120mv iken pot ile 0.033 giriş var ken çıkışta 0.010mv okuyorum 20mv fark oluşuyor bunu nasıl çözebilirim?
en son 10mv olarak ayarladım bu ayarı 1 mv şekline nasıl getirebiliriz? picin adc si mi yeterli kalmıyor etebey. çözünürlük yani.

Hattuşa

s.a.
acemdiyarı ustam 100mV luk çıkışı ölçmek için şöyle bir şema işini görür diye düşünüyorum, ben devreyi LM358 ile kurdum ki piyasada oldukça mevcut, 100mV u opampla evirmeyen yükselteçle 34 kat büyüttüm, matematiksel olarak 100mV =3,4V çıkış vermesi lazım (ufak tefek voltaj kayması olabilir ki basit bir opampta CMRR hatası doğaldır, çok kritik bir ölçüm ise rail to rail gibi kaliteli opamp kullanmak lazım) bu arada 3,5v un üzerine çıkılması iyi olmaz zira bu tip opamplarda kendi beslemeleri kadar çıkışlarını yükseltemiyorlar maalesef, sonuç olarak 0-100mV u siz 0-2,5v gibi bir aralıkta (kazanç direncini ayarlı trimpot kullanarak) çalışırırsanız adc okutulmasında hesap kolay olur.

şema ilişikte umarım işinize yarar

acemdiyarı

#8
Yardımınız için teşekkür ederim pro-tr ve ete bey, araştırmalarım sonucu istedigim hassasiyeti 741.358.324. gibi entegrelerle çözülmeyeceğine karar verip LMC6482 rail to rail bulabilirligi oldugu için bununla ilgili düzenlemeyi yaptım ve simülasyonda bir sorun yok gözüküyor, önerileriniz tavsiyeleriniz ne olabilir tabi gerçekte bir kaç problem olacaktır, şimdiki sorum 100mv için kalibre edebilmem için bana ne önerebilirsiniz ? Birde 100mvolt ölçümde 100mA de ölçebilirmiyim bunun la ilgili programda yada devrede nasıl bir değişiklik lazım?1000mv için Bu 10mv aralığı 1mv a programda nasıl bir değişiklik gerekir.?

Hattuşa

#9
slm acemdiyarı@
1-LMC6482 yi nerden buldunuz bana da lazım, özellikle LMC6484 quardlısından DIP kılıflı olmalı
2- neden lm358,741 den vazgeçiyorsunuz anlamış değilim, 0-100mV u illa ki 0-5v aralığında mı çalıştırmanız lazım, yani 0-3,5v arasında çalışsa basit bir matematikle kalibre edebilirdiniz, zira işlemci ile v okutma işleminde zaten kalibre işlemi yapılıyor.yani işlemciye okuduğu adc değeri volt veya mv olacağı konusunda kandırılıyor, bununla ilgili;
http://etepic.com/index.php?topic=476.msg5172;topicseen#msg5172
konuda ki ete hocamızın cevabını okursanız demek istediğimi anlarsınız
3-mA okuma içinde mv okuma işlemindeki gibi opampla bir devre kurmanız gerekir, yani yeni bir adc kanalı daha açmalısınız ki 12f675 te pin yetecek mi bilmiyorum. A ölçümünün nasıl yapılacağı konusunda fikir sahibi olmak istiyorsanız sitede voltmetre-ampermetre devresi yapmıştı ETE hocamız ondan yararlanabilirsiniz, yani bir shont direnci girip devreye direncin 2 yönündeki farklılığı opampla büyüterek ve yeterli kalibre yaparak a değerini volt cinsinden alabilirsiniz, ölçmek istediğiniz A değeri ortalama hangi aralıkta belki basit bir şema oluşturabiliriz.

edit:
Alıntı Yapşimdiki sorum 100mv için kalibre edebilmem için bana ne önerebilirsiniz ? Birde 100mvolt ölçümde 100mA de ölçebilirmiyim bunun la ilgili programda yada devrede nasıl bir değişiklik lazım?1000mv için Bu 10mv aralığı 1mv a programda nasıl bir değişiklik gerekir.?

size verdiğim şemada mantık kullanarak veya verdiğim linkteki örnektedeki voltaj değerini kendi değerinize kalibre edebilirsiniz. verdiğim şemada girişteki mV değeri ile çıkıştaki değeri karşılaştırın.
atıyorum o şemada opampa 10mV verdiğinde çıkışında 0.5v var buna göre bir formul oluşturacaksınız hepsi bu

acemdiyarı

slm
1-LMC6482 bu adreste gözükmekte  http://www.bluemavi.com/vitrin/table.asp
2-lm ve digerleri çıkış aralıkları yeteri derecede bana hassas gelmedi 1000mv a çıktıgımda sapmalar daha fazla gözlemledim.
yazıyı okuyacagım, 5v aralığı şart değildi ama öle başlamış oldumişe bir sebebi yok.
3-voltmetre-ampermetre bakıp inceliyorum, 675 te tek giriş oldugu için bu entegre 2 sini aynı anda görmek için yeterli olmayacaktır tabi çıkışlarıda  düşünmek lazım ,
Referans oluşturma iiçin ve 1000mv için 1mv şeklinde çözünürlük için ne yapmak lazım.?

Hattuşa

#11
slm acemdiyarı@

1. blumavide o entegre kalmamış, smd olması lazım
2.1000mV deyince işler karışıyor, siz 0-100mV demiştiniz (sanırım ben sizi yanlış anladım ki elinizde 0-100mV luk bir giriş var bunu ölçmek istediğinizi anladım) üst limit belli olmalı yani ölçüm aralığına karar vermelisiniz. 1000mv ise üst limit kolay, devredeki kazanç direncinin değerini düşürmeniz yeterli.
elinizde kullandığınız mevcut ölçü aletini düşünün volt ölçme kısmını inceleyin, mesela bende 200mV, 2v,20v ve 1000v luk kısım var, size fikir verebilir diye düşündüm, aynı şekilde farklı kazanç dirençli devreler kurarak bir komtator ile aralık değişimini yapabilirsiniz (tabi ölçüm aralığı çok yüksek ve çözünürlülük hassas olsun istiyorsanız)
3. ölçmek istediğiniz aralığı (ister volt, ister Amper) tam karar verin  zira kurulacak devreyi etkilemektedir

acemdiyarı

Sayfasında görünce var oldugunu düşündüm, evet 100mv dedim ve 1000mv kadar lazım olacagını düşünerek değiştirdim sonra yani 100mv kadar şu an ölçümde sorun yok fakat 100mv ta iken bile biz çözünürlük olarak aslında 10 mv seviyesinde ölçüm yapıyoruz anlıyorum bunu 1000mv a çıkınca görüyorum.Sölediginiz dirençlerle kazanç ayarını tam yapınca yani

1000mv da iken  op amp a giriş 3 baçakta 0.999 iken, çıkışından 5.000 var iken displayde 1000 görüyorum,

Pot 9,999 da iken diplayde 0007 gözüküyor ve op amp çıkışı 0,033 te kalıyor. Bu omp çıkışının min iniş seviyesi.Daha düşük çıkış seviyesi bir op amp kullanıldıgında bu display 0,001 mi olacaktır ve giriş değerini artırdıgımda ben0,001-0,002-0,003  gibi yükselmesini istiyorum.

Bu istediklerimi oluşturduktan sonrada amper de aynı  olabilir.
Basite degil araştırıp dogru degerde bir şey olmasını istiyorum. öneri yardım ve çözüme açıgım.

Hattuşa

acemdiyarı@
o zaman sen lmc6482 kullan ve beslemeyi simetrik yapmalısın ki min. değerde kayma olmasın

acemdiyarı

Alıntı yapılan: pro-TR - 08 Eylül 2013, 13:55:27
acemdiyarı@
o zaman sen lmc6482 kullan ve beslemeyi simetrik yapmalısın ki min. değerde kayma olmasın

Zaten üstte ben resim yükledim 6482 ile olanını gözünden kaçtı sanırım bu sölediklerimin hepsi 6482 içindi zaten:)

simetrik ile 0,033 değerin altına inecegini sanmıyorum çünki pdf te

Voltage at Input/Output Pin (V+) +0.3V, (V−) −0.3V) −0.3V ibare var. Yanlış anlamıyorsam.

Powered by EzPortal