ポンプコントローラー

画像



すべての人に良い一日を! 水タンクポンプ用のシンプルなコントローラー回路を皆さんと共有したいと思います。これは、あらゆる家庭で役立ちます。







1.仕組み。



当初、アイデアは非常にシンプルでした。コントローラーがポンプを制御し、タンク内の水が所定のレベルを下回らないようにする必要がありました。 2つのセンサーを使用して、水位を制御します。 1つはタンク内の必要な最小レベルを設定し、2つ目は最大値を設定します。 その後、別のセンサーを追加することが決定されました-緊急事態は最大値を超えています。 また、トイレの水タンクの原理でポンプが作動しないようにしたかった。 これは、水位が最低レベルを下回り、最高レベルまで満たされた場合にのみポンプをオンにする必要があることを意味します。 そして、再び、水が最小レベルを下回るまで待って、ポンプを再びオンにします。 ポンプを制御するには、通常開接点のリレーを使用します。これには、ポンプスターターコイルが含まれている必要があります。 リレーコイル電源回路の開回路に接続されたマイクロスイッチを備えた機械フロートの形で、追加の保護も追加されています。 代わりに、シンプルなジャンパーを置くことができます。



画像



2つのLEDが用意されています。 緑色-操作インジケータと赤-緊急センサーが作動した場合、ポンプ操作の瞬間に点灯-すばやく点滅します。



2.概略図。



画像



ポンプを制御し、水位を制御するには、MSP430G2452またはMSP430G2553を使用します(ただし、後者を使用するのは残念です。若いコントローラーがこのタスクに十分に対応できるためです)。 電源として、電話機の充電器が使用され、その出力は正直5ボルトです。 異なる電圧を使用すると、水位センサーが接続されているコントローラーの入力でプルアップ抵抗の値が変化するため、これは非常に重要です。 安定した動作のために、入力が安定した高レベルを受け取る必要があります。5ボルトからの電力の場合、コントローラは論理「1」(好ましくは少なくとも2.5 V)として定義します。電圧「1」は約3.2ボルトです。入力での5ボルトは3.3ボルト以上を受け取るため、コントローラーを損傷する可能性があります。 後者の場合、入力電圧が2.5Vから3.3Vの範囲になるまでR3-R5の定格を下げる必要があります。 3.3ボルトを得るには、LM317を使用してコントローラーに電力を供給します。



センサーは、距離が最小の2つの接点です。 これらは次のように接続されます+5ボルト-すべてのセンサーに共通で、1つの接点に接続され、2番目の接点はコントローラーの対応する入力に接続されます。 それらが水で短絡されると、コントローラーに論理「1」が表示されます。



3.コントローラーファームウェア



コントローラーの作業プログラムはIDE Energiaで記述されているため、コントローラーの入力と出力を書き換えるだけで、プログラムを任意のArduinoコントローラーに簡単に適合させることができ、回路はほとんど変更されません。



コントローラーファームウェア
//水タンクのポンプを制御します

// 2つのセンサーが水の最小値と最大値を使用します

//そして、他の2つの上にある緊急センサー

//操作アルゴリズム

// 1.最初は、タンクは空です

// 2.最大レベルまで水を満たし始め、ポンプをオフにします

// 3.水が最小レベルを下回るまでポンプを停止します

// 4.最大レベルマークに達するまでタンクを満たします

// 5.水が緊急センサーに到達すると、ポンプがオフになります



int minim = 5; //最小レベルを固定します

int maxim = 6; //最大レベルを固定します

int maxstop = 7; //緊急シャットダウンピン

int realay = 8; //リレーピン

int led = 3; //リレーがオンのときのLEDピン

int x = 1; // x = 1の場合は変数、x = 0の場合はタンクを満たす-空

int mi = 0;

int ma = 0;

int ms = 0;

int ledon = 2; // LED-コントローラー操作インジケーター



ボイド設定()

{

pinMode(realay、OUTPUT);

pinMode(led、OUTPUT);

pinMode(ledon、OUTPUT);

pinMode(最小、入力);

pinMode(最大値、入力);

pinMode(maxstop、INPUT);

digitalWrite(ledon、HIGH);

}



ボイドループ()

{

mi = digitalRead(最小); //センサーから値を読み取ります

ma = digitalRead(最大); //最小値と最大値

ms = digitalRead(maxstop); //緊急センサー



if(ms == HIGH)//水が緊急センサーに到達したら、ポンプの電源を切り、点滅して事故を知らせます

{

digitalWrite(realay、LOW);

digitalWrite(led、LOW);

遅延(200);

digitalWrite(led、HIGH);

遅延(200);

}

else //それ以外の場合、通常どおり動作

{



if(mi == LOW && ma == LOW)//最小値より小さい場合は、ポンプをオンにします

{

digitalWrite(realay、HIGH);

digitalWrite(led、HIGH);

xは1です。

}

if(mi == HIGH && ma == HIGH)//最大レベルがポンプの電源を切る場合

{

digitalWrite(realay、LOW);

digitalWrite(led、LOW);

xは0です。

}

if(mi == HIGH && ma == LOW && x == 1)//水で満たす

{

digitalWrite(realay、HIGH);

digitalWrite(led、HIGH);

}

if(mi == HIGH && ma == LOW && x == 0)//タンクを空にする

{

digitalWrite(realay、LOW);

digitalWrite(led、LOW);



}

}

}







4.回路基板



ボードは利用可能な部品を考慮して離婚し、一般的なLUTテクノロジーに従って作成されます。 私のボードでは、2つのジャンパーを取り付ける必要があることに注意してください。



画像



画像



画像



現時点では、非常に重要な点が残っています。 水センサーの寿命はどれくらいですか? 私は、彼らが腐食しやすく、それが彼らの仕事にどのように影響するかを意味します。 誰かがこの質問に対する答えを知っているかもしれません。



アーカイブはファームウェア、ボード、センサーファイルとともにここからダウンロードできます。 アーカイブ



それだけです! どうもありがとう。



All Articles