아두이노:초음파센서: 두 판 사이의 차이
둘러보기로 이동
검색으로 이동
편집 요약 없음 |
(→연결) |
||
4번째 줄: | 4번째 줄: | ||
초음파를 이용하여 일반적으로 거리를 측정한다. 보통 VCC로 5V, 15mA전원을 받고, GND를 접지시킨다. | 초음파를 이용하여 일반적으로 거리를 측정한다. 보통 VCC로 5V, 15mA전원을 받고, GND를 접지시킨다. | ||
=== 원리 === | ===원리=== | ||
{| class="wikitable" | |||
!원리 | |||
!설명 | |||
|- | |||
|과학적 원리 | |||
|초음파를 방출한 후, 수신되기까지의 시간을 계산하여 측정한다. | |||
= | 소리의 속도는 <math>v=\sqrt{\tfrac{B}{\rho}}</math> (B는 부피탄성, rho는 밀도)이다. 대충 <math>v=331.5 + 0.61T</math>(T는 섭씨온도)가 된다. ∴상온에선 대강 340m/s 이라고 보면 된다. | ||
= | 거리는 <math>d= v * time / 2</math> 이므로 이를 계산해내면 거리를 알 수 있다. | ||
|- | |||
|공학적 원리 | |||
|Trig핀에 5V를 입력해주면 초음파를 낸다. 여기서 나온 초음파는 수신부로 돌아와 Echo핀으로 그 값이 입력된다.(디지털 5V) 이를 이용해 거리를 측정한다. | |||
|} | |||
<br /> | |||
=사용법= | |||
== 코드 == | ==연결== | ||
{| class="wikitable" | |||
!종류 | |||
!설명 | |||
!연결예시 | |||
|- | |||
|HC-SR04+ | |||
|HC-SR04과 사용법은 동일. | |||
|[https://postfiles.pstatic.net/MjAxNzAxMDlfMjAw/MDAxNDgzOTQwOTUxNjU3.bH4kF3l7KcGev6_sGRBirdeOFPsHvci5kuYtTXY-y2sg.XOKICjFdglemqkMMdOjJ3rIh0t16ALj3PWGm9za0K90g.JPEG.roboholic84/HC-SR04-Example_bb.jpg?type=w2 링크] | |||
|- | |||
| | |||
| | |||
| | |||
|- | |||
| | |||
| | |||
| | |||
|} | |||
==코드== | |||
<syntaxhighlight lang="c++"> | <syntaxhighlight lang="c++"> | ||
int trigPin = 13; // trig와 연결되는 핀 번호. | |||
int echoPin = 12; // echo와 연결되는 핀 번호. | |||
void setup() | |||
{ | |||
Serial.begin(9600); | |||
pinMode(trigPin, OUTPUT); | |||
pinMode(echoPin, INPUT); | |||
} | |||
void loop() | |||
{ | |||
// 변수 정의 | |||
long duration, distance; | |||
// trig에서 초음파 발사~ | |||
digitalWrite(trigPin, LOW); | |||
delayMicroseconds(2); | |||
digitalWrite(trigPin, HIGH); | |||
delayMicroseconds(10); | |||
digitalWrite(trigPin, LOW); // 발사 멈추기. | |||
// 거리 계산. | |||
duration = pulseIn(echoPin, HIGH); // 되돌아온 시간을 저장. 단위는 μs. | |||
distance = duration * 17 / 1000; | |||
Serial.println(distance); | |||
delay(100); | |||
} | |||
</syntaxhighlight> | </syntaxhighlight> | ||
==유의== | ==유의== | ||
코드에 17이라는 수가 붙는데, 이는 소리의 속도를 340으로 가정한 후 계산한 값이다. 초음파센서에서 측정된 시간은 음파가 갔다 오기까지의 거리. 때문에 <code>거리*2</code> 만큼 측정되고, 거리를 구하기 위해 2로 나누어 17이 나왔다. 기본단위는 m이기 때문에 100으로 나누어 cm단위로 만들면 보기 편해진다. +센서가 측정한 시간단위도 고려. | 코드에 17이라는 수가 붙는데, 이는 소리의 속도를 340으로 가정한 후 계산한 값이다. 초음파센서에서 측정된 시간은 음파가 갔다 오기까지의 거리. 때문에 <code>거리*2</code> 만큼 측정되고, 거리를 구하기 위해 2로 나누어 17이 나왔다. 기본단위는 m이기 때문에 100으로 나누어 cm단위로 만들면 보기 편해진다. +센서가 측정한 시간단위도 고려. |
2022년 9월 19일 (월) 09:58 판
아두이노 관련 정보를 모으기 위한 틀. 틀:아두이노
- 아두이노:개요
- 아두이노:하드웨어
- 아두이노:코드
- 아두이노:핀 사용
- 아두이노:시리얼 통신
- 아두이노:편의함수
- 센서 사용
- 아두이노:LCD 사용
- 아두이노:스위치 사용
- 아두이노:릴레이
- 아두이노:WIFI
- 아두이노:해결되지 않은 다양한 의문들
- 수업용 간단 실습
- 분류:아두이노 프로젝트
개요
초음파를 이용하여 일반적으로 거리를 측정한다. 보통 VCC로 5V, 15mA전원을 받고, GND를 접지시킨다.
원리
원리 | 설명 |
---|---|
과학적 원리 | 초음파를 방출한 후, 수신되기까지의 시간을 계산하여 측정한다.
소리의 속도는 (B는 부피탄성, rho는 밀도)이다. 대충 (T는 섭씨온도)가 된다. ∴상온에선 대강 340m/s 이라고 보면 된다. 거리는 이므로 이를 계산해내면 거리를 알 수 있다. |
공학적 원리 | Trig핀에 5V를 입력해주면 초음파를 낸다. 여기서 나온 초음파는 수신부로 돌아와 Echo핀으로 그 값이 입력된다.(디지털 5V) 이를 이용해 거리를 측정한다. |
사용법
연결
종류 | 설명 | 연결예시 |
---|---|---|
HC-SR04+ | HC-SR04과 사용법은 동일. | 링크 |
코드
int trigPin = 13; // trig와 연결되는 핀 번호.
int echoPin = 12; // echo와 연결되는 핀 번호.
void setup()
{
Serial.begin(9600);
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
}
void loop()
{
// 변수 정의
long duration, distance;
// trig에서 초음파 발사~
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW); // 발사 멈추기.
// 거리 계산.
duration = pulseIn(echoPin, HIGH); // 되돌아온 시간을 저장. 단위는 μs.
distance = duration * 17 / 1000;
Serial.println(distance);
delay(100);
}
유의
코드에 17이라는 수가 붙는데, 이는 소리의 속도를 340으로 가정한 후 계산한 값이다. 초음파센서에서 측정된 시간은 음파가 갔다 오기까지의 거리. 때문에 거리*2
만큼 측정되고, 거리를 구하기 위해 2로 나누어 17이 나왔다. 기본단위는 m이기 때문에 100으로 나누어 cm단위로 만들면 보기 편해진다. +센서가 측정한 시간단위도 고려.