HC-SR501モーションセンサー用のArduinoコードとビデオ

HC-SR501モーションセンサー用のArduinoコードとビデオ

このチュートリアルでは、赤外線を利用して動きを検出するよう設計されたHC-SR501モーションセンサーを紹介します。センサーは出力をトリガーでき、動作検出に応じてLEDやアラームなどのデバイスを制御できます。チュートリアルの終わりまでには、センサーの配線方法と、センサーを効果的に動作させるためのArduinoコードの実装方法を明確に理解できるようになります。(ビデオの00:45で)

ハードウェア解説

HC-SR501モーションセンサーは32×24ミリメートルの小型モジュールで、5〜20ボルトの電圧範囲で動作できます。その中心にはLHI 778赤外線センサーがあり、赤外線放射の変化を感知することで動作を検出します。これにより、防犯システムやロボットプロジェクトなどのさまざまな用途に適しています。

このモジュールは3つの主要なピンを備えています:VCC力のために、GND接地用、およびOUT出力信号用です。動体が検出されると、OUTピンはハイ信号(3.3ボルト TTL)を送出し、これを使ってアラームやその他の機器をトリガーできます。センサーは感度と時間遅延の調整設定も備えており、特定のニーズに合わせて動作をカスタマイズできます。

データシートの詳細

製造者HC-SR501
部品番号HC-SR501
ロジック/入出力電圧3.3 V
電源電圧5〜20 V
出力電流(チャネルごと)20 mA以下
ピーク電流(チャンネルあたり)50 mA以下
PWM周波数に関するガイダンス該当なし
入力論理閾値0.8 V(低)、2.0 V(高)
電圧降下 / RDS(オン)/ 彩度0.1 V
熱限界0°C〜70°C
パッケージモジュール
備考 / バリエーション感度および遅延時間を調整可能

  • 電源電圧が正しいことを確認してください(5〜20V)。
  • LEDと直列に抵抗器を入れて電流を制限してください。
  • 検出範囲を調整するには、感度調整用ポテンショメータを調整してください。
  • 出力がハイのままでいる時間を制御するために、遅延時間を設定してください。
  • フローティング入力には注意し、必要に応じてプルアップ抵抗やプルダウン抵抗を使用してください。

配線手順

Arduino wiring for HC-SR501 Motions sensor
Arduino wiring for HC-SR501 Motions sensor

HC-SR501モーションセンサーを配線するには、まず接続から始めますVCCピンをArduinoの5V出力に接続します。次に、GNDピンをArduinoのグラウンド(GND)に接続します。OUTピンはArduinoのデジタルピン2に接続する必要があり、そこでモーション検知信号を読み取ります。

視覚的なフィードバックにLEDを使用する場合は、LEDのアノード(長い脚)をArduinoのデジタルピン8に接続してください。カソード(短い脚)は680オームの抵抗の一端に接続し、抵抗のもう一方の端をグランドに接続します。この構成により、Arduinoは動体検知に基づいてLEDを制御できます。

コード例とウォークスルー

このセットアップ用のArduinoコードはシリアルモニタを初期化し、入力ピンと出力ピンを設定します。コード内の主要な識別子には次のものがあります。motionモーションセンサーの状態を格納する変数と、入力を読み取ったりLEDを制御したりするために使用されるデジタルピン。

void setup() {
  Serial.begin(9600);// setup Serial Monitor to display information
  pinMode(2, INPUT);// Input from sensor
  pinMode(8, OUTPUT);// OUTPUT to alarm or LED
}

この抜粋では、setup()関数はシリアル通信を初期化し、センサーとLEDのピンモードを設定します。ピン2はモーションセンサーの出力を読み取るために入力として設定され、ピン8はLEDを制御するために出力として設定されます。

void loop() {
  int motion = digitalRead(2);
  if(motion){
    Serial.println("Motion detected");
    digitalWrite(8, HIGH);
  }else{
    Serial.println("===nothing moves");
    digitalWrite(8, LOW);
  }
  delay(500);
}

このコードスニペットは、プログラムがモーションセンサーの状態を継続的にチェックするメインループを表しています。モーションが検出されると、シリアルモニタに「Motion detected」と表示してLEDを点灯します。モーションが検出されない場合は、シリアルモニタに「===nothing moves」と表示してLEDを消灯します。

デモンストレーション/何が期待できるか

セットアップが完了してコードがArduinoにアップロードされると、HC-SR501センサーが動きを検知したときにLEDが点灯するはずです。さらに、シリアルモニタには動きが検知されたかどうかが表示されます。センサーの感度やタイムディレイの設定を調整すると、センサーが動きに反応する速度が変わるのが分かるかもしれません(ビデオの05:30で)。

一般的な落とし穴には、接続を逆にするなどの配線ミスが含まれますVCCそしてGNDこれによりセンサーが損傷する可能性があります。センサーの出力ピンがArduinoの指定された入力ピンに正しく接続されていることを確認し、フローティング入力を避けてください。

動画のタイムスタンプ

  • 00:00はじめに
  • 00:45ハードウェアの概要
  • 02:30配線手順
  • 04:00コードの説明
  • 午前05:30デモンストレーション

画像

HC-SR501 back
HC-SR501 back
HC-SR501 module
HC-SR501 module
Arduino wiring for HC-SR501 Motions sensor
Arduino wiring for HC-SR501 Motions sensor
48-This is the Arduino code for the HC-SR501 motion sensor.
言語: C++
コピーしました!

リソースと参考文献

まだリソースはありません。

ファイル📁

ファイルは利用できません。