ArduinoUNOと温度センサーMCP9701で温度をシリアル出力 (Arduino)


x あまり正確では、ない

目的
秋月で売っている安価なMCP9701(約25円)を使って温度を出力する。

構成
MCP9701-E/TO I-03199

説明
MCP9701は、
0℃の時、400mV
1℃あたり19.5mV
精度は、±4℃
電線が引き出しやすい位置のA0をアナログ入力にする
計算には、容量削減の為に浮動小数点と割り算は、使わない
MCP9700は、ファミリー、オフセット500mV、10mV/1℃ 今回は、使わない

5V 256段階 19.5 1℃ オフセット400mV(+20℃) 8ビットで丁度1単位1℃




//初期化
void setup()
{

  Serial.begin(9600);

} //setup

//メインループ
void loop()
{

  int s;    //センサーの値  //101
  int n0;  //小数点以上
  int n01; //小数点以下
  int nn[] = { 0,25,50,75}; //温度

  //センサーの値を読み込む
  s = analogRead(A0); // UNO

  //s = 20 << 2; //0 debug
  //s = 40 << 2; //20 debug

  //小数点以上と小数点以下を分ける
  n0  = (s >> 2) - 20;   // 小数点以上
  n01 = nn[s & 0x3];     // 小数点以下

  //温度の小数点以上の表示
  Serial.print(n0);

  //小数点の表示
  Serial.print('.');

  //温度の小数点以下の表示
  Serial.println(n01);

  //1秒の待ち
  delay(1000);

} //loop