
초음파 센서 HC-SR04 구매처
https://www.navimro.com/g/445999/
초음파 거리 센서 모듈(HC-SR04), YwRobot, 445999 - 나비엠알오
특징 초음파 거리 센서 모듈 형식 전압: 5V 감지 거리: 2-450cm 정확도: 0.3cm 주의사항 반품불가한 상품이오니 신중한 구매 부탁드립니다. / No.1 기업 전용 쇼핑몰 나비엠알오(NAVIMRO)입니다.
www.navimro.com
아마 이 모듈은 다른 엘레파츠나 에듀이노 같은 사이트에서도 구매 가능할거다! 여러 가지 찾아보다가 제일 여러가지 정보가 많길래 이 모듈을 구매하기로 결정했고, 이 글은 gpt랑 구글링이 도와줬다.. 물론 나도 공부를 했지만 👍🏻
1. HC-SR04
Vcc: 5V input pin
Trig: 간단하게 거리 측정을 시작하는 역할, 짧은 전기 신호 전송 시 이를 감지하고 초음파 신호를 발사함. 또한, arduino 프로그램에서 따로 핀을 지정해주어야 함.
Echo: 반사된 초음파 신호 수신, 반사되어 돌아올 때까지의 시간을 측정함. 시간이므로 거리 계산으로 변환도 해주어야 함!(수식은 밑에서 설명함.) 또, 얘도 arduino 프로그램에서 핀을 따로 지정해주어야 함.
GND: 다 알듯이 접지
2. 준비물
1) HC-SR04(Ultrasonic sensor)
2) breadboard
3) 점퍼선 (암-수)
4) arduino UNO board
5) USB cable(arduino UNO board, 컴퓨터 연결 시 사용)
3. 구현할 기능
1) serial monitor에 앞의 물체와 초음파 센서 사이의 간격이 얼마인지 cm로 표시
2) 감지 거리를 변수로 지정하여
- fiezo buzzer로 경고음 출력
- LCD I2C로 경고문 출력
- 라인트레이서 모듈 조정하여 현재 자리에 멈춤 기능
- .. 아마 추가될 수도 있을 듯 하다.
4. Tinkercad 회로도

- fiezo buzzer를 나중에 사용할거라 빵판 위에 꽂아두긴했는데 초음파 센서만 사용하는 경우라면 생략 가능하다.
5. 실제 연결


1) Vcc pin -> arduino uno board의 5V 핀에 연결
2) Trig pin -> 5번 핀에 연결
3) Echo pin -> 3번 핀에 연결
* 아두이노 보드 핀 옆에 있는 ~표시: PWM 기능을 지원하는 것인데 초음파 센서에서는 굳이 필요없으므로 Trig, Echo는 아무 디지털 핀 중 하나에 연결해줘도 됨.
4) Gnd -> 5V 밑에 있는 Gnd 핀에 연결
6. arduino IDE program code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
|
const int trigPin=5; // Set trigPin
const int echoPin=3; // Set echoPin
long duration;
long distance_cm; // 변수 지정
void setup(){
Serial.begin(9600);
pinMode(trigPin, OUTPUT); // Set OUTPUT trigPin
pinMode(echoPin, INPUT); // Set OUTPUT echoPin
}
void loop(){
long duration;
long cm;
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
duration = pulseIn(echoPin, HIGH);
cm = duration * 0.034 / 2; // 감지된 정보를 cm로 변환
Serial.print("Distance: ");
Serial.print(cm);
Serial.println("cm"); // Serial monitor에 정보 출력
delay(3000);
if (cm <= 5){
// Your code here
} // 5cm 이내에 들어왔을 시 행해야 할 코드 입력
}
|
cs |
* 거리 계산: 시간을 이용해 계산하면 됨,
소리의 속도는 약 340m/s 이므로 1cm 이동시 약 29.4us 소요
왕복 시간이므로 나누기 2를 해주어야 함.
거리 = 시간*소리의 속도/2
-> cm = duration*0.034/2 를 이용해 계산
** Trig, Echo pin은 각각 상수로 지정해주어야 값이 변화될 때에도 편리
*** 밑에 if 문에서는 구현하려고 했던 기능들을 lcd I2C나 fiezo buzzer 모듈을 달아서 구현해주면 됨

암튼 저 코드로 입력해주고 serial monitor를 실행시키면 이렇게 거리가 표현이 될 것이다.
-> serial monitor output도 기회가 된다면 추가하도록 하겠음! 다음엔 RGB 모듈을 써봐야겠다.
'캡스톤디자인(3-1) > 아두이노' 카테고리의 다른 글
[아두이노] 블루투스 모듈, HM-10(1) (0) | 2024.07.08 |
---|---|
[아두이노] 피에조 부저 모듈, fiezo buzzer (0) | 2024.07.08 |
[아두이노] LCD I2C 모듈(LiquidCrystal Displays) (0) | 2024.07.08 |
[아두이노] RGB 모듈 (0) | 2024.07.06 |