Pt100 ile sıcaklık ölçümü uygulaması

Başlatan elektroboard, 19 Mart 2023, 09:59:05

elektroboard

Merhabalar. Pt100 ile bir sıcaklık ölçüm devresi yapmam gerekiyor.bu konuda tavsiyelerinize ihtiyacım var. Texas instruments firmasının bazı örnek devrelerini kurdum ama tatmin edici bir sonuç alamadım. Bunlar opampli devrelerdi.

Amacım mesela 0-200 derece sıcaklık aralığını 0-5v ya da başka bir analog aralığı MCU ile anlamlı hale getirebilecegim bir lineer dönüştürücü devresi.
Beni kullanmam gereken devre için yönlendirirseniz sevinirim.
teşekkürler.

ete

Sonuçta bir opamp mutlaka kullanman gerekiyor. Çünki PT100 linner bir ısı sensörü değil.
Herkesin yaptığı sıcaklığa bağlı sensör direncini okuman sonra bir tablodan ona karşılık sıcaklığı alıp kullanman.

Diğer bir metod yine opamplı bir devreden okunacak sıcaklığa karşılık 0-5V aralığına yakın bir voltaj değeri okumak. Sonra bunu digital bir sıcaklık değerine çevirmek ve çevirirken de okunan aralığa göre bir düeltme faktörü kullanarak onu direk sıcaklık olarak bulmak.
Bu ikinci metod ile ilgili kendi sistemimle ilgili bir örnek vereyim gerisini sen geliştir.

Benim sistemimde 200 derece sıcaklıkta opamp çıkışında oluşan voltaj yaklaşık 4,60V civarında dır.
Bunun ADC karşılığı 942 dir. Bundan sıfır dereceye karşılık gelen 579 değerini çıkartıp elimdeki değeri 200 dereceye eşdeğer hale getiriyorum.
942-579=363
200/363=0,551 bunu 256 ile çarparsan 141,056 gibi bir rakam bulursun bunu 1411 olarak kullanalım ve çıkan rakamı tekrar 10 bölelim bakalım ne buluyoruz.
(363*/1411)=200  (normal matematik ile ((363*1411)/256)/10 şeklinde yapılır.)
Çıkan sonuç doğru olacaktır.
Bu sistemi bir LCD si olan program ile çalıştırıp ekrana okunan HAM değer ve ona karşılık okunan sıcaklık değeri şeklinde ekrana verip sıcaklığı birer birer geriye düşürerek geriye doğru yürümen ve isis deki sıcaklık ile hesaplanan sıcaklık arasında fark oluştuğu noktayı bulup orada o sıcaklığa göre bir formül bularak programına okunan ham değer şu değerden şu değere kadar şu formülü kullan şeklinde bir if satırı eklersen ve bu işi sıfır dereceye kadar yaparsan karmaşık formüllerle uğraşmadan 0-200 derece arasında çalışabilecek bir sistem yaratabilirsin.




elektroboard

#2
Ete gerçekten güzel bir çözüm olmuş ellerine sağlık. Gördüğüm kadarıyla bu işi gerilim bölücü ile yapıyorsun. Bir de  wheatstone köprüsüyle yapanlar var.

1) Hangisi daha dengeli bir sonuç verir.
2)Bir de normal opamp yerine enstrümantasyon yukselteci kullansam gürültüye karşı daha iyi bir devre kurmuş olur muyum?
3)Ayrıca 256 ile neden çarptığını ve 10 neden böldüğünu anliyamadim.

ete

Ben wheatstone köprüsü kullanmadan yaptım. Sonuçtan memnunum.
Diğerini yapmadığım içi bir fikrim yok .

Enstruman tipi yükselteç kullansan belki daha iyi sorun alırsın. Gürültü olayı tamamen kablolama ile ilgili bir mesele. Uzun kablo kullanırsan gürültüyüde davet edersin.

Hesapla ilgili soruna gelince. Ben basic kullanırım. Basic de ondalıklı (Float) sayılarla işlem yapılamıyor. Bu nedenle sayıyı büyütüp işlemi yapmak sonrada büyüttüğün kadar geri küçültmek işin temeli.
Burada sabit çarpan bulmaya çalışıyoruz. Bu nedenle 200 derecedeki ADC karşılığından 0 deredeki karşılığı çıkartınca 363 değerini buluyoruz. Bu bizim 200 derecelik sıcaklığı hesap etmemiz için gerekli olan parametremiz. Dolayısıyla 200/363=0,5509641873278237
değeri bulunuyor. Normal şartlarda float işlem yapabilseydim bu değeri sabit çarpan olarak kullanıp ADC den okunan değerle bu sabit çarpanı çarpınca bana karşılık gelen sıcaklığı verecek idi. Ancak 0,550964 sayısı ile işlem yapamıyorum. Basic de 32 bit çarpım yapıp sonuç olarak ortadaki 16 biti veren bir fonksiyon komut var. Buda  (*/) şeklinde kullanılıyor. Yani A */ B dediğim zaman A ile B 32 bit olarak çarpılıp ortada 16 bitlik sayıyı çekip sana veriyor daha açık deyişle 32 bit sonucu 256 ya bölüp veriyor. O halde sayıyı bozmamak adına önceden 256 ile çarparsam (0,550964 * 256=141,046784)sayısını elde ederim. Çözünürlüğü artırmak adına bu sayıyıda 10 ile çarparsam sayımız 1410,46784 olacaktır. Bu sayıyı yuvarlarsak 1411 şeklinde kullanabilirim.
Şimdi hesap yaparken ADC den okunan değerimiz 363 olsun. (363 */ 1411) ,işlemini Basic bana,
(363 * 1411/256)=2000 şeklinde verecektir.SOn olarak sabit çarpan hesabında sayımızı 10 ile çarptığımız için 200 çıkması gereken sayı 2000 olarak çıkmış oldu. Şimdide 10'a bölerek eşitliği bozmamış olacağız ve sonucumuz 200 olarak hesaplanmış olacaktır.
Ete


elektroboard

Ete bey ağzına sağlık harika bir anlatım. Şimdi oldu  ;D . Ben bu devreyi ent.yuklseltec ile de deneyeceğim. Sonuçları sizinle buradan paylaşirim. Teşekkürler

Powered by EzPortal