728x90
안녕하세요. 이번 시간에는 아두이노로 초음파센서를 사용해서 거리 측정하는 예제를 진행하겠습니다.
아두이노에 대해 기본적인 내용을 알고 싶다면 아래 게시글을 참고해주세요.
https://stickode.tistory.com/1044
1. 초음파센서란?
예제에서는 HS-SR04 초음파센서를 사용하겠습니다.
판매링크는 다음과 같습니다. https://www.devicemart.co.kr/goods/view?no=1076851
초음파센서란 약 20kHz 이상의 높은 주파수 소리를 보낸 후 반사되어 돌아오는 시간차를 계산해서 거리를 측정할 수 있는 센서입니다.
TRIG 에서 초음파가 발사되고, ECHO 에서 반사된 초음파를 받습니다.
2. 환경 세팅
3. 회로도
4. 코드
int echo = 8; // 초음파센서 ECHO 핀 번호
int trig = 12; // 초음파센서 TRIG 핀 번호
void setup() {
Serial.begin(9600); // 시리얼 통신을 9600 bps로 초기화
pinMode(trig, OUTPUT); // TRIG 핀을 출력으로 설정
pinMode(echo, INPUT); // ECHO 핀을 입력으로 설정
}
void loop() {
float cycle_time; // 초음파 신호의 왕복 시간을 저장하는 변수
float distance; // 계산된 거리를 저장하는 변수
digitalWrite(trig, HIGH); // 초음파 신호를 생성하기 위해 TRIG 핀을 HIGH로 설정
delay(10); // 10 마이크로초 동안 신호를 유지
digitalWrite(trig, LOW); // TRIG 핀을 LOW로 설정하여 초음파 신호 생성 완료
cycle_time = pulseIn(echo, HIGH); // ECHO 핀에서 초음파의 왕복 시간을 측정하여 저장
// 거리 계산: 초음파는 속도가 340m/s 이므로, 왕복 시간을 거리로 변환 (2로 나누어야 정확한 단일 방향 거리)
distance = ((340 * cycle_time) / 10000) / 2;
Serial.print("Distance:"); // 거리 정보 출력 시작
Serial.print(distance); // 계산된 거리 값 출력
Serial.println("cm"); // 거리 단위인 센티미터(cm) 출력
delay(100); // 100 밀리초(0.1초) 동안 대기.
// 0.1초 간격으로 거리 측정.
}
5. 실행
'C++' 카테고리의 다른 글
[C++] 아두이노 조이스틱 모듈 사용하기 (0) | 2024.03.04 |
---|---|
[C++] 아두이노로 충돌방지모듈 만들기 (0) | 2024.01.31 |
[C++] 아두이노로 자동 햇빛 가리개 만들기 (0) | 2024.01.13 |
[C++] 아두이노로 조도센서 사용하기 (2) | 2023.12.31 |
[C++] 아두이노로 서보 모터 사용하기 (0) | 2023.12.17 |