地球の約71%が水で覆われていますが、残念ながら飲料水は2.5%にすぎません。人口の増加、汚染、気候変動に伴い、2025年までに私たちは永続的な水不足を経験すると予想されています。川の水を共有することについて、国や州の間ですでに小さな論争がありますが、一方で私たち人間は私たちの怠慢のために多くの飲料水を浪費しています。
最初は大きく見えないかもしれませんが、水道の蛇口が1秒に1回水滴を滴下した場合、1ガロンの水を無駄にするのに約5時間しかかかりません。これは、平均的な人間が2年間生き残るのに十分な水です。日々。では、これを止めるために何ができるでしょうか?いつものように、これに対する答えは、技術の向上にあります。すべての手動蛇口を自動的に開閉するスマートな蛇口に交換すれば、水を節約できるだけでなく、汚れた手で蛇口を操作する必要がないため、より健康的なライフスタイルを実現できます。そのため、このプロジェクトでは、Arduinoとソレノイドバルブを使用して自動ウォーターディスペンサーを構築します。このバルブは、ガラスを近くに置くと自動的に水を供給します。かっこいいですね!それでは、1つ作成しましょう…
必要な材料
- 電磁弁
- Arduino Uno(任意のバージョン)
- HCSR04 –超音波センサー
- IRF540 MOSFET
- 1kおよび10k抵抗
- ブレッドボード
- 接続線
作業コンセプト
自動ウォーターディスペンサーの背後にある概念は非常に単純です。HCSR04超音波センサーを使用して、ディスペンサーの前にガラスが置かれているような物体がないかどうかを確認します。電磁弁を使用して水の流れを制御します。これは、通電すると水が流出し、非通電すると水が停止します。したがって、蛇口の近くにオブジェクトが配置されているかどうかを常にチェックするArduinoプログラムを作成します。配置されている場合は、ソレノイドがオンになり、オブジェクトが削除されるまで待機します。オブジェクトが削除されると、ソレノイドが自動的にオフになり、水の供給。Arduinoでの超音波センサーの使用について詳しくは、こちらをご覧ください。
回路図
Arduinoベースのウォーターディスペンサーの完全な回路図を以下に示します
このプロジェクトで使用される電磁弁は、最大電流定格が1.2A、連続電流定格が700mAの12Vバルブです。つまり、バルブがオンになっているとき、バルブをオンに保つために約700mAを消費します。私たちが知っているように、Arduinoは5Vで動作する開発ボードであるため、ソレノイドのオンとオフを切り替えるためのスイッチングドライバ回路が必要です。
このプロジェクトで使用されるスイッチングデバイスは、IRF540NNチャネルMOSFETです。ピン1からそれぞれゲート、ソース、ドレインの3つのピンがあります。回路図に示されているように、ソレノイドの正端子はArduinoのVinピンで給電されます。 Arduinoに電力を供給するために12Vアダプターを使用するため、Vinピンはソレノイドの制御に使用できる12Vを出力します。ソレノイドの負端子は、MOSFETのソースピンとドレインピンを介してグランドに接続されています。そのため、MOSFETがオンになっている場合にのみソレノイドに電力が供給されます。
MOSFETのゲートピンは、MOSFETをオンまたはオフにするために使用されます。ゲートピンが接地されている場合はオフのままで、ゲート電圧が印加されている場合はオンになります。ゲートピンに電圧が印加されていないときにMOSFETをオフに保つために、ゲートピンは10kの抵抗を介してグランドに引き下げられます。 Arduinoピン12はMOSFETをオンまたはオフにするために使用されるため、D12ピンは1K抵抗を介してゲートピンに接続されます。この1K抵抗は、電流制限の目的で使用されます。
超音波センサは、 + 5Vとアルドゥイーノの接地ピンによって供給されます。 エコー と トリガー ピンは、それぞれ、ピン8とピン9に接続されています。次に、超音波センサーを使用して距離を測定し、物体が検出されたときにMOSFETをオンにするようにArduinoをプログラムできます。回路全体が単純であるため、ブレッドボードの上に簡単に構築できます。接続した後、私のものは以下のようになりました。
Arduinoボードのプログラミング
このプロジェクトでは、HCSR-04超音波センサーを使用してその前の物体の距離を測定するプログラムを作成する必要があります。距離が10cm未満の場合は、MOSFETをオンにする必要があります。それ以外の場合は、MOSFETをオフにする必要があります。また、ピン13に接続されたオンボードLEDを使用し、MOSFETと一緒に切り替えて、MOSFETがオンまたはオフの状態にあるかどうかを確認できるようにします。同じことを行うための完全なプログラムは、このページの最後にあります。そのすぐ下で、プログラムを意味のある小さなスニペットに分割して説明しました。
プログラムはマクロ定義から始まります。我々は持っている トリガー と エコー 超音波センサとMOSFETのゲート端子と私たちのArduinoのためのI / OとしてLED用のピンを。したがって、これらがどのピンに接続されるかを定義しました。私たちのハードウェアでは、エコーピンとトリガーピンをそれぞれ8番目と9番目のデジタルピンに接続しています。次に、MOSFETピンがピン12に接続され、オンボードLEDがデフォルトでピン13に接続されます。次の行を使用して同じものを定義します。
#define trigger 9 #define echo 8 #define LED 13 #define MOSFET 12
セットアップ 関数内で、どのピンが入力され、どのピンが出力されるかを宣言します。当社のハードウェアでのみ エコー 超音波(US)センサーの端子は入力端子であり、すべての出力端子です休みます。そこで、Arduinoの pinMode 関数を使用して、以下に示すものを指定します。
pinMode(trigger、OUTPUT); pinMode(echo、INPUT); pinMode(LED、OUTPUT); pinMode(MOSFET、OUTPUT);
メイン ループ 関数内で、 measure_distance() という関数を呼び出し ます。 この関数は、USセンサーを使用して、その前にあるオブジェクトの距離 を測定し、値を変数「 distance」に 更新します。USセンサーを使用して距離を測定するには、トリガーピンを最初に2マイクロ秒ローに保持し、次に10マイクロ秒ハイに保持し、次に2マイクロ秒ローに保持する必要があります。これは、その前に物体によって反射されますと、空気中に超音波信号のソニックブラストを送信する エコー ピンがそれによって反射された信号をピックアップします。次に、所要時間の値を使用して、センサーの前方のオブジェクトの距離を計算します。知りたいなら