pulse In

Get the duration, in microseconds, of a pulse (high or low) from one of the pins.

pins.pulseIn(DigitalPin.P0, PulseValue.High)

Some pins are also used by the LED screen. Please read the page about pins carefully.

Simulator

This function needs real hardware to work with. It’s not supported in the simulator.

Parameters

  • name the name of the pin (P0, P1, or P2, up through P20).
  • value the value of the pulse, either high or low.
  • maxDuration, maximum duration to wait for the pulse in microseconds. If no pulse is received, the duration returned is 0.

Returns

  • a number that is the pulse duration in microseconds.

Example: Measuring distance with a sonar

Send a pulse on P0 and read a pulse returned by a HC-SR04 sonar ultrasonic sensor. The sensor determines the distance of the object in front of it.

basic.forever(() => {
    // send pulse
    pins.digitalWritePin(DigitalPin.P0, 0)
    control.waitMicros(2)
    pins.digitalWritePin(DigitalPin.P0, 1)
    control.waitMicros(10)
    pins.digitalWritePin(DigitalPin.P0, 0)

    // read pulse
    led.plotBarGraph(pins.pulseIn(DigitalPin.P1, PulseValue.High) / 58, 0)
    basic.pause(100)
})

See also

digital write pin