아두이노
아두이노 초음파 센서 거리 측정 완벽 가이드 – HC-SR04 연결부터 코드까지
게임교수
2025. 4. 19. 17:16
반응형
아두이노 초음파 센서 거리 측정 완벽 가이드 – HC-SR04 연결부터 코드까지
아두이노로 사물과의 거리를 측정할 수 있다는 사실, 알고 계셨나요?
이번 글에서는 초음파 센서인 HC-SR04를 사용하여 간단한 거리 측정 시스템을 구현해봅니다. 이 센서는 자동차의 주차 감지기, 로봇 장애물 회피, 스마트 쓰레기통 등 다양한 프로젝트에 활용할 수 있는 매우 인기 있는 센서입니다.
📦 준비물
- 아두이노 UNO 보드
- HC-SR04 초음파 센서
- 점퍼 와이어
- 브레드보드
- USB 케이블
- 시리얼 모니터 또는 LCD 모듈 (선택)
🔍 HC-SR04 센서 원리
HC-SR04는 초음파를 발사한 후 반사되어 돌아오는 시간을 측정해 물체까지의 거리를 계산합니다. 소리의 속도가 약 340m/s임을 활용하여 다음과 같은 공식으로 거리를 구할 수 있습니다.
거리(cm) = (왕복 시간 * 0.034) / 2
Trig 핀에서 짧은 초음파 펄스를 보내고, Echo 핀으로 반사된 신호를 받아 측정합니다. 거리가 가까우면 시간도 짧고, 멀수록 길어지게 되죠.
🧰 회로 연결
HC-SR04 핀 | 아두이노 핀 |
---|---|
VCC | 5V |
Trig | 9번 |
Echo | 10번 |
GND | GND |
💻 아두이노 코드 예제
기본적인 거리 측정 코드는 아래와 같습니다.
#define trigPin 9
#define echoPin 10
void setup() {
Serial.begin(9600);
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
}
void loop() {
long duration;
int distance;
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
duration = pulseIn(echoPin, HIGH);
distance = duration * 0.034 / 2;
Serial.print("거리: ");
Serial.print(distance);
Serial.println(" cm");
delay(500);
}
🧪 테스트 & 실전 팁
코드를 업로드하고 시리얼 모니터(9600bps)를 열면 실시간으로 거리 값이 출력됩니다. 물체를 가까이 움직이면 숫자가 줄고, 멀어지면 늘어나는 걸 확인할 수 있어요.
- 🛠️ 오차 보정: 가까운 거리(10cm 이하)에서는 초음파 간섭이 발생할 수 있습니다. 펌웨어에서 최소 거리를 설정하거나 평균값을 사용하면 안정성이 높아집니다.
- 📺 LCD 출력: I2C LCD(1602/2004)를 함께 연결하면 거리값을 실시간 표시할 수 있습니다. 사용자 인터페이스가 필요할 때 매우 유용합니다.
- 🤖 응용: 장애물 감지, 거리 기반 자동 문 열림, 스마트 주차 센서 등 다양하게 활용 가능합니다.
✅ 마무리
HC-SR04 초음파 센서는 저렴하면서도 매우 실용적인 센서입니다. 거리 측정을 통해 환경을 인식하거나, 반응하는 자동화 시스템을 만드는 데 꼭 필요한 요소죠.
오늘 배운 내용을 바탕으로 다양한 센서와 결합해보며 프로젝트를 확장해보세요!
Arduino 시리즈 13편 | 작성자: YT
반응형