Quantcast
Channel: Raspberry Pi Forums
Viewing all articles
Browse latest Browse all 1269

Python • HC-SR04 ultrasonic sensor

$
0
0
Hello, I am a total newbie to rpi and python and I would like to use HC-SR04 ultrasonic sensor in my project. I understand how the sensor works, but cannot make it work properly. I want to have function called ping() that will be called from other function what is called in main.py and ping() should return new meassured distance every run. If I run my function separatly in while loop, it works, but otherwise not. My code:

Code:

 import RPi.GPIO as GPIOimport timelast_distance = 0def do_something():    distance = ping()    print(distance)    return_this = [(1,2),(2,1)]    return return_thisdef ping():    global last_distance    GPIO.setmode(GPIO.BOARD)    TRIG_PIN = 7    ECHO_PIN = 11    GPIO.setup(TRIG_PIN, GPIO.OUT)    GPIO.setup(ECHO_PIN, GPIO.IN)    pulse_start_time = 0    pulse_end_time = 0    try:        GPIO.output(TRIG_PIN, GPIO.LOW)        time.sleep(2E-6)        GPIO.output(TRIG_PIN, GPIO.HIGH)        time.sleep(10E-6)        GPIO.output(TRIG_PIN, GPIO.LOW)        while GPIO.input(ECHO_PIN) == 0:            pass        pulse_start_time = time.time()        while GPIO.input(ECHO_PIN) == 1:            pass        pulse_end_time = time.time()        pulse_duration = pulse_end_time - pulse_start_time        distance = round(pulse_duration * 17150, 2)        if distance > 300 or distance <= 0:            distance = last_distance        else:            last_distance = distance                return distance            except Exception as e:        print(f"Error in ping function: {e}")        

Statistics: Posted by mart1nek — Thu Dec 21, 2023 5:48 pm



Viewing all articles
Browse latest Browse all 1269

Trending Articles