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);
}
![]()
![]()
●感度曲線
実用的なガス・センサにしたい場合は、こちらのページに解説しているように、アルコールやトルエンなどの値を測定し近似曲線を作ります。