Arduinoでフロートスイッチ(定水位スイッチ)を使ってみた
はじめに
前回は水位センサーを使いました。
knkomko.hatenablog.com
豆苗の水位を検知する目的で水位センサーを購入したのですが、しばらく使ってみると青い沈殿物が発生し油まで浮いてきたため使用を止めました。
今回は豆苗に使うことを考えて食品衛生法適合のフロートスイッチを使用します。
www.monotaro.com
フロートスイッチ
磁石の付いた浮きが上下する事で出力値が大きく変化するので、しきい値を使って変化を検知します。
www.youtube.com
配線
実際の配線図
半固定抵抗器を使いフロートスイッチの値をArduinoで読み込みます。
半固定抵抗器は真ん中の部品を右に回すことで抵抗量を増やすことができます。
抵抗量を最小にすると値の変化が無くなり、水位の変化も検知できませんでした。
今回は分かり易いように抵抗量を最大にして値の変化量を増やしています。
半固定抵抗器の左端子はArduinoの3.3Vに繋がり、右端子はフロートスイッチに繋がっています。
半固定抵抗器の右端子にArduinoの3.3Vを繋ぐとセンサー値が変化しなかったので配線を間違えないように注意してください。
しきい値の確認
センサーによって値の変化量が変わるため確認します。
私の場合は赤線から下に浮きが沈む事で値が0から706に変わりました。
ソースコード
int watorLevel = 0; // holds the wator level value int watorLevelPin = A0; // wator level sensor pin used void setup() { // put your setup code here, to run once: Serial.begin(9800); } void loop() { // put your main code here, to run repeatedly: // read wator level watorLevel = analogRead(watorLevelPin); Serial.println("Wator Level: Empty(" + String(watorLevel) + ")"); if(watorLevel > 700) { Serial.println("水が空になりそうだよ (" + String(watorLevel) + ")"); } delay(2000); }