반응형
HC-SR04 초음파 센서 사용
스펙
동작 전압 : 5V
소비 전력 : 2mA 미만
측정 각도 : 15도
측정 거리 : 2cm ~ 5m
초음파 센서 기본 원리
공기를 통해 전달되는 40000 Hz의 초음파를 내고
물체나 장애물이 있으면 반사되어 다시 들어 옵니다.
반사되어 들어온 시간과 소리의 속도를 계산하여 거리를 측정할수 있습니다
하드웨어 연결
HC-SR04 초음파 모듈에는 GND, VCC, Trig, Echo의 4 핀이 있으며 보통 기반에 명시되어 있습니다
모듈의 GND와 VCC 핀은 연결할 MCU의 GND와 5v 핀에 각각 연결되어야하며
trig와 echo 핀은 MCU의 디지털 I/O 핀에 연결해야 합니다
(클릭시 확대)
제어
기존적으로 HC-SR04 초음파 모듈은 초기 위와 같은 동작 타이밍을 갖습니다
따라서 초기 트리거를 10us 만큼 High로 주면 40Khz로 8회 초음파가 발생되고 물체에 반사되어 회신되는 초음파가 일정 시간후 들어오게 됩니다
Echo핀에서는 반송되어 들어오기까지 시간이 측정되어 이 시간을 공기중 초음파전달 속도에 도입 계산하여 거리를 측정하게 됩니다
아두이노 지원 (ATmega328P)
// 디지털 핀에 Trigger핀과 Echo핀 연결 넘버 정의 const int trigPin = 9; const int echoPin = 10; long duration; int distance; void setup() { pinMode(trigPin, OUTPUT); // Trigger 핀을 출력으로 설정 pinMode(echoPin, INPUT); // Echo 핀을 입력으로 설정 Serial.begin(9600); // 시리얼 통신 설정 } void loop() { // 트리커 핀 초기화 digitalWrite(trigPin, LOW); delayMicroseconds(2); // 트리거 핀을 10 micro sec 동안만 HIGH로 설정 digitalWrite(trigPin, HIGH); delayMicroseconds(10); digitalWrite(trigPin, LOW); // Echo 핀에서 값을 읽어오기 duration = pulseIn(echoPin, HIGH); // 거리 계산 distance= duration*0.034/2; // 시리얼에 결과 출력 Serial.print("Distance: "); Serial.println(distance); } |
반응형