softdev:tempmeter1
差分
このページの2つのバージョン間の差分を表示します。
両方とも前のリビジョン前のリビジョン次のリビジョン | 前のリビジョン次のリビジョン両方とも次のリビジョン | ||
softdev:tempmeter1 [2012/02/05 15:13] – [計算] king | softdev:tempmeter1 [2012/02/08 00:52] – [PICのADで読む] king | ||
---|---|---|---|
行 6: | 行 6: | ||
PIC12F675で入門コースみたいなので、温度計みたいなのをLM35で作った事があるが、氷点下は測定できなかった。バイクに付けていつもの温度を測りたいと思っていて、許せばバッテリ電圧なども表示したら面白いかと。 | PIC12F675で入門コースみたいなので、温度計みたいなのをLM35で作った事があるが、氷点下は測定できなかった。バイクに付けていつもの温度を測りたいと思っていて、許せばバッテリ電圧なども表示したら面白いかと。 | ||
- | 今回。LM60というのが入手できたので、やってみたんだが、、まだうまく出来てない。 | + | LM35はナショセミの温度センサで、10mV/ |
+ | |||
+ | {{: | ||
+ | |||
+ | * 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で計測するのと誤差と手間は同じだったように思う。 | ||
+ | |||
+ | ==== PICのADで読む ==== | ||
+ | ADで読む方法では、分解能が4.8mVであるので、センサー出力を増幅しなければいけない。作成時は10倍にした。PIC12F675を使用したので内蔵ROMは1Kワードである。計算式は、Temp=AD*50/1024である。 | ||
+ | < | ||
+ | unsigned int lm35_out, | ||
+ | GO_DONE = 1; | ||
+ | while(GO_DONE); | ||
+ | lm35_out = (ADRESH<< | ||
+ | lm35_temp = lm35_out * 50/1024; | ||
+ | </ | ||
+ | |||
+ | だけどこれだと、整数部分しか計算できない。10倍にして計算し、後で小数点の位置を変えようとすると、計算途中でlong型になってしまい、675だとちょっと厳しい。ソフト屋のT君にアドバイスをもらった。 | ||
+ | |||
+ | < | ||
+ | (int)a = 498*5*10/ | ||
+ | (int)a =((498*5*10-1024a)*10)/ | ||
+ | </ | ||
+ | |||
+ | う〜む、すばらし。 | ||
+ | |||
+ | で、小数点2桁まで求めようとすると、どうなるんだろう。 | ||
+ | |||
+ | |||
+ | |||
===== LM60 ===== | ===== LM60 ===== |
softdev/tempmeter1.txt · 最終更新: 2013/07/15 20:25 by 127.0.0.1