« Arduinoで作ろう(8) DHT11で温湿度計 | トップページ | Arduinoで作ろう(10) 赤外線距離センサ GP2Y0A21YK »

2018年6月11日 (月)

Arduinoで作ろう(9) 超音波距離センサ HC-SR04

Hcsr04_i2c_lcd_

超音波距離センサHC-SR04を使うと,2~400cmにある対象物までの距離を測ることができます。測距の原理は次のようになっています。

(1) トリガ端子(trig)を10us以上Highにしてセンサモジュールから40kHzのパルスを8回送信する。
(2) 対象物で反射して戻ってきた超音波を受信すると,エコー端子(echo)がHighになる。
(3) pulseIn関数はエコー端子がHIGHになって再びLOWに戻るまでの時間を測定して返す。
(4) 音速×(エコー端子がHighになっている時間÷2) で,対象物までの距離を計算する。

HC-SR04には不具合のある製品があるようです。僕のがまさにそうでした(^^;) ご注意ください。

スケッチはこちら→ 20180611.ino

/* 超音波センサHC-SR04 I2C接続LCD(AQM1602)使用 */

#define trig 6
#define echo 7
#include <Wire.h>
#include <ST7032.h>
ST7032 lcd;
int time;
float distance;

void setup() {
lcd.begin(16, 2);
lcd.setContrast(30);
pinMode(trig, OUTPUT);
pinMode(echo, INPUT);
}

void loop() {
digitalWrite(trig, LOW);
delayMicroseconds(1);
digitalWrite(trig, HIGH);
delayMicroseconds(10);
digitalWrite(trig, LOW);

time = pulseIn(echo, HIGH);
distance = (time / 2) * 0.0340;

lcd.setCursor(0, 0);
lcd.print(" time:"); lcd.print(time); lcd.print("us ");
lcd.setCursor(0, 1);
lcd.print("distance:"); lcd.print(distance); lcd.print("cm ");

delay(500);
}

↓ iPhoneで撮影すると,超音波の音が聞こえるんだー(・o・)

| |

« Arduinoで作ろう(8) DHT11で温湿度計 | トップページ | Arduinoで作ろう(10) 赤外線距離センサ GP2Y0A21YK »

Arduino」カテゴリの記事

トラックバック


この記事へのトラックバック一覧です: Arduinoで作ろう(9) 超音波距離センサ HC-SR04:

« Arduinoで作ろう(8) DHT11で温湿度計 | トップページ | Arduinoで作ろう(10) 赤外線距離センサ GP2Y0A21YK »