pulseIn() / Arduino

Добавлено 31 октября 2018 в 21:29

Описание

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

Время этой функции были определены эмпирически и, вероятно, будут показывать ошибки в более длинных импульсах. Работает с импульсами длиной от 10 микросекунд до 3 минут.

Синтаксис

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

Параметры

pin: номер вывода, на котором вы хотите прочитать импульс (int).

value: тип импульса для чтения: HIGH или LOW (int).

timeout (необязательно): количество микросекунд для ожидания начала импульса; по умолчанию равен одной секунде (unsigned long).

Возвращает

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

Пример кода

Данный пример рассчитывает время продолжительности импульса на выводе 7.

int pin = 7;
unsigned long duration;

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

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

 

Теги

ArduinoGPIOПрограммированиеЦифровой вход

На сайте работает сервис комментирования DISQUS, который позволяет вам оставлять комментарии на множестве сайтов, имея лишь один аккаунт на Disqus.com.

В случае комментирования в качестве гостя (без регистрации на disqus.com) для публикации комментария требуется время на премодерацию.