38
연결 방법
이 코드는 아두이노와 초음파 센서를 사용하여 물체와의 거리를 측정하고, 그 값을 Serial Monitor에 출력하는 예제입니다. 초음파 센서는 소리의 속도를 이용해 물체까지의 거리를 계산합니다. TRIG 핀으로 초음파를 보내고 ECHO 핀으로 반사되어 돌아온 초음파 신호를 수신하여 거리를 측정합니다.
코드 설명
- 핀 정의
#define TRIG 9 // TRIG 핀 (초음파 보내는 핀)
#define ECHO 8 // ECHO 핀 (초음파 받는 핀)
TRIG
: 초음파 센서에서 신호를 발사하는 핀으로, 디지털 핀 9에 연결되어 있습니다.ECHO
: 반사된 초음파 신호를 수신하는 핀으로, 디지털 핀 8에 연결되어 있습니다.
setup()
함수
void setup() {
Serial.begin(9600);
pinMode(TRIG, OUTPUT);
pinMode(ECHO, INPUT);
}
Serial.begin(9600);
: 시리얼 통신을 시작하여 초당 9600bps의 속도로 Serial Monitor에 데이터를 출력할 수 있도록 설정합니다.pinMode(TRIG, OUTPUT);
: TRIG 핀을 출력 모드로 설정하여 초음파 신호를 보낼 수 있도록 합니다.pinMode(ECHO, INPUT);
: ECHO 핀을 입력 모드로 설정하여 반사된 초음파 신호를 수신할 수 있도록 합니다.
loop()
함수
void loop() {
long duration, distance;
digitalWrite(TRIG, LOW);
delayMicroseconds(2);
digitalWrite(TRIG, HIGH);
delayMicroseconds(10);
digitalWrite(TRIG, LOW);
duration = pulseIn(ECHO, HIGH);
distance = duration * 17 / 1000;
Serial.println(duration);
Serial.print("\nDistance : ");
Serial.print(distance);
Serial.println(" Cm");
delay(1000);
}
-
long duration, distance;
: 초음파 신호가 물체에 반사되어 돌아오는 시간(duration
)과 거리(distance
)를 저장할 변수입니다.- TRIG 핀 신호:
digitalWrite(TRIG, LOW); delayMicroseconds(2);
: TRIG 핀을 짧게 LOW로 설정하여 신호를 초기화합니다.digitalWrite(TRIG, HIGH); delayMicroseconds(10);
: TRIG 핀을 HIGH로 설정하여 10 마이크로초 동안 초음파 신호를 전송합니다.digitalWrite(TRIG, LOW);
: TRIG 핀을 LOW로 다시 설정하여 초음파 신호 전송을 중지합니다.
- ECHO 핀 신호:
duration = pulseIn(ECHO, HIGH);
: ECHO 핀으로 반사된 초음파 신호를 수신하여 HIGH 상태로 유지된 시간을duration
변수에 저장합니다. 이 값은 초음파가 물체까지 갔다가 반사되어 돌아오는 데 걸린 시간을 마이크로초 단위로 나타냅니다.
- 거리 계산:
distance = duration * 17 / 1000;
: 시간을 바탕으로 거리를 계산합니다. 소리의 속도를 이용해 센서에서 물체까지의 거리(단위: cm)를 계산합니다.- 소리의 속도는 약 340 m/s이므로, 거리를 계산할 때
(34000 * duration) / 1000000 / 2
와 동일한 수식을 사용해 편도 거리로 환산합니다.
- 소리의 속도는 약 340 m/s이므로, 거리를 계산할 때
- Serial Monitor 출력:
Serial.println(duration);
: 초음파가 반사되어 돌아오는 시간을 Serial Monitor에 출력합니다.Serial.print("Distance : "); Serial.print(distance); Serial.println(" Cm");
: 거리 값을 cm 단위로 출력하여 물체와의 거리를 표시합니다.
delay(1000);
: 1초 대기 후 측정을 반복합니다.
동작 원리
- 초음파 센서 동작:
- 초음파 센서는 TRIG 핀에서 신호가 전달되면 초음파를 발사하고, ECHO 핀에서 반사된 신호를 수신하여 왕복 시간(duration)을 측정합니다.
- 거리 계산:
duration
값(왕복 시간)을 바탕으로 편도 거리를 계산하여 Serial Monitor에 표시합니다.
- 출력 예시:
- Serial Monitor에는 초음파가 반사되어 돌아오는 시간과 물체와의 거리 값이
Distance: [값] cm
형식으로 출력됩니다.
- Serial Monitor에는 초음파가 반사되어 돌아오는 시간과 물체와의 거리 값이
이 코드는 초음파 센서를 사용하여 간단한 거리 측정을 수행하며, 일정 간격(1초마다)으로 거리를 측정하여 Serial Monitor에 출력합니다.