pulseIn()

Считывает длину сигнала на заданном порту (HIGH или LOW). Например, если задано считывание HIGH функцией pulseIn(), функция ожидает пока на заданном порту не появится HIGH. Когда HIGH получен, включается таймер, который будет остановлен когда на порту будет LOW. Функция pulseIn() возвращает длину сигнала в микросекундах. Функция возвращает 0, если в течение заданного времени (таймаута) не был зафиксирован сигнал на порту.

Возможны некоторые погрешности в измерение длинных сигналов. Функция может измерять сигналы длиной от 10 микросекунд до 3 минут.

Синтаксис

pulseIn(pin, value);
pulseIn(pin, value, timeout);

Параметры

pin: номер порта вход/выхода, на котором будет ожидаться сигнал. (int)
value: тип ожидаемого сигнала - HIGH или LOW.
timeout (опционально): время ожидания сигнала (таймаут) в микросекундах; по умолчанию - одна секунда. (unsigned long)

Возвращаемое значение

Длина сигнала в микросекундах или 0, если сигнал не получен до истечения таймаута. (unsigned long)

Пример

int pin = 7; 
unsigned long duration;

void setup() {
	pinMode(pin, INPUT);
}

void loop() {
	duration = pulseIn(pin, HIGH);
}