본문 바로가기

Arduino

[Arduino] pulseIn()

반응형

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로 나누어 준다.
반응형