pulseIn()

Описание

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

Эмпирическим путем установлено, что при использовании функции для измерения широких импульсов возможно возникновение ошибок. Функция работает с импульсами длительностью от 10 микросекунд до 3 минут.


Синтаксис

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


Параметры

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


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

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


Пример

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

Расскажи о нас

Сообщение

Если у Вас есть опыт в работе с Arduino и собственно есть время для творчества, мы приглашаем всех желающих стать авторами статей публикуемых на нашем портале. Это могут быть как уроки, так и рассказы о ваших экспериментах с Arduino. Описание различных датчиков и модулей. Советы и наставления начинающим. Пишите и размещайте свои статьи в соответсвующей ветке форума.