Groveで広がるArduinoの世界-Step2-② Grove HCHO sensor
Grove HCHO sensorは、 semiconductor VOC gas sensorと呼ばれ、デバイスにはWSP2110 VOC Gas Sensorが使われています。出力はアナログです。
●HCHO sensorのおもな特徴
- 原理 セラミック基板上のヒータと金属酸化物半導体で構成され、センサの導電率を測っている
- 検出ガス トルエン、メタナール、ベンゼン、アルコール、アセトンなど
- 検出範囲 1〜50ppm
- 動作電圧 5.0V±0.3V
- センサ抵抗値(Rs) 10~100kΩ(10ppm HCHO)
解説ページ GroveGasGrove - HCHO Sensor
●使いかた
最初に次のスケッチを実行します。センサの出力はアナログ入力A0なので、GroveコネクタもA0に挿し込みます。
// demo of Grove - HCHO Sensor #define Vc 4.95 void setup() { Serial.begin(9600); } void loop() { int sensorValue=analogRead(A0); float R0=(1023.0/sensorValue)-1; Serial.print("R0 = "); Serial.println(R0); delay(500); }
空気のきれいなところへ持っていって表示の値を読み取ります。実際は、机の上に30分ほど放置したら、ずっと22.25を表示していました。下記のスケッチに、#define R0 22.25と記述します。10~100に範囲にはいらないときは、半固定抵抗を回して調整するようにと解説があります。
// demo of Grove - HCHO Sensor #include <math.h> #define Vc 4.95 //the number of R0 you detected just now #define R0 22.25 void setup() { Serial.begin(9600); } void loop() { int sensorValue=analogRead(A0); double Rs=(1023.0/sensorValue)-1; Serial.print("Rs = "); Serial.println(Rs); double ppm=pow(10.0,((log10(Rs/R0)-0.0827)/(-0.4807))); Serial.print("HCHO ppm = "); Serial.println(ppm); delay(1000); }
●感度曲線
実用的なガス・センサにしたい場合は、こちらのページに解説しているように、アルコールやトルエンなどの値を測定し近似曲線を作ります。