Arduinoに水位センサー(water detect sensor)を繋いでみた。
超音波洗浄機の自動連続駆動をさせる際の「空焚き」を防止するために、水位を監視して、水が無くなってきたら停止させたい。
そこで、水位センサーを使ってみることにした。
Arduino用の水位センサーがAmazonで異常に安く売っているので購入した。
Rasbee 検出の水センサー 水位 センサー 深さ 水感知センサ Arduino 1個 [並行輸入品](Amazon)
2種類購入した。
片方はチップトランジスタのような部品が載っているのだが、もう片方はチップ抵抗しか基板に載っていない。抵抗分圧しているだけのようだ。
トランジスタ(あるいはアンプ?)が載っている方を試しに使ってみる。
例によって、この基板の詳細が不明でちょっと困った。
検索して探すと、次のようなサイトの記事が見つかる。
→ Arduino Water Detector / Sensor
これを参考にしてみたのだが、正しくない。
上記の方法だとArduinoのデジタルのピンでHigh/Lowを入力しているのだが、これだとうまくいかない。
なぜなら、このwater sensorは実際にはアナログ電圧を出力しているからだ。
自分は、テスターで現物の電圧を調べて確認した。
なので、上記の記事の配線図の「S」というセンサー側の端子は、ArduinoのA0というアナログ入力用のピンに接続した。
「+」、「-」という端子は、Arduinoの基板の+5VとGNDに接続した。
(あと、上記の記事の文章だと端子名にVsとか紛らわしい名前が書いてあるが、何かのコピー&ペースト時のミスなのだろう。)
とりあえず、センサーのアナログ値を取り込むためのコードは次のようになる。
void setup() { Serial.begin(9600); } void loop() { int sensorValue; sensorValue = analogRead(A0); Serial.print("sensor = "); Serial.println(sensorValue); delay(10); }
あとは、リレーボードの制御用のコードと合体させて、sensorValueが閾値より上か下かを判定して、動作をストップさせればよい。
ついで、ストップ時には、警告音をtone()を使って出すようにしたらよいかもしれない。