반응형
크몽 '경매하는 개발자' 님의 경매/부동산/IT/사업 채널
경매하는 개발자
크몽 '경매하는 개발자' 님의 경매/부동산/IT/사업 채널
전체 방문자
오늘
어제
  • 분류 전체보기 (329)
    • IT (128)
      • 아두이노 (6)
      • C C++ (17)
      • C C++ 컴파일 에러 (3)
      • LINUX (3)
      • Git (1)
      • OpenGL (0)
      • IT 상식 (38)
      • EXCEL & VBA (9)
      • 정보처리기사 (20)
      • 무작정 웹사이트 만들기 (6)
      • 포토샵 (3)
      • 파이썬 & vscode (16)
      • 머신러닝 & 인공지능 & 데이터사이언스 (5)
    • 부동산 (91)
      • 부동산일반 (31)
      • 세금 (6)
      • 경매 (46)
      • 법, 소송 (8)
    • 개인사업자 (43)
      • 할 일 (11)
      • 꿀팁 (9)
      • 세금 (14)
      • 지원사업 (8)
    • 독후감 (25)
      • 독후감 (25)
    • 경제 (4)
      • 거시경제 (4)
    • Tistory (34)
      • 티스토리 (23)
      • 애드센스 (11)
    • 기타 (4)
      • 에세이 (2)
      • 퇴사준비 (2)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • 부의추월차선
  • 세금계산서
  • 부의추월차선독후감
  • 온비드공매
  • 애드센스
  • 전자세금계산서
  • 온비드공인인증서
  • 부의추월차선리뷰
  • 부가가치세
  • 부의추월차선요약
  • 공매
  • 개인사업자
  • 전입신고
  • 일반과세자
  • 부의추월차선서평
  • 확정일자
  • 경매
  • 부의추월차선줄거리
  • 티스토리애드센스
  • 온비드공동인증서

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
크몽 '경매하는 개발자' 님의 경매/부동산/IT/사업 채널
IT/아두이노

[아두이노기초-4] 초음파 센서로 거리 측정하기

[아두이노기초-4] 초음파 센서로 거리 측정하기
IT/아두이노

[아두이노기초-4] 초음파 센서로 거리 측정하기

2021. 12. 26. 20:36
반응형

[아두이노기초-4] 초음파 센서로 거리 측정하기

반응형

 


◆ 이번 시간에는 초음파 센서를 이용하여 거리를 구하는 방법을 알아보자

◆ 실생활 사용 예 : 거리측정기, 자동차 전/후방센서

 

<초음파센서 원리>

- 초음파 발신부에서 초음파를 쏴서 물체에 반사되어 돌아오는 시간을 측정하면 거리=속도X시간으로 거리측정이 가능

- 초음파는 사방으로 퍼지는 특성 때문에 거리가 멀어지면 반사되어 되돌아 오는 초음파의 양도 급속히 적어지게 됨

- 굴곡진 지형이거나 중간에 물체가 있을 경우는 정면에 보이는 물체외의 직진 거리가 아니고 중간에서 반사되어 오는 거리를 측정하게 되어 부정확한 거리측정이 된다. (정밀한 거리 측정을 위해서는 레이저처럼 직진성 빛을 사용하는 거리측정 방식 필요)

- 왕복이므로 거리 = (시간 X 속도) ÷ 2를 해줘야 한다.

초음파센서

반응형

 

<회로도>

- VCC : (+)극 5V 전원 연결

- Trig : 입력단자. 2번핀(D2)에 연결

- Echo : 출력단자. 3번핀(D3)에 연결

- GND : (-)극 GND에 연결

반응형

 

<소스코드>

int trig = 2;
int echo = 3;
void setup() {
// put your setup code here, to run once:
Serial.begin(9600); // 시리얼포트 통신속도 9600 설정
pinMode(trig, OUTPUT); // trigger(발신부)를 출력모드로 설정
pinMode(echo, INPUT); // echo(수신부)를 입력모드로 설정
}
void loop() {
// put your main code here, to run repeatedly:
digitalWrite(trig, HIGH); // trig핀(2)에 1입력
delayMicroseconds(10); // 10us 대기
digitalWrite(trig, LOW); // trig핀(2)에 0입력
int distance = pulseIn(echo, HIGH)*340 / 2 / 10000;
// 거리=시간X속도/2(왕복이므로)
Serial.print(distance); // 거리 출력
Serial.println("cm"); // "cm" 출력
delay(100); // 100ms=0.1s 지연
}

◆ 코드 설명

 Serial.begin(9600) : 시리얼 통신의 통신속도는 300~115200으로 설정가능하지만, 보통 9600으로 설정함

 pinMode(trig, OUTPUT) : 보드에서 사용할 디지털핀의 모드(입력, 출력) 설정.

  2번 핀을 출력을 위한 모드로 설정 (trigger, 초음파 발신부)

 pinMode(echo, INPUT) : 보드에서 사용할 디지털핀의 모드(입력, 출력) 설정.

   3번 핀을 입력을 위한 모드로 설정 (echo, 초음파 수신부)

반응형

 

 digitalWrite(trig, HIGH) : trig(2) 핀에 HIGH(1, ON)값을 부여 (10ms간 초음파 발신 ON)

 delayMicroseconds(10) : 10ms 대기

 digitalWrite(trig, LOW) : trig(2) 핀에 LOW(0, OFF)값을 부여 (초음파 발신 OFF)

 pulseIn(echo, HIGH) : 설정신호(echo)인 수신부가 다시 입력받을때까지 걸리는 시간을 측정

    반환값 - 설정 신호가입력될때까지의 시간을 반환, 신호 없으면 0 반환

     [단위 : us(마이크로초)]

거리 = 시간 X 속도 ÷ 2
       = (pulseIn(echo,HIGH) X 340) ÷ 2
※ cm = 1[us] X [m/s] / 10000이므로 10000을 나눠줘야 한다.

 Serial.print(distance) : 변수 distance 값을 출력, 한 줄 띄어쓰기 하지 않음

 Serial.println("cm") : 문자열 cm 값을 출력,  한 줄 띄어쓰기 함

 delay(100) : 100ms = 0.1초 후 다음 loop를 실행

반응형

'IT > 아두이노' 카테고리의 다른 글

[아두이노] 키보드 라이브러리 사용하기  (0) 2022.01.08
[아두이노] 라이브러리 추가하기  (1) 2022.01.08
[아두이노기초-3] 적외선 센서로 움직임 감지하기  (0) 2021.12.26
[아두이노기초-2] 문자열 / 정수 출력, LED 제어하기  (0) 2021.12.26
[아두이노기초-1] 시작 전 필수로 알아야 할 사항  (0) 2021.12.25
  • [아두이노기초-4] 초음파 센서로 거리 측정하기

크몽 '경매하는 개발자' 님의 경매/부동산/IT/사업 채널

'IT/아두이노' 카테고리의 다른 글
  • [아두이노] 키보드 라이브러리 사용하기
  • [아두이노] 라이브러리 추가하기
  • [아두이노기초-3] 적외선 센서로 움직임 감지하기
  • [아두이노기초-2] 문자열 / 정수 출력, LED 제어하기
크몽 '경매하는 개발자' 님의 경매/부동산/IT/사업 채널
크몽 '경매하는 개발자' 님의 경매/부동산/IT/사업 채널
크몽 '경매하는 개발자' 님의 경매/부동산/IT/사업 채널입니다.

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.