Search code examples
micropythonbbc-microbit

Problems with Micropython command time_pulse_us on Microbit


I would like to ask some help from you. I'm trying to connect a distance sensor to my microbit but when I use the command "time_pulse_us" it always gives -2 or -1. I read the documentation, I understand the meaning of those numbers but I think there's a problem with the command or probably I'm using it the wrong way.

In that regard, I wrote a simple snippet to test the command. Could you tell me what's wrong with it?

from microbit import * //to import microbit modules
from machine import *  //to import the time_pulse_us command


while True:
    pin1.write_digital(0)
    time = time_pulse_us(pin2, 1) //to begin the timing
    pin1.write_digital(1)         //this pin is connected to an LED    
    sleep(1000)
    value = pin2.read_digital()  //gives 1, as this pin is reading the voltage from the led
    pin1.write_digital(0)        //this will make the time_pulse command to end timing
    display.scroll(time)         //it should display the duration of the pulse. 
                                 //Displays -2 instead.
    display.scroll(value)        //gives 1, as expected

Circuit

Why is this not working?


Solution

  • time_pulse_us() runs sequentially, not in the background, so at the call it will wait 1 second for the pin to reach 1, which it will not do, hence time will be set to -2, before the program goes on to the next command write_digital(1).