ユーザ用ツール

サイト用ツール


softdev:tempmeter1

差分

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

この比較画面へのリンク

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