1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

電子回路入門 温度センサー

Last updated at Posted at 2018-03-15

#はじめに
書籍に沿って引き続き進めていきます。

#温度センサー
サーミスタが有名ですが、温度と内部抵抗が比例していないため扱いづらいので、LM60BIZを使用します。
LM60BIZは温度と出力電圧がある程度比例しています。
複合気象センサーも使用します。

LM60BIZの仕様書を見てみると、計算式は
VO=(+6.25 mV/°C× T °C)+424 mV
なるほど、、0度のときに424mVになるわけですね。
1度につき∓6.25mVになるみたいですね。

#使用部品

#回路図
LM60_ブレッドボード.png
LM60_回路図.png

#プログラム
温度をコンソール出力するプログラムですが、ここで私は罠にはまりました(´・ω・`)
PSoCさんはなぜか小数点以下を扱ってくれませんでした。

設定を追加
Project => Build Settings => Linker => General => Use newlib-nano Float Formatting を Trueへ変更。
Workspace Explorer => System => HeapSize を0x400へ変更。

#include "project.h"
#include "stdio.h"

int main(void)
{
    CyGlobalIntEnable;
    ADC_Start();
    UART_1_Start(); 
    for(;;)
    {
      ADC_StartConvert();
      while(ADC_IsEndConversion(ADC_RETURN_STATUS) == 0);
      int val = ADC_GetResult16();
      //valは16進数なので、電圧値に変換する
      double t = (val * 2048 /4095);
      //計算式
      t = (t - 424) / 6.25;
      char s[255];
      snprintf(s, 255, "%f\n", t);
      UART_1_PutString(s);
      CyDelay(1000);
    }
}

動いた
温度.png

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?