핀에서 펄스(HIGH 또는 LOW)를 읽습니다. 예를 들어, valueHIGH 이면, pulseIn() 은 핀이 HIGH 가 될 때까지 기다리고, 타이머를 시작하고, 핀이 LOW` 가 될 때까지 기다리고 타이머를 멈춥니다. 펄스의 길이를 마이크로초 단위로 반환합니다. 정해진 timeout 안에 펄스가 시작되지 않으면 0을 반환합니다. 이 함수의 타이머는 경험적으로 결정되고, 긴 펄스에 대해 오류를 낼 수도 있습니다. 10 마이크로초부터 3분까지의 길이의 펄스에 대해 동작합니다.


pulseIn(pin, value)

pulseIn(pin, value, timeout)


  • pin: 펄스를 읽을 핀 번호. (int)
  • value: 읽을 펄스의 유형: HIGH 또는 LOW. (int)
  • timeout (옵션): 펄스 시작을 기다릴 시간 (마이크로초 단위). 기본값은 1초 (unsigned long)


  • 펄스의 길이 (마이크로초 단위) 또는 0 (timeout이 지날 때까지 펄스가 시작하지 않으면) (unsigned long)

예제 코드

이 예제는 7번 핀에 들어오는 펄스의 지속시간을 계산합니다.

int pin = 7; unsigned long duration; void setup() { pinMode(pin, INPUT); } void loop() { duration = pulseIn(pin, HIGH); }

Another example, the pulseIn() is used to capture the echo pulse from Ultrasonic Sensor. See Arduino - Ultrasonic Sensor for more detail.



Arduino UNO R3
Arduino Starter Kit
Please note: These are affiliate links. If you buy the components through these links, We may get a commission at no extra cost to you. We appreciate it.


  • We are AVAILABLE for HIRE. See how to hire us to build your project
  • Any suggestion, correction, and translation? please email us at ArduinoGetStarted@gmail.com, We appreciate it
  • We mainly keep improving the references in English. See English version of this page for the latest update.