Simulator: This function needs real hardware to work with. It’s not supported in the simulator.
pulse In
Get the duration, in microseconds, of a pulse (high or low) from one of the pins.
pins.pulseIn(DigitalPin.P0, PulseValue.High)
Parameters
name
the name of the pin (P0
,P1
, orP2
, up throughP20
).value
the value of the pulse, eitherhigh
orlow
.maxDuration
, maximum duration to wait for the pulse in microseconds. If no pulse is received, the duration returned is0
.
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)
})