HC-SR04

특징

HC-SR04 모듈은 초음파 거리 측정센서입니다.
  • 전압 : 5V
  • 전류 : < 2mA
  • 유효 측정 각도 : < 15도
  • 측정해상도: 0.3 cm
  • 크기 : 2.0 x 4.3 x 1.5 cm

사이즈

거리 측정 방법

데이터시트

[HC-SR04 데이터시트 다운로드]

 

WAT-Arduino128 예제

핀 연결
번호 I/O WAT-Arduino128
 1 VCC 5V
 2 Trig PA0
3 Echo PA1
4 GND GND

 

 

소스코드

소스코드는 [파일]=>[예제]=>[WhiteAT] =>[HC-SR04] 에 있습니다. (라이브러리는 https://docs.whiteat.com/?page_id=5449  참조)

 

/*
  WAT-Arduino128과 HC-SR04 초음파 센서로 거리 측정 예제
 
  WAT-Arduino128 : https://kit128.com/goods/view?no=64
  HC-SR04 : https://kit128.com/goods/view?no=69
 
 출처: http://whiteat.com/Arduino
 
*/ 
 
#define trigPin PA0 // Trigger Pin
#define echoPin PA1 // Echo Pin

 
#define maximumRange   500  // 최대 거리
#define minimumRange   2 // 최소 거리
long duration, distance; // 펄스 시간, 거리 측정용 변수
 
// 프로그램 시작시 초기화 작업
void setup() 
{
	Serial.begin(115200);     // 시리얼 통신 초기화
	pinMode(trigPin, OUTPUT);
	pinMode(echoPin, INPUT);
}
 
// 계속 실행할 무한 루프
void loop() 
{
 digitalWrite(trigPin, LOW); 
 delayMicroseconds(2); 
 
 digitalWrite(trigPin, HIGH);
 delayMicroseconds(10); 
 
 digitalWrite(trigPin, LOW);
 duration = pulseIn(echoPin, HIGH);
 
 // 측정된 시간을 cm로 환산
 distance = duration/58.2;
 
 if (distance >= maximumRange || distance <= minimumRange)
 {
	 Serial.println("out of range");
 }
 else 
 {
	Serial.println(distance);
 }
 
 delay(500);
}

결과 화면

장애물과의 거리가 디버깅 창에 출력됩니다.

Arduino UNO R3 예제

핀 연결
번호 I/O UNO R3
 1 VCC 5V
 2 Trig 2
3 Echo 3
4 GND GND

 

소스코드

소스코드는 [파일]=>[예제]=>[WhiteAT UNO] =>[HC-SR04] 에 있습니다. (라이브러리는 https://docs.whiteat.com/?page_id=5449  참조)

/*
  WAT-Arduino128과 HC-SR04 초음파 센서로 거리 측정 예제
 
  Arduino UNO R3 : https://kit128.com/goods/view?no=337
  HC-SR04 : https://kit128.com/goods/view?no=69
 
 출처: http://whiteat.com/Arduino
 
*/ 
 
#define trigPin 2 // Trigger Pin
#define echoPin 3 // Echo Pin

 
#define maximumRange   500  // 최대 거리
#define minimumRange   2 // 최소 거리
long duration, distance; // 펄스 시간, 거리 측정용 변수
 
// 프로그램 시작시 초기화 작업
void setup() 
{
	Serial.begin(115200);     // 시리얼 통신 초기화
	pinMode(trigPin, OUTPUT);
	pinMode(echoPin, INPUT);
}
 
// 계속 실행할 무한 루프
void loop() 
{
 digitalWrite(trigPin, LOW); 
 delayMicroseconds(2); 
 
 digitalWrite(trigPin, HIGH);
 delayMicroseconds(10); 
 
 digitalWrite(trigPin, LOW);
 duration = pulseIn(echoPin, HIGH);
 
 // 측정된 시간을 cm로 환산
 distance = duration/58.2;
 
 if (distance >= maximumRange || distance <= minimumRange)
 {
	 Serial.println("out of range");
 }
 else 
 {
	Serial.println(distance);
 }
 
 delay(500);
}

결과 화면

장애물과의 거리가 디버깅 창에 출력됩니다.

 

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다