以前、買っておいた温度センサーLM60があったのでとりあえずGainerで動かしてみた。
とりあえず回路図を。
単純につなぐとanalogInput[0]の値は30付近になった。
LM60は0℃で424mVを出力し、1℃辺り6.25mV上がる。
+5Vで255になるから、5000mV / 256 * 30 = 586mV。
(586mV – 424mV) / 6.25mV = 25.92℃
となって、いい感じ。
Processingでのソースコード。
import processing.gainer.*; Gainer gainer; PFont myFont; void setup(){ size(320,200); myFont = loadFont("CourierNewPSMT-24.vlw"); textFont(myFont, 24); gainer = new Gainer(this); gainer.beginAnalogInput(); } void draw(){ background(0); float temp; temp = 5000.0/256.0 * gainer.analogInput[0]; temp -= 424.0; temp /= 6.25; text("temperature: " +temp,10,80); }
ただ、GainerでanalogInput[0]が1違うと19.53mV違うので約3℃の解像度になる。
気温の3℃はかなり大きいので、このままではあまり役に立たない。
※ちなみにLM60の+VsとGNDを間違えてGainerにつなぐとGainerのUSBコネクターの左隣のチップがチンチンに熱くなってLEDが消えたので注意。