ユーザ用ツール

サイト用ツール


softdev:tempmeter1

差分

このページの2つのバージョン間の差分を表示します。

この比較画面へのリンク

両方とも前のリビジョン前のリビジョン
次のリビジョン
前のリビジョン
次のリビジョン両方とも次のリビジョン
softdev:tempmeter1 [2012/02/05 10:14] – [計算] kingsoftdev:tempmeter1 [2012/02/05 15:13] – [計算] king
行 16: 行 16:
 で、回路。使っているICとか部品名が違うけど気にしないで(Eagleのライブラリに無かったから適当) で、回路。使っているICとか部品名が違うけど気にしないで(Eagleのライブラリに無かったから適当)
  
-{{::lm60-sensing-amp.png}} 
  
 オフセットを固定で切ってやると、後で調整するときに面倒だしそれに、電源電圧がいつも5Vと限らないでしょう。なので、ADを二つ使って誤差を埋めてやれば、演算だけで出来そうじゃ無いですか?。回路図のLM358はLM2904を使用、GND側は入出力ともRail動作。 オフセットを固定で切ってやると、後で調整するときに面倒だしそれに、電源電圧がいつも5Vと限らないでしょう。なので、ADを二つ使って誤差を埋めてやれば、演算だけで出来そうじゃ無いですか?。回路図のLM358はLM2904を使用、GND側は入出力ともRail動作。
  
 +{{:lm60-sensing-amp.png?}}
 ==== 計算 ==== ==== 計算 ====
 +上の回路だと、非反転増幅のGND部分にオフセッットが入るから、-,+入力が仮想短絡になるよう制御されるので、Vinをセンサ出力だとすると次のようになると思う。
 +
 +{{::lm60_amp_gain.png}}
 +
 +Vin=(Vout-Voffset)x10/(91+10)+Voffset\\
 +よって、Vout=(Vin-Voffset)x101/10+Voffset となる。
 +なんで、このような面倒な計算なの?って、そりゃ、間違えて回路作っちゃたからでしょ。ちょっと勘違いして配線して、結果を見たら違うって言うよくある話で。
 +
 +以下の計算式は、差動増幅で、オフセットのみ捕れた場合の算出方法で、結論から言うと、今回の計算は下記になるですな。
 +
 +>Temp=(1/1.280)×((AD1-AD2)/10.1+AD2)ー67.84
 +
 +
 +まず前提
   * センサAmpの倍率=10.1。ぴったりの抵抗が無いのよ、面倒。   * センサAmpの倍率=10.1。ぴったりの抵抗が無いのよ、面倒。
   * オフセット調整範囲=0.543V〜0V 実際にはもっと範囲狭くなる。   * オフセット調整範囲=0.543V〜0V 実際にはもっと範囲狭くなる。
行 31: 行 45:
 んで、以下の式になる。 んで、以下の式になる。
  
->(V<sub>Temp</sub>ーV<sub>AD2</sub>)×10.1=V<sub>AD1</sub> となり、変形すると、\\+>(V<sub>Temp</sub>ーV<sub>AD2</sub>)×10.1=V<sub>AD1</sub> となり、変形すると、
 >V<sub>Temp</sub>=V<sub>AD1</sub>/10.1+V<sub>AD2</sub> >V<sub>Temp</sub>=V<sub>AD1</sub>/10.1+V<sub>AD2</sub>
  
 となる。一方、実温度は、0℃=424mVであることと、ΔT=6.25mV/℃の関係から\\ となる。一方、実温度は、0℃=424mVであることと、ΔT=6.25mV/℃の関係から\\
-T=(V<sub>Temp</sub>ー0.424)/6.25x10<sup>-3</sup>\\+>T=(V<sub>Temp</sub>ー0.424)/6.25x10<sup>-3</sup>\\
 である。 である。
  
 また、AD値と電圧の関係は、\\ また、AD値と電圧の関係は、\\
-V<sub>AD1</sub>=AD1×5/1024\\ +>V<sub>AD1</sub>=AD1×5/1024\\ 
-V<sub>AD2</sub>=AD2×5/1024\\+>V<sub>AD2</sub>=AD2×5/1024\\
  
 よって最初の式から\\ よって最初の式から\\
-V<sub>Temp</sub>=(AD1×5/1024)/10.1+AD2×5/1024+>V<sub>Temp</sub>=(AD1×5/1024)/10.1+AD2×5/1024
  
 2番めの式と、上式から温度は\\ 2番めの式と、上式から温度は\\
-Temp=(1/1024)×(AD1×5/10.1+AD2×5)−0.424 }/6.25x10<sup>-3</sup>+>Temp=(1/1024)×(AD1×5/10.1+AD2×5)−0.424 }/6.25x10<sup>-3</sup>
  
 数字同士の部分を計算すると、下式になる。\\ 数字同士の部分を計算すると、下式になる。\\
-Temp=(1/1.280)×(AD1/10.1+AD2)ー67.84+>Temp=(1/1.280)×(AD1/10.1+AD2)ー67.84
  
 上式の最後の項は定数である(AD値に左右されない)。\\ 上式の最後の項は定数である(AD値に左右されない)。\\
 ここで、大きな問題がある。これは実数計算であり、double型でこの計算すると、LCDも表示制御があるので、2Kワードでは無理である。困った。 ここで、大きな問題がある。これは実数計算であり、double型でこの計算すると、LCDも表示制御があるので、2Kワードでは無理である。困った。
  
 +==== 演算 ====
 +Temp=(1/1.280)×(AD1/10.1+AD2)ー67.84
 +
 +このままだど、double演算になるので、整数に直さないといけない。そこで分母分子で同倍する。AD値を100倍にして、分母も100倍。すると、下記\\
  
 +Temp=(AD1×100/10+AD2×100)/1280+67
  
 +最後の67は、67.84を切り捨てで算出。整数演算は切り捨てになるからというのと、エクセルで計算させると切り捨てのの方が真値に近かった。アンプゲイン10.1は、10倍でも誤差は変わらなかった。
  
  
  
  
softdev/tempmeter1.txt · 最終更新: 2013/07/15 20:25 by 127.0.0.1