Hello - I have written the code below which works well with my hardware. I want to use the 'distance' variable that I have set in 'def Ultra', outside of the 'def Ultra' routine. Right now, the code indicates when my robot is too near to an object - I want to use this indication to expand my program, putting my motors into slow and super slow speeds.
Any help will be greatly appreciated
Any help will be greatly appreciated
![Cool Cool](https://python-forum.io/images/smilies/cool.png)
from machine import Pin import utime # Set up Ultrasonic Trigger and Echo trigger = Pin(3, Pin.OUT) echo = Pin(2, Pin.IN) # Set up the LED pins red = Pin(20, Pin.OUT) amber = Pin(19, Pin.OUT) green = Pin(18, Pin.OUT) def ultra(): trigger.low() utime.sleep_us(2) trigger.high() utime.sleep_us(5) trigger.low() while echo.value() == 0: signaloff = utime.ticks_us() while echo.value() == 1: signalon = utime.ticks_us() timepassed = signalon - signaloff distance = (timepassed * 0.0343) / 2 if distance <= 10: # If reading is less than or equal to 20 red.value(1) # Red ON amber.value(0) green.value(0) elif 10 < distance < 20: # If reading is between 20 and 40 red.value(0) amber.value(1) # Amber ON green.value(0) elif distance >= 20: # If reading is greater than or equal to 40 red.value(0) amber.value(0) green.value(1) # Green ON print("The distance from object is ",distance,"cm") while True: ultra() utime.sleep(1)
buran write Nov-22-2023, 08:47 AM:
Please, use proper tags when post code, traceback, output, etc. This time I have added tags for you.
See BBcode help for more info.
Please, use proper tags when post code, traceback, output, etc. This time I have added tags for you.
See BBcode help for more info.