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

사이즈

거리 측정 방법

데이터시트
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);
}
결과 화면
장애물과의 거리가 디버깅 창에 출력됩니다.

