아두이노

아두이노 초음파 센서 거리 측정 완벽 가이드 – 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 핀아두이노 핀
VCC5V
Trig9번
Echo10번
GNDGND

HC-SR04 초음파 센서 이미지

💻 아두이노 코드 예제

기본적인 거리 측정 코드는 아래와 같습니다.

#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

반응형