본문으로 이동
주 메뉴
주 메뉴
사이드바로 이동
숨기기
둘러보기
대문
최근 바뀜
임의의 문서로
미디어위키 도움말
특수 문서 목록
학교의 모든 지식. SMwiki
검색
검색
보이기
로그인
개인 도구
로그인
로그아웃한 편집자를 위한 문서
더 알아보기
기여
토론
아두이노:초음파센서
편집하기
문서
토론
한국어
읽기
편집
원본 편집
역사 보기
도구
도구
사이드바로 이동
숨기기
동작
읽기
편집
원본 편집
역사 보기
일반
여기를 가리키는 문서
가리키는 글의 최근 바뀜
파일 올리기
문서 정보
보이기
사이드바로 이동
숨기기
Sam
(
토론
|
기여
)
님의 2025년 10월 14일 (화) 04:32 판
(
→
개요
)
(
차이
)
← 이전 판
|
최신판
(
차이
) |
다음 판 →
(
차이
)
경고: 이 문서의 오래된 판을 편집하고 있습니다.
이것을 게시하면, 이 판 이후로 바뀐 모든 편집이 사라집니다.
경고:
로그인하지 않았습니다. 편집을 하면 IP 주소가 공개되게 됩니다.
로그인
하거나
계정을 생성하면
편집자가 사용자 이름으로 기록되고, 다른 장점도 있습니다.
스팸 방지 검사입니다. 이것을 입력하지
마세요
!
{{아두이노}} ==개요== 초음파를 이용하여 일반적으로 거리를 측정한다. 보통 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 /> =사용법= ==연결방법 및 하드웨어 스펙== https://www.mfgrobots.com/article/uploadfiles/202204/2022042215404956.png {| class="wikitable" !종류 !설명 !연결예시 |- |HC-SR04 |5V를 받아 2cm~450cm까지 측정한다. |[https://postfiles.pstatic.net/MjAxNzAxMDlfMjAw/MDAxNDgzOTQwOTUxNjU3.bH4kF3l7KcGev6_sGRBirdeOFPsHvci5kuYtTXY-y2sg.XOKICjFdglemqkMMdOjJ3rIh0t16ALj3PWGm9za0K90g.JPEG.roboholic84/HC-SR04-Example_bb.jpg?type=w2 링크] |- |HC-SR04+ |HC-SR04과 사용법은 동일. 2~450cm (5V 기준), 2~400cm (3.3V 기준) 조금 더 안정적으로 멀리 | |- |US-015 |HC-SR04보다 정밀함. 사용법은 위와 동일. 측정 범위 : 2~400cm, 정밀도 : 약 0.1mm | |- |방수 초음파 거리센서 |작동 온도: -10~70℃, 최대 측정거리: 약 5m |[https://mechasolution.com/shop/goods/goods_view.php?goodsno=583208&category= 링크] |} = 활동 예시 = === 준비물 === * 아두이노(보통 우노) + 아두이노 우노용 케이스([https://www.thingiverse.com/thing:3366898 링크], 1개 출력에 대략 1시간 생각하면 됨) * 노트북(아두이노 IDE 설치해 코드 전달용) + USB 연결(R3는 USB B타입, R4는 USB C타입) * 초음파 센서 * 점퍼선 암-수 4개 <youtube>https://www.youtube.com/watch?v=d3_SChekcEI</youtube> ==코드== ===해설 없는 원본=== <syntaxhighlight lang="c++">int trigPin = 13; int echoPin = 12; void setup() { Serial.begin(9600); pinMode(trigPin, OUTPUT); pinMode(echoPin, INPUT); } void loop() { long duration, distance; digitalWrite(trigPin, LOW); delayMicroseconds(2); digitalWrite(trigPin, HIGH); delayMicroseconds(10); digitalWrite(trigPin, LOW); duration = pulseIn(echoPin, HIGH); distance = duration * 17 / 1000; Serial.println(distance); delay(100); }</syntaxhighlight> ===해설본=== <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; /* 코드에 17이라는 수가 붙는데, 이는 소리의 속도를 340으로 가정한 후 계산한 값이다. 초음파센서에서 측정된 시간은 음파가 갔다 오기까지의 거리. - cm단위로 나타내면 34,000cm/s 이다. 거리*2 만큼 측정되고, 거리를 구하기 위해 2로 나누어 17이 나왔다. - 그런데, duration은 마이크로초 단위이다. 때문에 초단위로 변화시키기 위해 10^-6을 곱한다. -> 최종적으로 17/1000 */ Serial.println(distance); delay(100); } </syntaxhighlight> == 해볼 만한 과제 == *과학적 원리에 대해 조사 발표. *오차의 원인에 대해 살피기. *위 코드를 해석, 발표. *온도센서를 통해 온도값 T를 얻는다면 코드를 어떻게 고치면 좋을까? *시리얼모니터에 단위가 뜨지 않아 헷갈린다. 단위까지 띄우려면 어떻게 해야 할까? *이것으로 할 수 있는 활동은 어떤 것들이 있을까?(진자 주기운동이라든가 충돌이라든가 등등등)
요약:
학교의 모든 지식. SMwiki에서의 모든 기여는 크리에이티브 커먼즈 저작자표시-동일조건변경허락 라이선스로 배포된다는 점을 유의해 주세요(자세한 내용에 대해서는
학교의 모든 지식. SMwiki:저작권
문서를 읽어주세요). 만약 여기에 동의하지 않는다면 문서를 저장하지 말아 주세요.
또한, 직접 작성했거나 퍼블릭 도메인과 같은 자유 문서에서 가져왔다는 것을 보증해야 합니다.
저작권이 있는 내용을 허가 없이 저장하지 마세요!
취소
편집 도움말
(새 창에서 열림)
이 문서에 포함된 문서:
틀:아두이노
(
편집
)
검색
검색
아두이노:초음파센서
편집하기
새 주제