:cry:
Arkadaşlar,
Haftasonumu PBP ile yapılmış voltmetre örneği arayarak geçirdim. asm ile cok fazla ama PBP ile bulamadım. 12 volt ölcebileceğim pbp kodu (mumkunse seması ile) olan yada bu konuda deneyimlerini paylaşmak isteyen arkadaşl varsa benimle iletişime geçebilirmi?
Teşekkürler..
Armut piş=
https://www.picproje.org/index.php/topic,2669
selam..
kullandığın pic'in manual'inden ADCON1 registerinin özelliklerine bak, orada referans diye bir bölüm var, yani belirli bir ayardan sonra bir bacağa referans gerilim veriyorsun.. diğer bir bacaktan da gerilim değerini alıyorsun...
gerilim ölçme aslında; referans gerilim 2^10 olacak sekilde, iki gerilimin birbirine oranını almaktır...
referans 10V ise ve sen 5 volt ölçersen okunan değer (2^10)/2 olacaktır..
umarım anlatabilmişimdir... anlayan?
Sevgili Cozturk ,
Amacım "Armut Piş" misali beleşe konmak değildi. Bulamamıştım ki 7017 gibi gereksiz bir entegre ile halletmek zorunda kaldım. Değerli açıklamaların ve forumdaki eşsiz yorumların için teşekkür ediyorum.
Axanc sanada teşekkürler. Olayı anlamamda yardımcı oldu ama hala kendi başıma yapamadım bişi. Yeni başladım nede olsa.. Zamanla..
Sewgiler..
Tamam tamam kızma. zaten bu "arama" kısmının iyi çalışmasından ben de şikayetçiyim. 7107 ile yaptığın devre yaklaşık 10 dk sonra yanlış göstermeye başlıyordur eminim.
Kanaatimce, vrefi 7805ten filan alıyorsan entegre ısındığı zaman bu kayıyor çünkü. BUna çzöüm olarak TL431 filan almıştım. 6 ay kadar oluyor hala deneyemedim. Selamlar saygılar.
Alıntı yapılan: "ASPExpert":cry:
Arkadaşlar,
Haftasonumu PBP ile yapılmış voltmetre örneği arayarak geçirdim. asm ile cok fazla ama PBP ile bulamadım. 12 volt ölcebileceğim pbp kodu (mumkunse seması ile) olan yada bu konuda deneyimlerini paylaşmak isteyen arkadaşl varsa benimle iletişime geçebilirmi?
Teşekkürler..
arkadaslar merhaba,
sevgili ETE nin Picbasic, 16F84 ve LM358 ile yaptigi Voltmetre projesinin aynisini LM358 yerine 16F628 icinde mevcut olan komparatörlerden birisini kullanarak yapmaya calistim.. ehh netice fena değil.. yalniz ETE nin Volt ölcme formülünde birazcik degisiklik yaparsak halledilir sanirim..
@ETE
üstat asagidaki linkte 16F628 icin HEX, BAS VE DSN dosyalar var bir gözatarmisin?
http://home.no/fsan/projects/Diverse/16F628%20Voltmetre/senin eskiden 16F84 ve LM358 ile yapmis oldugunda burada:
http://home.no/fsan/projects/Diverse/16F84%20Voltmetre/Sevgiler, saygilar
Sayın FSan,
Her şeyden önce 628 li devre çok güzel olmuş. Eline sağlık.
Formül olayını yeniden hesapladım. Kodun değişen (formül) kısmını aşağıda veriyorum. Isis te bayağı iyi sonuç veriyor. Sanırım gerçek değerleri ilede verir. Esas devrede kondansatöre seri dirençin 2 ye bölünerek birisinin ayarlı yapılması ince ayar için gerekebilir. Yapacakların dikkatine.
İşte Yeni formül kodu;
CIK:'FORMÜL VOLT = -(0,000004 * ZAMAN * ZAMAN) + (0,0237 * ZAMAN) + 0,0140
W=4*zaman*zaman
A=div32 1000
W=(237*zaman)
b=DIV32 10
VOLT=(-A+B+140)/100
IF ZAMAN<5 THEN VOLT=0
k=volt//10
volt=volt/10
GOSUB EKRAN
PAUSE 200
GOTO START
Yukarıdaki formül sistemin 0-12V çalışmasına göre hesaplanmıştır. 30V için ayrı formül gerekebilir.
Kolay Gelsin
ETE
Arkadaşlar
Voltmetreyi 0-30 volt aralığında kullanmak isterseniz aşağıdaki kodu kullanın.
CMCON = %00000101 ' Comparator Control
TRISA = %11101111 ' Set PortA.4 output
PORTA = 0
TRISB = %00000000 ' Set All Outputs
PORTB = 0
ZAMAN VAR WORD
VOLT VAR BYTE 'en son doğru program budur
A VAR WORD
B VAR WORD
C var word
W VAR WORD
K var byte
zaman=0:pause 500: gosub ekran
START:
ZAMAN=0 'sayaç sıfırlandı
low PortA.4 'C deşarj EDİLDİ(boşaltıldı)
pauseus 200 'bu konumda OP-AMP çıkış HIGH olur
high PortA.4 'deşarj bacağı devre disi birakildi
TEKRAR: IF CMCON.7 = 1 Then CIK 'OP-AMP çıkışı LOW oluncaya kadar porta bak
ZAMAN=ZAMAN+1:GoTo TEKRAR 'low değilse tekrar bak LOW ise ÇIK'a git
CIK:'FORMÜL VOLT = -(0,000004 * ZAMAN * ZAMAN) + (0,0237 * ZAMAN) + 0,0140
W=4*ZAMAN*ZAMAN
A=div32 1000
W=(237*zaman)
b=DIV32 10
C=(B-A+140)/100
IF ZAMAN<5 THEN C=0
if c>170 and c<210 then c=c-1
if c>210 and c<250 then c=c-2
IF C>250 then C=C+2
IF C>280 then c=c+1
if c>290 then c=c+2
k=C//10
volt=C/10
GOSUB EKRAN
PAUSE 200
GOTO START
EKRAN: 'Return
LCDOut $FE,2
IF VOLT>9 THEN ONLAR
LCDOut " VOLT = ",DEC1 VOLT ,",",dec1 K," ":GOTO SON
ONLAR: LCDOut " VOLT = ",DEC2 VOLT ,",",dec1 K," "
SON:
' LCDOut $FE,$C0
' LCDOut "Z= ", DEC5 A," ", DEC5 b
Return
end
kolay gelsin
ETE
merhaba arkadaşlar,
buradaki formül ihtiyacı nereden geliyor anlayamadım.. :?:
Kondansatörün dolup boşalma eğrisi lineer değildir. bu yüzden picimizin bu gerilime bakarak,
Süre=f(gerilim)
fonksiyonu ile gerilimi gösterebilmek için hesabını itinayla yapması gerekir. İşte burada yapılan da budur. Regrasyon analizi ile gerçek değere yaklaşım sağlanmış. Arkadaşları tebrik ediyorum.
Biraz da devreyi anlatalım:
Burada önce pin çıkış yapılıp C kısadevre edilerek boşaltılıyor. ve dolması için serbest bırakılıyor. Tabi bu esnada pin komparatörün girişi haline dönüşerek beklemeye başlıyor. ve süre de ölçülüyor. Fakat bu devre biraz farklı olabilir. En iyisi yapan arkadaşlar anlatsın. Çünkü 2 pin de C uçlarına bağlanmış.
Eğer gerilim yükselirken bir anda ölçülecek gerilim kondansatörün üzerindekine eşit olursa süreye bakılıyor. ve Gerilim= f(süre) fonksiyonu icra ediliyor. ve displaye yollanıyor. :) Yaşasın bilim!
Alıntı yapılan: "555"En iyisi yapan arkadaşlar anlatsın. Çünkü 2 pin de C uçlarına bağlanmış.
arkadaslar benim yaptigim sadece su:
ETE nin 16f84 voltmetre devresindeki LM358 opamp yerine 16f628 icinde mevcut comparator lardan birini kullanmak.
CMCON = %00000101 ' yapinca Comparator lardan sadece birisi devrede (AN1 ve AN2 girisler analog diger pinler digital I/O) burada tek fark ben bir pin daha fazladan kullanmis oldum :( ama yinede sadece 2 pin kullanmak istersek RA4 pin baglantisini iptal edip, kondensatoru desarj etme sirasinda CMCON = 7 (portA = digital) komutunu kullanip TrisA registerle RA2 pin tekrar digital/out yapilarak ta olabilir ? (ETE nin 16f84 ile yaptigi gibi)
@ETE
üstat ellerine saglik, yukarida en son yazmis oldugun kodu denedim. Harika calisiyor. 8)
(yukarida verdigim linkteki dosyalari tekrar update yaptim)
:idea: simdi senden/sizden mümkünse baska bir ricada bulunmak istiyorum :D
yukarida semada R1 ve R3 gerilim bölücü direncler var ya.
yanlis hatirlamiyorsam, R1 (veya RA1/AN1 pin) üzerindeki gerilim icin formul:
UR1 = VB1 * R1 / (R1+R3) , burada VB1 = 30V
yani yaptigin formülü R1/(R1+R3) orantili yapsan VB1 gerilimi istersek 220V ta olabilirdi. sadece R1 ve R3 ü degistirirdik.
nedemek istedigimi anlatabildimmi bilmiyorum ama anlayanlar bunu mümkünse yapabilirmi acaba?
tesekkürler..
@FSan,
Daha önce bu konu üzerinde çalışmıştım. Ancak sabir bir formül tutturamadım. Zira işin içine bilmediğim bazı parametreler giriyor. Örneğin kondansatörün boşalma zamanı bunun için optimum bir değer tespit etmek gerekir. Yani bu zaman kondansatör değeri ile alakalı ve verilen referans voltajına göre değişiyor ve sistemin çalışmasını etkiliyor. Bu nedenle her bir referans voltajı için yeniden bir formül hesaplamanın gerekli olduğuna kanaat getirdim. Belki konu hakkında daha fazla bilgisi olan birisi bu işe bir çözüm bulabilir. Kısacası beni aşıyor.
Bu arada bazı arkadaşlara önceden yapmış olduğum bir proje hakkında ISIS dosyası ile program kodları konusunda yardımcı olmak istiyorum. Bunları upload edebileceğim bir adres verebilirmisin. E-Mail ile bildirebilirsin. Konu TV kumandası ile ilgili önceden yaptığım bir TV kumanda devresi ile ilgili. Pic Basic Pro başlığı altında Voltmetre konusunun bir üstündeki konu. Orada sana bir mesaj verdim zaten belki okursun. (E-Mailim: e.erdal@tr.net)
Diğer arkadaşlardan bir ricam olacak. Bu sistem Isiste gerçekten harika çalışıyor. Acaba bir yapan olursa (gerçeğini) bizi nasıl çalıştığı konusunda haberdar edebilirmi. Gerçekten merak ediyorum.
Virgülden sonra gelen hanelere çok fazla kafanızı takmamanızı öneririm. Zira ölçü aletlerinde bile bu henelerde farklılıklar olabiliyor.
ETE
Sayın Arkadaşlar,
kondansatörün şarj eğrisini exponansiyel değil de lineer yapmak istersek sabit akım ile doldururuz. Bu durumda hakiki rampa eolde edilmiş oluyor. Sanırım bu işlem hesabı çok kolaylaştıracak, geniş aralıklarda ölçüm kolaylığı sağlayacaktır. y=ax+b Şimdi söylemesi kolay! demeyiniz. 180k nın ucunu vcc ye değil de isiste hazır bulunan bir akım kaynağına bağlayınız. şarj akımını ise ilk önce 10uA gibi kafadan sallayınız :D . Sonra formulü revize etmek yeterli olur.
örnek ramp generator:
http://www.allaboutcircuits.com/vol_6/chpt_6/8.html
(http://sub.allaboutcircuits.com/images/05263.png)
Arkadaşlar,
Şu anda tatildeyim ve Cep telefonundan bağlanıyorum. Bir iki defa denedim Yahoo sürekli problem çıkartıyor ve zorlanıyorum. O yüzden upload için yahoo kullanmak istemiyorum.
Son anda tekrar denedim ve başarılı oldum. Dosya linki ;
http://groups.yahoo.com/group/PicProjeUP4/files/ETE-Files/
Kolay Gelsin
ETE