반응형
250x250
Notice
Recent Posts
Recent Comments
Link
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
Archives
Today
Total
관리 메뉴

폴크(FOLC)

아두이노 - 초음파 센서 본문

자유 게시판 - 마이크로 컨트롤러

아두이노 - 초음파 센서

folcjin 2022. 3. 16. 00:48
728x90
반응형

# 측정 범위
   > 범위 거리: 2cm – 500cm ( 해상도: 0.3cm )
   > 전원 공급 장치: 5V DC
   > 대기 전류: <2mA
   > 유효 각도: <15°

# 측정 방식
   > Pulse 로 제어
      - 최초 LOW 상태에서 초기화 펄스를 HIGH 상태로 2us 이상 보내고 
      - LOW 상태로 10us 이상 보낸 후, HIGH 상태로 ECHO back 을 기다린다.
      - Duration 값을 획득하면 특별한 수식에 의해 Distance 를 계산한다.

# 연결 방법
   > 총 4개 핀이 있으며 2개는 전원부 ( VCC, GND ), 1개는 ECHO, 1개는 TRIG
   > VCC-5V, GND 그리고 SIGNAL-DIGITAL PWM 쪽에 8번 ECHO, 9번 TRIG와 접점

# 소스 코드
#define TRIG 9  // 초음파 송신 핀
#define ECHO 8 // 초음파 수신 핀

void setup() 
{
  Serial.begin(9600); 
   // 핀 모드 설정
  pinMode(TRIG, OUTPUT);
  pinMode(ECHO, INPUT);
}

void loop()
{
   // 시작 
   digitalWrite(TRIG, LOW);   
   // 초기 상태 설정
   delayMicroseconds(2);
   digitalWrite(TRIG, HIGH);
   // 대기 상태
   delayMicroseconds(10);
   digitalWrite(TRIG, LOW);
   
   // ECHO back  - 수신된 초음파의 시간

   duration = pulseIn (ECHO, HIGH); 

   // 거리 계산을 위해서 단위를 맞춘다.
   // 소리의 속도 m/s , pulse 의 분해능이 us, 왕복이므로 거리는 2배
   float unit_mm = 340.0 / 1000000.0 / 2.0;
   //float unit_cm = 3400.0 / 1000000.0 / 2.0;  

   distance_mm = duration * unit_mm / 1000;
   //distance_cm = duration * unit_cm / 100; 

   
   Serial.print("Distance (mm) : ");

   Serial.print(distance_mm);
   delay(1000);
}

728x90
반응형
사업자 정보 표시
사업자 등록번호 : -- | TEL : --

'자유 게시판 - 마이크로 컨트롤러' 카테고리의 다른 글

아두이노 - 모션 감지 센서  (0) 2022.03.16
아두이노 - 가스 센서  (0) 2022.03.16
아두이노 개발 환경 구성  (0) 2022.03.16
아두이노란?  (0) 2022.03.15
아두이노 - DHT11 센서  (0) 2022.03.15