HC-SR501モーションセンサーをリレーとArduinoコードで使用する
このチュートリアルでは、HC-SR501モーションセンサーをリレーと組み合わせて、Arduinoを使用してAC電球や別の種類の負荷を制御する方法を探ります。HC-SR501は、最大7メートル離れた場所の動きを検出できる赤外線モーションセンサーであり、防犯アラームや自動照明システムなど、さまざまな用途に理想的です。このセンサーとリレーを活用することで、動きが検出されたときにライトが点灯するプロジェクトを作成できます。

ハードウェアのセットアップ、配線の手順、およびこの機能を実現するために必要なArduinoコードについて、ステップバイステップのガイドを提供します。プロセスをより明確に理解するために、関連するビデオを必ずご覧ください(ビデオは00:00で)。
ハードウェアの解説
このプロジェクトの主要なコンポーネントには、HC-SR501モーションセンサー、リレーモジュール、およびArduinoボードが含まれています。HC-SR501センサーには、VCC、GND、およびOUTの3つのピンがあります。VCCピンは電源(5V)に接続され、GNDピンはグラウンドに接続され、OUTピンは動作が検知されたときにArduinoに信号を送ります。
リレーモジュールは、高電圧デバイスを制御できるスイッチとして機能します。主なピンは3つあり、COM(共通)、NO(通常開)、NC(通常閉)です。このセットアップでは、リレーがアクティブになると負荷に接続されるNOピンを使用します。これにより、Arduinoは動体センサーから受信した信号に基づいてリレーを制御できます。
データシートの詳細
| 製造業者 | HC-SR501 |
|---|---|
| 部品番号 | HC-SR501 |
| 論理/入出力電圧 | 5 V |
| 供給電圧 | 5-20 V |
| 電力消費 | 65 mA |
| 検出角度 | 120度 |
| 検出距離 | 3-7 m |
| 動作温度 | -15 ~ 70 °C |
| 出力タイプ | デジタル |
| パッケージ | モジュール |
- センサーに適切な電源(5-20 V)を供給してください。
- 感度ポテンショメーターを調整して最適な検出範囲にしてください。
- リレーのNOピンを使用して負荷を効果的に制御します。
- リレーの定格電流(最大10 A)に注意してください。
- 最終設置前に動作センサーの検出範囲をテストしてください。
- 高負荷でリレーを使用する場合は、熱放散を考慮してください。
配線指示

HC-SR501モーションセンサーとリレーをArduinoに接続するには、まずモーションセンサーのVCCピンをArduinoの5Vピンに接続します。次に、センサーのGNDピンをArduinoのGNDピンの1つに接続します。モーションセンサーのOUTピンはArduinoのデジタルピン2に接続する必要があります。
リレーモジュールについては、VCCピンをArduinoの5Vピンに、GNDピンをグランドに接続します。リレーの入力ピン(通常INまたは類似のラベルが付けられています)は、Arduinoのデジタルピン4に接続する必要があります。リレーの向きを確認し、この設定のために通常開(NO)に設定されていることを確認してください。最後に、リレーの仕様に従って負荷(例:AC電球)をリレーに接続し、接続が確実であることを確認してください。
コード例とウォークスルー
Arduinoコードでは、センサーとリレーピンの定数を定義します。センサーピンは設定されています。SENSOR_PINデジタルピン2に割り当てられたもので、リレーピンは次のように設定されていますRELAY_PINデジタルピン4に割り当てられています。この設定により、センサーの出力を読み取り、それに応じてリレーを制御することができます。
const int SENSOR_PIN = 2; // the Arduino pin connected to the output of the sensor
const int RELAY_PIN = 4; // the Arduino pin which is connected to control the relay
空の中でsetup()関数では、デバッグのためにシリアルモニターを初期化し、センサーとリレーのピンモードを設定します。これにより、Arduinoはどのピンが入力でどのピンが出力であるかを認識します。
void setup() {
Serial.begin(9600); // setup Serial Monitor to display information
pinMode(SENSOR_PIN, INPUT); // Define SENSOR_PIN as Input from sensor
pinMode(RELAY_PIN, OUTPUT); // Define RELAY_PIN as OUTPUT for relay
}
申し訳ありませんが、その文は不完全です。適切な翻訳を提供するためには、もう少し文を補足していただけますか?loop()関数では、私たちは常にモーションセンサーの状態を確認します。動きが検出された場合、シリアルモニターにメッセージを表示し、リレーをLOWに設定してオンにします。動きが検出されない場合は、別のメッセージを表示し、リレーをHIGHに設定してオフにします。
void loop() {
int motion = digitalRead(SENSOR_PIN); // read the sensor pin
if (motion) {
Serial.println("Motion detected");
digitalWrite(RELAY_PIN, LOW); // Turn the relay ON
} else {
Serial.println("===Nothing moves");
digitalWrite(RELAY_PIN, HIGH); // Turn the relay OFF
}
delay(500);
}
デモンストレーション / 期待できること
モーションセンサーが動きを検知すると、リレーが作動し、接続された負荷(AC電球など)に電力が供給されます。動きが検知されると、すぐに電球が点灯するはずです。センサーが動きを検知しない場合、電球はオフのままとなります。センサーの感度設定は検知範囲に影響を与えるので、最適な性能を得るためには調整が必要になる場合があります(動画の05:00にて)。
一般的な落とし穴には、配線が不正確であることやリレーの電流制限を超えることが含まれ、これは故障につながる可能性があります。すべての接続が確実であることを確認し、最終使用前に制御された環境で設定をテストしてください。
ビデオタイムスタンプ
- 00:00 スタート
- 00:35 ハードウェアの解説
- 04:35 リレー定格出力
- 06:00 配線の説明
- 07:53 Arduinoコードの説明
- 09:48 このプロジェクトのデモンストレーション
必要かもしれないもの
-
アマゾン
-
イーベイeBayでHC-SR501モーションセンサーを購入するebay.us
-
アリエクスプレスAliExpressからHC-SR501、HC-SR505、HW-MS03モーションセンサーを購入してください。s.click.aliexpress.com
リソースと参考文献
まだリソースはありません。
ファイル📁
ファイルは利用できません。