F

sht11

Başlatan fth58, 22 Mart 2013, 17:16:43

fth58

Merhabalar.Bana sht11 nem ve sıcaklık sensorunun calısma mantıgı lazım.Data sheetıne baktım bırsey anlamadım.Yardımcı olursanız sevinirim.

Kefran

#1
kardeşim sana bi link vericem işine yarar belki

http://www.denizelektronik.com/sht11.htm

http://www.berik.net/0510isi.php


anladığımı kadarıyla 4 bacağı var ve 5 volt, gnd ,data bacağı,saat giriş bacağı var clock girişine pull-up direnci atman lazım . bide sen tam olarak neyi anlamadın bu sensör le ilgili birçok bilgi internette var araştırırsan bulabilirsin bence
Kef to Easy A.K.A

ete

SHT-11 Data sheet'in de her şey açıklanmış durumda aslında. Orada sıcaklık ve nem hesaplaması ile ilgili formülü vermişler.
Tabiiki verilen formül hem küsüratlı sayıları hemde neagtif sayıları içeriyor. Ayrıca formülde sabit çarpan sayılarıda kullanılıyor.
Bütün mesele bu formülün basic matematiğine uyarlanmasıdır. İşlem olarak mümkün olduğunca 32 bit hesap yapılacak ve ondalıklı sayılarda virgülden kurtarılacaktır.

Data sheet de sıcaklık hesabı için verilen formül şöyle;
T=d1+d2*Okunan   , 14 bit okuma yapıldığında d2 ve d2 parametreleri ise d1=-40 ve d2=0,01 olarak verilmiş.
O halde  Sıcaklık hesaplama formülümüz  T=0,01 * Okunan -40  şeklinde yazılabilir.
Formülü virgülden kurtarmak için 100 ile çarpıyoruz. ve,
T=1* Okunan - 4000 şeklinde formülümüzü elde etmiş oluyoruz.
Bunu T=Okunan - 4000 şeklinde kullanabiliriz.
Bu hesap sonucunda sıcaklığın 100 ile çarpılmış halini elde edeceğimiz için çıkan sonucu 100 e bölerek sıcaklığın tam sayı kısmını, 100 ile MOD alma işlemini yaparak 2 hane olaak ondalık kısmını hesaplayabiliriz.


Data sheet de verilen Nem hesap formülü aşağıdaki şekildedir.
RH = c1 + c2* Okunan + c3 * (Okunan)2
Bu formülü şöylede yazabiliriz. Okunan parantezine alıyoruz.
RH=(C2+(C3 * Okunan) * Okunan + C1
Yine data sheet de sabit çarpan değerleri aşağıdaki şekilde verilmiş.
C1 = -4
C2 = 0.0405
C3 = -2.8E-6
Bütün amacımız virgülden kurtulmuş bir formül kullanmaktır. Bu nedenle önce bu sabit çarpanları 10 ile çarpalım.
C1=-40
C2=0,405
C3=-2,8E-5
şimdi bunları tek tek ele alaım.
C1 için yapılacak bir şey yok.
C2 ve C3 için formülde kullanılan normal çarpma işlemleri yerine ** şeklinde 32 bit çarpma yapıp elde edilen 32 bit değerin yalnızca üst 16 byte'ını alarak işlemleri yapabiliriz. Bu işlem bize sadeleştirme işinde yardımcı olacaktır. Zira bu çarpma sonucunda sayının 65536 ya bölünmüş halini elde edeceğimiz için eşitlik bozulmasın diye önden sayımızı 65536 ile çarpmamız gerekecektir.
Mesela C2=0,405 sayısını 65536 ile çarparsak  26542 sayısını elde ederiz o halde kullanacağımız C2 parametresi 26542 olacaktır.
C3= -2,8 E-5 idi. Bu sayıyı kullanılır hale getirmek epeyce karmaşık bir işlem gerektiriyor. Formüle bakarsanız Aslında formül içinde bu parametre
C3 * Okunan şeklinde yer almaktadır.
O halde 0,0000028 sayısını 65536 ile çarparsak bize 1,835 değerini verecektir.
Bu durumda bu eşitliği biz (1,835/65536)* Okunan şeklinde yazabiliriz.
Biraz daha ileri gidip (0.835*Okunan + Okunan)/65536 şeklinde de yazabiliriz. EŞitlik hiç bozulmuyor dikkat ederseniz. (Okunan parantezine alırsanız eski haline dönecektir).
0,85 sayısını 65536 ile çarpıp yine kendisine bölersek eşitlik yine bozulmayacaktır. O halde 0,835 * 65536=54723 olduğundan eşitlik (54723/65536)*Okunan + Okunan)/65536 şeklinde dönüşecektir.
Formülü oluşturan parametrelerin Her ikiside 65536 ya bölündükleri için bu işlemdeki çarpım işini
54723 ** Okunan + Okunan ** şeklinde kullanabiliriz artık.
Sonuç olarak formülümüz aşağıdaki şekli alacaktır.

RH=(26542-(54723**Okunan+Okunan))**Okunan-40

Benzer çevirme işlemini Sıcaklığa bağlı rutubet düzenlemesinde de kullanabiliriz.
Formül,  RHtc = (T - 25) * (0.01 + 0.00008 * Okunan) + RH  şeklindedir.
EKsi değer matematiği yapamadığımız için sıcaklıkları kelvin cinsinden kullanarak işlemi pozitife çevirebiliriz.
RHtc = ((T+273) - 25) * (0.01 + 0.00008 * Okunan) - (273 * (0.01 + 0.00008 * Okunan)) + RH(yukarıda hesaplanan).
((T+273) - 25)= (T+248) olduğundazn formülde bu şekilde yer alacaktır.
0,01 + 0,00008 * Okunan şeklindeki ifadeyi kullanılır hale getirmeye çalışalım.
0,01 değeri 655/65536 ya eşittir.
0.00008 * Okunan ise benzer şekilde  5.243/65536 * Okunan şekline çevrilebilir.
BU ise (5* Okunan + 0.243* Okunan)/65536 şeklinde yazılabilir.
Bu ise benzer şekilde (5*Okunan + 15917/65536 * Okunan)/65536  şeklinde yazılabilir.
xxx/65536 sistemi bize ** operatörünü kullanma imkanını getirdiği için formül elemanlarını buna çevirmeye çalıştık.
Sonuçta formülümüzün bu kısmı aşağıdaki eşitliğe dönüşecektir.

RHtc=655+(Okunan*5)+(Okunan**15917) ve buradan elde ettiğimiz değeri aşağıdaki formülde yerine koyarak sıcaklığa göre ayarlanmış rutubeti hesap edebileceğiz.

RHtc=(RHtc**(degC+2480))-(RHtc**2730)+RH   ' kompanse edilmiş rutubet değeri

Ete

fth58

Tesekkurler herkese

Powered by EzPortal