def measureDistance(): trigPin = 22 # указываем номер контакта Raspberry Pi, к которому подключен Trig контакт датчика HC-SR04 echoPin = 27 # указываем номер контакта Raspberry Pi, к которому подключен Echo контакт датчика HC-SR04 v = ( 331.5 + 0.6 * 20 ) # скорость звука при температуре 20 градусов Цельсия(вы можете указать свое значение вместо 20) в м/с gpio.mode(trigPin, "out") # устанавливаем контакт как выход gpio.mode(echoPin, "in") # устанавливаем контакт как вход gpio.interruptMode( echoPin, "both" ) # режим прерывания, чтобы функция pulseInHigh вычислила длительность перехода сигнала с 0 до 1 и от 1 до 0 gpio.write(trigPin, gpio.LOW) # устанавливаем низкий уровень сигнала time.sleep(0.5) # задержка в пол секунда gpio.write(trigPin, gpio.HIGH) # устанавливаем высокий уровень сигнала time.sleep(1 / 1000000.0) # задержка в 1 мкс gpio.write(trigPin, gpio.LOW) # устанавливаем низкий уровень сигнала t = gpio.pulseInHigh(echoPin) # вычисляем длительность сигнала d = t * v * 50 # вычисляем пройденное расстояние return d # возвращаем значение
def readDistanceCm(): sigPin = 22 v = (331.5 + 0.6 * 20) gpio.interruptMode(sigPin, "both") # <3> gpio.mode(sigPin, "out") # <4> gpio.write(sigPin, gpio.LOW) # <5> time.sleep(0.5) # s gpio.write(sigPin, gpio.HIGH) # <6> time.sleep(1 / 1000.0 / 1000.0) # <7> gpio.mode(sigPin, "in") # <8> #Read high pulse width t = gpio.pulseInHigh(sigPin) # s # <9> d = t * v d = d / 2 # <10> return d * 100 # cm
def readDistanceCm(): sigPin=22 v=(331.5+0.6*20) gpio.interruptMode(sigPin, "both") # <3> gpio.mode(sigPin, "out") # <4> gpio.write(sigPin, gpio.LOW) # <5> time.sleep(0.5) # s gpio.write(sigPin, gpio.HIGH) # <6> time.sleep(1/1000.0/1000.0) # <7> gpio.mode(sigPin, "in") # <8> #Read high pulse width t = gpio.pulseInHigh(sigPin) # s # <9> d = t*v d = d/2 # <10> return d*100 # cm
def readDistanceCm(): # <3> triggerPin = 22 # <4> echoPin = 27 # <5> v = (331.5 + 0.6 * 20) # m/s # <6> gpio.mode(triggerPin, "out") # <7> gpio.mode(echoPin, "in") # <8> gpio.interruptMode(echoPin, "both") # <9> gpio.write(triggerPin, 0) # <10> time.sleep(0.5) # <11> gpio.write(triggerPin, 1) # <12> time.sleep(1 / 1000.0 / 1000.0) # <13> gpio.write(triggerPin, 0) # <14> t = gpio.pulseInHigh(echoPin) # s # <15> d = t * v # <16> d = d / 2 # <17> return d * 100 # cm # <18>
def readDistanceCm(): triggerPin = 22 # <1> echoPin = 27 v=(331.5+0.6*20) # m/s gpio.mode(triggerPin, "out") gpio.mode(echoPin, "in") gpio.interruptMode(echoPin, "both") gpio.write(triggerPin, gpio.LOW) time.sleep(0.5) gpio.write(triggerPin, gpio.HIGH) time.sleep(1/1000.0/1000.0) gpio.write(triggerPin, gpio.LOW) t = gpio.pulseInHigh(echoPin) # s d = t*v d = d/2 return d*100 # cm
def readDistanceCm(): triggerPin = 22 # <1> echoPin = 27 v = (331.5 + 0.6 * 19) # m/s gpio.mode(triggerPin, "out") gpio.mode(echoPin, "in") gpio.interruptMode(echoPin, "both") gpio.write(triggerPin, gpio.LOW) time.sleep(0.5) gpio.write(triggerPin, gpio.HIGH) time.sleep(1 / 1000.0 / 1000.0) gpio.write(triggerPin, gpio.LOW) t = gpio.pulseInHigh(echoPin) # s d = t * v d = d / 2 return d * 100 # cm
def readAxel(pin): gpio.mode(pin, "in") gpio.interruptMode(pin, "both") return gpio.pulseInHigh(pin) # <1>