Arduino-pir-sensor
Arduino-PIRセンサー
PIRセンサーを使用すると、動きを感知できます。 これらは、人間がセンサーの範囲内または範囲外に移動したかどうかを検出するために使用されます。 彼らは一般的に家庭や企業で使用される電化製品やガジェットに見られます。 多くの場合、PIR、「受動赤外線」、「焦電」、または「IRモーション」センサーと呼ばれます。
PIRセンサーの利点は次のとおりです-
- 小さいサイズ
- 広いレンズ範囲
- インターフェースが簡単
- 安価な
- 低電力
- 使いやすい
- 摩耗しないでください
PIRは焦電センサーで作られており、中央に長方形の結晶が入った丸い金属缶で、赤外線のレベルを検出できます。 すべてが低レベルの放射線を放出し、何かがより熱いほど、より多くの放射線が放出されます。 モーション検出器のセンサーは2つに分割されています。 これは、平均IRレベルではなく、動き(変化)を検出するためです。 2つの半分は互いに相殺されるように接続されています。 半分の赤外線放射が他の赤外線放射よりも多い場合、または少ない場合、出力は上下にスイングします。
PIRには調整可能な設定があり、3ピンの接地/出力/電源パッドにヘッダーが取り付けられています。
人がエリアを出入りしたことを検出する必要がある多くの基本的なプロジェクトまたは製品にとって、PIRセンサーは優れています。 PIRは、周囲の人数やセンサーへの近さを通知しないことに注意してください。 レンズは、ある距離を置いて特定のスイープに固定されることが多く、家の中のペットによって引き離されることもあります。
必要なコンポーネント
次のコンポーネントが必要になります-
- 1×ブレッドボード
- 1×Arduino Uno R3
- 1×PIRセンサー(MQ3)
手順
回路図に従って、次の図に示すように接続します。
スケッチ
コンピューターでArduino IDEソフトウェアを開きます。 Arduino言語でコーディングすると、回路が制御されます。 [新規]をクリックして、新しいスケッチファイルを開きます。
Arduinoコード
#define pirPin 2
int calibrationTime = 30;
long unsigned int lowIn;
long unsigned int pause = 5000;
boolean lockLow = true;
boolean takeLowTime;
int PIRValue = 0;
void setup() {
Serial.begin(9600);
pinMode(pirPin, INPUT);
}
void loop() {
PIRSensor();
}
void PIRSensor() {
if(digitalRead(pirPin) == HIGH) {
if(lockLow) {
PIRValue = 1;
lockLow = false;
Serial.println("Motion detected.");
delay(50);
}
takeLowTime = true;
}
if(digitalRead(pirPin) == LOW) {
if(takeLowTime){
lowIn = millis();takeLowTime = false;
}
if(!lockLow && millis() - lowIn > pause) {
PIRValue = 0;
lockLow = true;
Serial.println("Motion ended.");
delay(50);
}
}
}
注意すべきコード
PIRセンサーには、V〜cc〜、OUT、GNDの3つの端子があります。 次のようにセンサーを接続します-
- Arduinoボード上の+ V〜cc〜を+ 5vに接続します。
- OUTをArduinoボードのデジタルピン2に接続します。
- GNDをArduinoのGNDに接続します。
センサーボードの下部にある2つの可変抵抗器を使用して、センサーの感度と遅延時間を調整できます。
センサーが動きを検出すると、Arduinoはシリアルポート経由で動きが検出されたことを伝えるメッセージを送信します。 PIR検知モーションは、新しいモーションがあるかどうかを確認するために一定時間遅延します。 モーションが検出されない場合、Arduinoはモーションが終了したことを示す新しいメッセージを送信します。
結果
モーションが検出されるとシリアルポートにメッセージが表示され、モーションが停止すると別のメッセージが表示されます。