Arduino Uno 로 HC-SR04 초음파 센서를 사용해 거리를 측정하고 테스트하는 프로젝트 입니다
HC-SR04 초음파 센서는 VCC, Trig, Echo, GND 4핀으로 구성된 초음파 원리를 이용해
거리를 측정 할 수 있는 센서입니다
측정거리는 20~5000mm 이며, 측정 유효 각도는 15도 이내 입니다
5V전원 공급후 Trig 핀을 통해 10us 의 펄스를 인가하면 센서는 8개의 40KHz 펄스를 발생시키고, 측정된 거리에 따라 150us~25ms의
펄스를 Echo 핀을 통해 출력하는 방식 입니다
사용된 부품
Arduino Uno R3 (Italy)
브래드 보드
점퍼케이블
사용된 키트
구성 배선도
사용된 예제소스
#define trigPin 7
#define echoPin 8
void setup()
{
Serial.begin (9600);
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
}
long microsecondsToInches(long microseconds)
{
// According to Parallax's datasheet for the PING))), there are
// 73.746 microseconds per inch (i.e. sound travels at 1130 feet per
// second). This gives the distance travelled by the ping, outbound
// and return, so we divide by 2 to get the distance of the obstacle.
// See: http://www.parallax.com/dl/docs/prod/acc/28015-PING-v1.3.pdf
return microseconds / 74 / 2;
}
long microsecondsToCentimeters(long microseconds)
{
// The speed of sound is 340 m/s or 29 microseconds per centimeter.
// The ping travels out and back, so to find the distance of the
// object we take half of the distance travelled.
return microseconds / 29 / 2;
}
void loop()
{
long duration, inches, cm;
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
duration = pulseIn(echoPin, HIGH);
// convert the time into a distance
inches = microsecondsToInches(duration);
cm = microsecondsToCentimeters(duration);
Serial.print(inches);
Serial.print("inch, ");
Serial.print(cm);
Serial.println(" cm");
delay(100);
}
Trig 핀모드 7번 입니다, Echo 핀모드 8번 입니다, 시리얼 통신속도 9600입니다, long duration, inches, cm;
사용된 라이브러리
첨부된 예제소스에서는 라이브러리를 사용하지 않았지만 라이브러리를 사용한 다양한 프로젝트가
오픈소스로 공개되고 있으므로 참고용으로
HC-SR04 초음파 센서 라이브러리를 첨부하였습니다
라이브러리 추가 방법은 Arduino IDE 설치하기 포스팅을 참조해 주세요
주의사항
배선시 HC-SR04 핀맵에 맞게 센서의 방향을 잘 확인해야 합니다
핀맵은 VCC, Trig, Echo, GND 순 입니다
손으로 가리거나 초음파를 차단하는 물체를 가져다 대면 출력값이 변하는것을 확인 할수 있습니다
프로젝트 동영상
'Arduino(아두이노) 키트 강좌' 카테고리의 다른 글
Step.18-Arduino Uno 로 직류 DC 모터 구동 시키고, 속도 제어해 보기 (0) | 2015.06.02 |
---|---|
Step.17-Arduino Uno 로 SG90 서보 모터 구동 시키기 (0) | 2015.06.02 |
Step.15-Arduino Uno 로 1602 LCD를 사용해 문자 출력하기 (0) | 2015.06.01 |
Step.14-Arduino Uno 로 여러개의 LED 켜기 (0) | 2015.05.29 |
Step.13-Arduino Uno 로 화염감지 센서를 이용해 부저(경보) 울리기 (0) | 2015.05.28 |
댓글