pulseInLong()
설명
핀에서 펄스(HIGH 또는 LOW)를 읽습니다. 예를 들어, value 가 HIGH 이면, pulseIn() 은 핀이 HIGH 가 될 때까지 기다리고, 타이머를 시작하고, 핀이 LOW 가 될 때까지 기다리고 타이머를 멈춥니다. 펄스의 길이를 마이크로초 단위로 반환합니다. 정해진 timeout 안에 펄스가 시작되지 않으면 0을 반환합니다. 이 함수의 타이머는 경험적으로 결정되고, 긴 펄스에 대해 오류를 낼 수도 있습니다. 10 마이크로초부터 3분까지의 길이의 펄스에 대해 동작합니다.
함수가 호출됐을 때 핀이 이미 HIGH이면, 핀이 LOW가 됐다가 HIGH가 될 때까지 기다렸다가 카운팅을 시작하는 것에 주의하세요. 이 루틴은 인터럽트가 활성화됐을 때만 쓸 수 있습니다. 또한 긴 간격으로 가장 높은 해상도가 얻어집니다.
문법
pulseInLong(pin, value)
pulseInLong(pin, value, timeout)
매개변수
- pin: 펄스를 읽을 핀 번호. (int)
- timeout (옵션): 펄스 시작을 기다릴 시간 (마이크로초 단위). 기본값은 1초 (unsigned long)
반환값
- 펄스의 길이 (마이크로초 단위) 또는 0 (timeout이 지날 때까지 펄스가 시작하지 않으면) (unsigned long)
예제 코드
이 예제는 7번 핀에 들어오는 펄스의 지속시간을 계산합니다.
※ 주의 및 경고:
이 함수는 micros()에 의존하므로 noInterrupts() 컨텍스트 안에서는 쓸 수 없습니다.
더보기
- 언어 : noTone()
- 언어 : pulseIn()
- 언어 : shiftIn()
- 언어 : shiftOut()
- 언어 : tone()
- 튜토리얼 : Arduino - Ultrasonic Sensor
※ ARDUINO BUY RECOMMENDATION
Arduino UNO R3 | |
Arduino Starter Kit |
Additionally, some links direct to products from our own brand, DIYables.