Precondition
- 環境
- HW
- Windows 7 Pro 64bit
- Arduino Uno
-
GroveベースシールドV2 SLD01099P
- 千石電商 秋葉原店で購入
-
Groveアルコールセンサ SEN21723P
- 千石電商 秋葉原店で購入
- 裏面に『 Alcohol Sensor v1.2 』の表記あり
- SW
- Arduino IDE 1.6.0
簡単に動作するハズだった…
Groveシステムを使えば、簡単に試せるハズだったのです…。
しかし、私の環境では、上手く動作せず、いろいろ試したことをまとめておきます。
まず、動作しなかった手順は以下です。
- センサをGroveベースシールドの A0 端子に接続する
- Grove - Alcohol Sensorからコードをコピペする
- Arduino IDE にてコンパイル&書き込み
- Arduino IDE のシリアルモニタにてログを確認する
ここで、
- シリアルモニタに何も表示されない
- Arduino の電源を切り入り
- PC に接続したところでシリアル (COM5) が認識しない
- PC 再起動で何とか認識し、原因究明を始める
- Arduino本体, Groveベースシールド, ケーブルに問題はなさそう
- センサ自体が壊れている可能性もあるが、そうそうハズレに当たるとは思えない (思いたくない)
- そもそもセンサの仕様を分かっていなかったため、仕様を調査する
- 手元の品とネット上での品が若干違う…バージョンが違うのか…?
『Intel Edisonでアルコールセンサーを使ってみた』から以下だと思った。
- SEN21723P
- 内蔵ヒーターを熱する必要があり、電源投入後 5 分~ 10 分は正確に測定できない
- Grove ベースシールドの A0 端子に接続した場合、下表の様なピンアサインになる
- A0 ピンがアナログ入力のセンサ部
- A1 ピンがデジタル出力のヒータースイッチ部
- HIGH (1) : OFF
- LOW (0) : ON
- 表示する値は 1023 からセンサの値を引く
- 空気中にあるアルコールによりセンサの抵抗値が下がる仕組み
Arduino | Sensor | Color |
---|---|---|
A0 | DAT | Yellow |
A1 | SCL | White |
5V | VCC | Red |
GND | GND | Black |
VCC と GND は怪しくない。DAT もセンサ部でアナログ入力なので A0 ピンで良さそう。SCL の A1 ピンから漂ってくる怪しさ…。
そこで、仕様から SCL は内蔵ヒーターで、使用する際に ON になれば良さそうなので、 LOW となるよう GND ピンに直結して、起動と同時に内蔵ヒーター ON でどうだろう、と。
Grove ベースシールドを使用せず Arduino に直結する
次の写真のように直結してみた。
ピンアサインは、以下です。
Arduino | Sensor | Color |
---|---|---|
A0 | DAT | Yellow |
GND | SCL | White |
5V | VCC | Red |
GND | GND | Black |
SCL ピンに関係するコード部分 (例えば、内蔵ヒーターを OFF, ON するなど) を除去して簡単化しました。
AlcoholSen.ino
//Alcohol Sensor DAT Pin is connected to Analog Input Pin 0 (A0)
#define analogInDatPin 0
int sensorValue = 0;
void setup()
{
Serial.begin( 9600 ); // open the serial port at 9600 bps
Serial.println( "setup done.\n" );
}
void loop()
{
sensorValue = analogRead( analogInDatPin ); // read the analog value
Serial.print( "sensor test value = " ); // Disply the results in serial monitor.
Serial.println( 1023-sensorValue ); // sensorValue goes down when alcohol is detected.
delay(1000);
}
動作を確認する
途中、314 → 343 → 581 → 874 → 914 と急激に上昇している部分があります。
このタイミングで、日本酒を入れたお椀の直上にセンサを持ってきました。とても分かりやすいです。
感想
- すぐに試してみるって目的のために Grobe システムを導入したのですが、上手くいかない事もあると体感しました
- センサの仕様を理解しておく事の重要性も再認識です
- アルコールセンサを使った面白いネタは、思い付かなかった