FLOAT tipindeki değişkenin virgülden sonraki 2 rakamı ?

Başlatan mustafa_cmbz, 11 Ağustos 2014, 19:57:31

mustafa_cmbz

Merhabalar...

Daha önce yaptığım mevzu aslında fakat yaptığım uygulamanın ne kodunu bulabildim nede nasıl yaptığımı hatırlıyorum.Kafam allak bullak oldu.




yapmaya çalıştığım şeyi resim üzerinden anlatayım..

Bana yaptığım hesaplamadan sadece resimde de görüldüğü gibi 27.69 HATTA 27.6 kısmı lasım.

Fakat bunu formüle edemedim..

ISI_OLCUMU:

 HAMVOLT = ADIN 0
 volt=((HAMVOLT-487)*10)
 volt=HAMVOLT/12.825/10
 volt=volt/2

 Return

ayhani

Protonu bilmiyorum ama  string manipülasyon ile floatı stringe çevirip lcd'ye yazdırabilirsinz.
En iyi bildiğim şey hiçbir şey bilmediğimdir.

mehmet

Olan olmuştur,
olacak olan da olmuştur.
Olacak bir şey yoktur.
---------------------------------------------
http://www.mehmetbilgi.net.tr
https://creativecommons.org/licenses/by/4.0/deed.tr "CC BY"

Maxim

ne yapmak istediğinizi tam anlamadım ama picbasic gibi düşündüğünüzü görüyorum.

önce adc okuması yaparız word değişkenine
DIM HAMVOLT AS WORD

sonra VOLT değişkenini float tanımlarız ve tüm hesaplarımızı yaparız
DIM VOLT AS FLOAT

sonra çıkan sayıyı ekrana yollarken şöyle yazarız
PRINT AT 2,1, "VOLT:", DEC2 VOLT


edit:
bu satır volt=HAMVOLT/12.825/10
şöyle olmalı
volt=( HAMVOLT/12.825) / 10

Tagli

Fazla haneler üzerine boşluk karakteri yazılarak da silinebilir.
Gökçe Tağlıoğlu

mustafa_cmbz

Alıntı yapılan: ayhani - 11 Ağustos 2014, 21:44:49
Protonu bilmiyorum ama  string manipülasyon ile floatı stringe çevirip lcd'ye yazdırabilirsinz.

string maniplasyonundan kastınız nedir hocam ?

Biraz açıklama yada örnek verebilirmisiniz?

@taglı hocam senin yöntemde güzel fakat çözüm değil...Ekranda devamlı yanıp sönüyor diğer haneler..

Benim için ekrana yansıtmanın yanında birde hesap yaparken vs. lazım olacak ...

mehmet

Float değişkeni başka bir değişkene integer olarak atayın. Float değişkenden
bu integer değişkeni çıkartıp 10 ile çarpınız. Yeniden integer olarak
dönüştürünüz. Virgülden sonra bir hane elde edilir...
Olan olmuştur,
olacak olan da olmuştur.
Olacak bir şey yoktur.
---------------------------------------------
http://www.mehmetbilgi.net.tr
https://creativecommons.org/licenses/by/4.0/deed.tr "CC BY"

ayhani

Alıntı yapılan: mustafa_cmbz - 11 Ağustos 2014, 23:01:52
string maniplasyonundan kastınız nedir hocam ?

Biraz açıklama yada örnek verebilirmisiniz?

@taglı hocam senin yöntemde güzel fakat çözüm değil...Ekranda devamlı yanıp sönüyor diğer haneler..

Benim için ekrana yansıtmanın yanında birde hesap yaparken vs. lazım olacak ...

Flowcode'da var bu özellik protonda varmı bilmiyorum float tipindeki değişkeni string tipine çevirip LCD'ye yazdırabiliyorsunuz.
En iyi bildiğim şey hiçbir şey bilmediğimdir.

mir_as82

Hocam C dilinde yazacaksan, formatlama bilgisini girerek yapabilirsin. (%3.2f )
Hesaplama için ise 100 ile carp İstediğin aralikta veri tutacak değişkene ata. Daha sonra 100 e bol, kalani başka int değişken de tut.sonra LCD te araya virgül atarak tam kismi virgülden sonra sini yaz.

Maxim

arkadaşlar biriniz bana anlamadığım yeri açıklarsa sevinirim.

yamak

Hocam aşağıdaki gibi yaparsan olması lazım:
float sonuc=27.6959
sonuc=((unsigned int)(sonuc*100)/100.0)

Edit:Ben C'ye göre yazdım Proton olduğunu şmdi gördüm.Protonda çalışır mı emin değilim.

mir_as82


mustafa_cmbz

Aslına bakarsanız işleri karmaşıklaştıran benim.


Yeni konu açmadan buradan devam edeyim istedim:


Yapmak istediğim şey aslında ısı ile kompanze edilen bir sensörün içerisindeki ntc yi okuyup ekranda sıcaklık değeri olarak göstermek.


Bunu yaparken de biraz ezbere biraz hazırcılıkla ( çabuk olsun diye ) gittiğim için işler sarpa sarıyor.Bi aksilik çıkıyor atladığım yerler yüzünden tekrar başa dönüyorum..

Şimdi herşeyden vazgeçtim yavaş yavaş sindire sindire devam etmek..





olay yukarıdaki şemadan ibaret..

NTC normal şartlar altında hemen hemen oda sıcaklığında 7-8k arası bir direnç gösteriyor.Havyayı değdiriyorum direnç düşüyor..


Opamlı devre bana ait deneme yanılma ilerledim.Fakat simulasyonda istediğim sonucu elde edemiyorum gibi geliyor bana..

Realde deneme yapmadan düzenleme yapmam gereken yerler varmıdır?

Yada kendimi çok mu kasıyorum altı üstü bir ntc okumak için başka yollar da varmıdır ?

Mr.Java

Hazır modüller var NTC ile ilgili.Bunlardan al yazılımla sadece ADC oku yeterli.
Yoksa basit bir gerilim bölücü mantığıyla yine adc olarak kullanabilirsiniz.
Bu konuda Arduino hazır kütüphanelerine bakabilirsiniz.Size hesaplamalar konusunda fikir verecektir.

http://api.ning.com/files/6wsS7zFpHL1vhxn8JLydjAuXMK*7Q3*kebK0sFV8WKNXcxFJsuDM9D8J4CQtrDmSGPu86smNj1k0dFeueY7F8WjakZA7gutK/Thermistor.zip