ユーザ用ツール

サイト用ツール


softdev:tempmeter1

差分

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

この比較画面へのリンク

両方とも前のリビジョン前のリビジョン
次のリビジョン
前のリビジョン
softdev:tempmeter1 [2012/02/05 14:54] – [LM60] kingsoftdev:tempmeter1 [2013/07/15 20:25] (現在) – 外部編集 127.0.0.1
行 2: 行 2:
 表示はLCDで。 表示はLCDで。
  
 +結論から言うと、、1KワードのROMでは、温度と電圧を同時にLCD表示させるのは難しそう。LCD制御で、かなり食ってしまいAD値から目的の値を算出するだけで終わってしまう。あ、そうか、足りなければ2個でやればいいんだな。
 ===== LM35 ===== ===== LM35 =====
 LM35でナショセミ(もうTIだけど)の温度センサーですよ。ちょっとした工作によく使いますよね。会社でも性格じゃない温度を測るのに使ってたりする。 LM35でナショセミ(もうTIだけど)の温度センサーですよ。ちょっとした工作によく使いますよね。会社でも性格じゃない温度を測るのに使ってたりする。
 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で計測するの誤差と手間は同じだったよに思う。 
 + 
 +==== PICADで読む ==== 
 +ADで読む方法では、分解能4.8mVあるので、センサー出力を増幅しなければいけない。作成時は10倍にし。PIC12F675を使用したので内蔵ROMは1Kワードである。計算式は、Temp=AD*50/1024である。 
 +<code> 
 +unsigned int lm35_out,lm35_temp; 
 +GO_DONE = 1; 
 +while(GO_DONE); 
 +lm35_out = (ADRESH<<8) | ADRESL ; 
 +lm35_temp = lm35_out * 50/1024; 
 +</code> 
 + 
 +けどこれだと整数部分しか計算できない。10倍にして計算し後で小数点の位置を変えようとすると、計算途中でlong型になってしい、675とちょっと厳しい。ソフト屋のT君にアドバイスをもらった。 
 + 
 +<code> 
 +(int)a = 498*5*10/1024                          //整数部の計算 
 +(int)a =((498*5*10-1024a)*10)/1024      + (a*10)        //少数点の計算(10倍した値)と整数部(10倍した値)への足しこみ 
 +</code>  
 + 
 +〜む、すばらし。 
 + 
 +で、小数点2桁で求めようとすると、どうるんだろう 
 + 
 + 
 + 
  
 ===== LM60 ===== ===== LM60 =====
行 21: 行 58:
 {{:lm60-sensing-amp.png?}} {{: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 実際にはもっと範囲狭くなる。
行 63: 行 114:
 最後の67は、67.84を切り捨てで算出。整数演算は切り捨てになるからというのと、エクセルで計算させると切り捨てのの方が真値に近かった。アンプゲイン10.1は、10倍でも誤差は変わらなかった。 最後の67は、67.84を切り捨てで算出。整数演算は切り捨てになるからというのと、エクセルで計算させると切り捨てのの方が真値に近かった。アンプゲイン10.1は、10倍でも誤差は変わらなかった。
  
 +==== 結論 ====
 +いきなり、結論。この方法はよろしくない。
 +
 +オフセットをとる電圧が誤差を含み、そのまま増幅されてしまうのでものすごく誤差が出る。う〜ん、誤差と言うかバラツキ?値がコロコロ変わる。だいたい合っているとき合ってない時がある。
  
 +というわけで、計算しやすいLM61に変更し作り直した。-> [[softdev:tempmeter2]]
  
  
softdev/tempmeter1.1328421280.txt.gz · 最終更新: 2013/07/15 20:28 (外部編集)