pulse Duration

Get the length of time for last pulse at any of the digital pins.

pins.pulseDuration()

If you have code in an ||pins:on pulsed|| event and you want to know how long the pulse lasted on that pin, use ||pins:pulse duration||.

The ||pins:pulse duration|| block remembers how many microseconds the last pulse was. This is only for the most recent pulse period that happened at any of the pins. So, you use it in an ||pins:on pulsed|| event block so that you know which pin the pulse was on.

Returns

  • a number that is length of time (duration) of the last pulse, in microseconds.

Example

Count every pulse on pin D4 that is longer than 2 milliseconds in duration. Write the total number of pulses to the serial port every time the count adds another thousand pulses.

let pulses = 0
pins.D4.setPull(PinPullMode.PullUp)

pins.D4.onPulsed(PulseValue.Low, () => {
    if (pins.pulseDuration() > 2000) {
        pulses++
    }
    if (pulses % 1000 == 0) {
        serial.writeValue("pulse count", pulses)
    }
})

See also

digital read, set pull, on pulsed