I have updated the code to look like this:
import RPi.GPIO as GPIO
import time
#GPIO Mode (BOARD / BCM)
GPIO.setmode(GPIO.BCM)
#set GPIO Pins
GPIO_TRIGGER = 5
GPIO_ECHO = 6
#set GPIO direction (IN / OUT)
GPIO.setup(GPIO_TRIGGER, GPIO.OUT)
GPIO.setup(GPIO_ECHO, GPIO.IN)
def distance():
# set Trigger to HIGH
GPIO.output(GPIO_TRIGGER, True)
# set Trigger after 0.01ms to LOW
time.sleep(0.00001)
GPIO.output(GPIO_TRIGGER, False)
StartTime = time.time()
StopTime = time.time()
# save StartTime
while GPIO.input(GPIO_ECHO) == 0:
StartTime = time.time()
# save time of arrival
while GPIO.input(GPIO_ECHO) == 1:
StopTime = time.time()
# time difference between start and arrival
TimeElapsed = StopTime - StartTime
# multiply with the sonic speed (34300 cm/s)
# and divide by 2, because there and back
distance = (TimeElapsed * 34300) / 2
return distance
if __name__ == '__main__':
try:
while True:
dist = distance()
print ("Measured Distance = %.1f cm" % dist)
time.sleep(1)
# Reset by pressing CTRL + C
except KeyboardInterrupt:
print("Measurement stopped by User")
GPIO.cleanup()
I have tried:
sudoing as root
running as root
reinstalling rpi.gpio
the GPIO interface is enabled in the configuration settings.
I always get the same error: RuntimeError: Cannot determine SOC peripheral base address
Note that I also tried:
sudo rpi-update
sudo reboot
sudo apt-get update
sudo apt-get upgrade
sudo adduser pi gpio
pip and setuptools are up-to-date
pip install --upgrade pip setuptools
Installing from Source: Instead of using pip to install RPi.GPIO,I try installing it directly from the source code. Clone the GitHub repository and install it manually:
git clone https://github.com/RPi-Distro/python-gpiozero.git
cd python-gpiozero
sudo python setup.py install
And I still get the same error!
Lachheb Nesrine is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.