이번에 알아볼 센서는 거리를 측정할 수 있는 초음파 센서인 HC-SR04입니다.
상세 Datasheet는 아래 문서에서 확인 할 수 있습니다.
http://www.micropik.com/PDF/HCSR04.pdf
Specifications
- Power Supply :+5V DC
- Quiescent Current : <2mA
- Working Currnt: 15mA
- Effectual Angle: <15°
- Ranging Distance : 2cm – 400 cm/1" - 13ft
- Resolution : 0.3 cm
- Measuring Angle: 30 degree
- Trigger Input Pulse width: 10uS
- Dimension: 45mm x 20mm x 15mm
Pins
- VCC: +5VDC
- Trig : Trigger (INPUT)
- Echo: Echo (OUTPUT)
- GND: GND
앞선 포스트들을 보셨다면 이제 시그널들에 조금 익숙해 지셨을 텐데요.
아래 diagram을 보면 10us동안 HIGH를 INPUT으로 넣어주면, 센서 내부에서 8개의 40kHz의 시그널을 송출합니다.
그리고 반사된 신호가 들어오면 그 시간동안 OUTPUT pin을 High로 올려주게 됩니다.
예제 코드를 돌려보면... 잘 동작하네요 ^^::
/* sedew810225@gmail.com
* Ultrasonic sensor Pins:
* VCC: +5VDC
* Trig : Trigger (INPUT) - Pin 4
* Echo: Echo (OUTPUT) - Pin 5
* GND: GND
*/
unsigned int trigPin = 4;
unsigned int echoPin = 5;
long duration, cm, inches;
void setup() {
Serial.begin (9600);
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
}
void loop() {
// start by a High pulse of 10 microseconds
digitalWrite(trigPin, LOW);
delayMicroseconds(5);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
//read data from echoPIN for the duration of HIGH signal
pinMode(echoPin, INPUT);
duration = pulseIn(echoPin, HIGH);
//convert time to distance
cm = (duration/2) / 29.1;
inches = (duration/2) / 74;
Serial.print(inches);
Serial.print("in, ");
Serial.print(cm);
Serial.print("cm");
Serial.println();
delay(250);
}
References :
http://www.instructables.com/id/Simple-Arduino-and-HC-SR04-Example/
http://randomnerdtutorials.com/complete-guide-for-ultrasonic-sensor-hc-sr04/
'TinyProjects' 카테고리의 다른 글
Beautiful KiWi with Python and OpenCV (0) | 2016.03.17 |
---|---|
LCD1602 모듈과 아두이노 (0) | 2016.03.13 |
SEN0018 적외선 감지 센서 (0) | 2016.03.10 |
DHT-11 Sensor 아두이노 테스트 (13) | 2016.03.10 |
ARDUINO/GENUINO 개발 환경 세팅하기 (0) | 2016.03.10 |