ユーザ用ツール

サイト用ツール


softdev:tempmeter1

差分

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

この比較画面へのリンク

両方とも前のリビジョン前のリビジョン
次のリビジョン
前のリビジョン
次のリビジョン両方とも次のリビジョン
softdev:tempmeter1 [2012/02/05 10:15] – [計算] kingsoftdev:tempmeter1 [2012/02/07 22:07] – [LM35] king
行 6: 行 6:
 PIC12F675で入門コースみたいなので、温度計みたいなのをLM35で作った事があるが、氷点下は測定できなかった。バイクに付けていつもの温度を測りたいと思っていて、許せばバッテリ電圧なども表示したら面白いかと。 PIC12F675で入門コースみたいなので、温度計みたいなのをLM35で作った事があるが、氷点下は測定できなかった。バイクに付けていつもの温度を測りたいと思っていて、許せばバッテリ電圧なども表示したら面白いかと。
  
-今回。LM60というが入手きたので、やってみたんだが、まく出来てない+LM35はナショセミ温度センサ、10mV/℃リニア出力がきる。[[http://www.national.com/jp/|ナショセミ]]は悲しい事に現在はTIに統合されてしまっている。 
 + 
 +{{:softdev:lm35.pdf}} 
 + 
 +  * Calibrated directly in ° Celsius (Centigrade) 
 +  * Linear + 10.0 mV/°C scale factor 
 +  * 0.5°C accuracy guaranteeable (at +25°C) 
 +  * Rated for full -55° to +150°C range 
 +  * Operates from 4 to 30 volts 
 +  * Less than 60 µA current drain 
 + 
 +精度もいいし、リニアリティ、計算も良いのだが、0℃以下が負電圧となってしまうと言うことがある 
 + 
  
 ===== LM60 ===== ===== LM60 =====
行 16: 行 29:
 で、回路。使っている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 実際にはもっと範囲狭くなる。
行 54: 行 81:
 ここで、大きな問題がある。これは実数計算であり、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