2016年11月19日土曜日

Arduino Pro mini で Grove の水分センサを使ってみた

概要

Grove の水分センサ (Moisture Sensor) を Arduino Pro mini で使ってみました
アナログでセンサの値を取得するだけで使えます

環境

  • Mac OS X 10.12.1
  • Arduino IDE 1.6.12

配線

アナログピンに接続するだけなので簡単です
grove_moisture_sensor_circuit.jpg

FTDI のシリアル変換アダプタは 3.3v にしています
使用しているアナログピンは A0 を使用しました

スケッチ

こちらもアナログの値を読み込むだけなので簡単です

int sensorPin = A0;
int sensorValue = 0;

void setup() {
  Serial.begin(9600);
}
void loop() {
  sensorValue = analogRead(sensorPin);
  Serial.print("sensor = " );
  Serial.println(sensorValue);
  delay(1000);
}

動作確認

では、動作確認していきます
コップに水を汲んでテストしてみましょう
自宅の水道水だと以下のような値になりました
grove_moisture_sensor_ret1.png

値は 250 - 450 くらいの値で変化しています
水分センサの先っちょだけ浸すと 250 くらいでセンサ全体を浸すと 450 くらいになりました

何も水に浸していない状態だと 0 だったのでプルダウンしているんだと思います
そして、電気が通る水に浸すと電圧が発生してアナログとして読める感じです

で、せっかくなのでより電気を通すように塩を混ぜて食塩水にして計測してみました
結果は以下のとおりです
grove_moisture_sensor_ret2.png

想像していた通りというかやはりアナログの値は上がりました
なので、このセンサは電気抵抗が低いほど水に浸すほど値が上がるセンサだということがわかりました
なので、純水に浸しても抵抗が大きすぎるのでこのセンサでは値は取得できないと思います

最後に

Grove の水分センサを使ってみました
今回もベースシールドなしでやってみましたが、アナログピンをそのまま使うだけなので簡単でした

Grove 系のセンサはセンサ側で保護回路やプルダウン/アップがちゃんとされているので、使う側は本当に接続するだけで簡単に使えるのが嬉しいところおだと思います

一つ難点を上げるのであれば専用のコネクタを使用するのがデフォルトで DIP 基板等で使えません
なので、ブレッドボードやユニバーサル基板上で使えるようにするのが少し面倒な点かなと思います

参考リンク

0 件のコメント:

コメントを投稿