반응형
pulseIn() 함수는 펄스 신호(HIGH 또는 LOW)를 읽어 그 길이를 마이크로초 단위로 반환해 주는 함수이다.
pulseIn(pin, value);
pulseIn(pin, vlaue, timeout);
지정한 핀으로부터 value 펄스(HIGH 또는 LOW)를 읽어들인다. value가 HIGH 이면, 핀의 신호가 HIGH에서 LOW로 바뀔 때까지의 시간을 마이크로초(us)로 반환하지만 지정한 timeout 시간 이전에 펄스가 감지되지 않으면 0을 반환하게 된다.
pulseIn() 함수는 마이크로초 단위이기 때문에 길이(cm)로 변환하기 위해서 아래와 같은 수식을 적용해 준다.
// 거리 = 속도 × 시간
거리 계산하기
(340m/s) × pulseIn()ms × (1/2)
= (340m/s) × (pulseIn() × 0.0001ms / 1s) × (1/2)
// 초음파 속도: 340m/s
// 1s = 0.0001ms
// 1/2: 초음파 센서가 발생되면 물체까지 가서 부딪힌 후 반사되어 되돌아 오기 때문에 왕복 시간이 측정되기 때문에 2로 나누어 준다.
반응형
'Arduino' 카테고리의 다른 글
[Arduino] 서보모터 실습: 일정한 거리 값(15cm 이내)이 측정되면, 서보모터 움직이기 (0) | 2021.07.01 |
---|---|
[Arduino] 초음파 센서 실습: 장애물까지의 거리 계산하여 출력하기 (0) | 2021.06.16 |
[Arduino] 초음파 센서 실습: pulseIn() 함수 사용하여 시간(㎲) 출력하기 (0) | 2021.05.27 |
[Arduino] 초음파 센서(Ultrasonic Sensor)란? (0) | 2021.05.23 |
[Arduino] 서보모터 실습: 시리얼 통신으로 서보모터 제어하기 (switch) (0) | 2021.05.19 |