LoginSignup
6

More than 5 years have passed since last update.

posted at

updated at

ArduinoでGroveアルコールセンサSEN21723Pを試す

Precondition

簡単に動作するハズだった…

Groveシステムを使えば、簡単に試せるハズだったのです…。
しかし、私の環境では、上手く動作せず、いろいろ試したことをまとめておきます。

まず、動作しなかった手順は以下です。

  1. センサをGroveベースシールドの A0 端子に接続する
  2. Grove - Alcohol Sensorからコードをコピペする
  3. Arduino IDE にてコンパイル&書き込み
  4. 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 に直結する

次の写真のように直結してみた。

002-01-light.jpg

ピンアサインは、以下です。

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);
}

動作を確認する

  1. Arduino IDE にてコンパイル&書き込み
  2. シリアルモニタを起動し、ログを確認する
    [ツール] → [シリアルモニタ]
    002-02.png

途中、314 → 343 → 581 → 874 → 914 と急激に上昇している部分があります。
このタイミングで、日本酒を入れたお椀の直上にセンサを持ってきました。とても分かりやすいです。

感想

  • すぐに試してみるって目的のために Grobe システムを導入したのですが、上手くいかない事もあると体感しました
  • センサの仕様を理解しておく事の重要性も再認識です
  • アルコールセンサを使った面白いネタは、思い付かなかった

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
What you can do with signing up
6