Описание
Функция считывает длительность импульса (любого - HIGH или LOW) на контакте. Например, если заданное значение (value) - HIGH, то функция pulseIn() ожидает появления на контакте сигнала HIGH, затем засекает время и ожидает переключения вывода в состояние LOW, после чего останавливает отсчет времени. Функция возвращает длительность импульса в микросекундах, либо 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);
}
Справочник
Материалы взяты с официального сайта проекта Arduino и представлены по лицензии Creative Commons Attribution-ShareAlike 3.0 License.
Источник: http://arduino.cc/en/Reference/PulseIn |