HC-SR04とArduino NANO を使った警報器

HC-SR04 ウルトラソニックセンサーの計測値を使って複数ポイントを設定してトリガーさせる

任意の距離を自由に設定して、連動する2つ目の機器をトリガーさせる回路です。

今回は、Arguino nano を使ってコントロールします。

今回は、20秒ごとに指定した範囲内に物体があるかを確認します。

もし、物体がある場合は、1秒間のトリガー信号を出力して、トランジスターやリレーを作動させるような作動を行います。

使い方は、セキュリティ装置のコントロールなど利用できる物は多いと思います。

今回使ったもの:

HC-SR04 ウルトラソニックセンサー 1個
Arduino NANO 1個
NPN トランジスター 必要なだけ
10KΩ 抵抗 必要なだけ
ブレッドボード 1個
ハーネス 必要なだけ

配線図:

配線は簡単です。

Arduino を使うと すべての設定は、プログラムで出来るので、少ない配線で作動します。

設定の変更は、スケッチに記載された値を変更するだけなので短時間で行う事が出来ます。

多くの電流を流す負荷の場合はリレーを使て配線する事をお勧めします。

20mA以下の負荷は、トランジスターでコントロールが可能です。

コントロール出来る負荷は、Arduinoの出力ライン数が設定できます。

今回は、3個のLEDを使って 10cm、 30cm、 70cm の 3つの距離を設定してそのゾーニングに物体がある場合だけ1秒間LEDが点灯させる作動をします。

このプログラムは、20秒間の作動停止したのち毎回検知を行います、この作動を繰り返します。

作動に関する設定は、スケッチ内の値またはコードを変更してください。

使うピン:

Arduino NANO ATmega328P HC-SR04
13 pin 19-ピン Trigger pin
12 pin 18-ピン Echo pin
11 pin 17-ピン
10 pin 16-ピン
9 pin 15-ピン

スケッチ例: sketch code

const int Trig = 13;

const int Echo = 12;

const int Led_g = 11;

const int Led_y = 10;

const int Led_r = 9;

int Duration;

float Distance;

void setup() {

Serial.begin(9600);

pinMode(Led_g,OUTPUT);

pinMode(Led_y,OUTPUT);

pinMode(Led_r,OUTPUT);

pinMode(Trig,OUTPUT);

pinMode(Echo,INPUT);

}

void loop() {

digitalWrite(Trig,LOW);

delayMicroseconds(3);

digitalWrite(Trig,HIGH);

delayMicroseconds(3);

digitalWrite(Trig,LOW);

Duration = pulseIn(Echo,HIGH);

Serial.print(Duration);

if (Duration>0) {

Distance = Duration/2;

Distance = Distance*340*100/1000000; // ultrasonic speed is 340m/s = 34000cm/s = 0.034cm/us

Serial.print(Duration);

Serial.print(” us “);

Serial.print(Distance);

Serial.println(” cm”);

if (Distance < 20){

digitalWrite(Led_g,HIGH);

digitalWrite(Led_r,LOW);

digitalWrite(Led_y,LOW);

delay(1000);

digitalWrite(Led_g,LOW);

}else if (Distance < 70){

digitalWrite(Led_g,LOW);

digitalWrite(Led_r,LOW);

digitalWrite(Led_y,HIGH);

delay(1000);

digitalWrite(Led_y,LOW);

}else if (Distance < 200){

digitalWrite(Led_g,LOW);

digitalWrite(Led_r,HIGH);

digitalWrite(Led_y,LOW);

delay(1000);

digitalWrite(Led_r,LOW);

}

}

delay(10000);

}

--------------------

スポンサーリンク

シェアする

  • このエントリーをはてなブックマークに追加

フォローする