距离传感器(HC-SR04)记录不一致的值

时间:2018-03-09 03:05:02

标签: python python-3.x raspberry-pi raspberry-pi3

我正在尝试创建一个距离测量设备来测量家中软水器的盐含量。我是一名贸易软件工程师,但我很擅长学习硬件的电子方面。

似乎一切都应该有效,我已经阅读了很多关于如何用HC-SR04测量距离的指南,但似乎我得到的每个记录都是不同的,这是奇怪的,因为距离传感器坐着面朝下在一张木桌上。是不是每次都读取0或真的接近它?

下面你会看到python结果的截图。请注意,结果表明它返回了一个很大的数字,这些数字非常大。通常为3,000至120,000。 GPIO引脚本身是否可能发生某些事情?

enter image description here

我可能会提到我的HC-SR04直接连接到GPIO。我的地是接地,VCC是5v,Echo上有1k电阻,在BCM22上,我的触发器在BCM17上。

这是桌面上HC-SR04的图片。

enter image description here

这是我的python文件所包含的内容。

import RPi.GPIO as GPIO
import os, signal
from time import time, sleep

while True:
        GPIO.setwarnings(False)

        GPIO.setmode(GPIO.BCM)

        GPIO.setup(17,GPIO.OUT)
        GPIO.setup(22,GPIO.IN)
        GPIO.output(17, GPIO.LOW)

        sleep(0.1)

        GPIO.output(17, GPIO.HIGH)

        sleep(0.00001)

        GPIO.output(17, GPIO.LOW)

        while GPIO.input(22) == GPIO.LOW:
                pulse_start = time()

        while GPIO.input(22) == GPIO.HIGH:
                pulse_end = time()

        pulse_duration = pulse_end - pulse_start

        distance = pulse_duration * 17160.5
        distance = round(distance, 2)

        if (distance > 4):
                print("Distance recorded a really large number, something isn't right. Restarting...")
                GPIO.cleanup()
                sleep(0)
        else:
                print(distance)
                GPIO.cleanup()
                sleep(60)

对此的任何和所有帮助将不胜感激。如果我做错了什么,我会是第一个承认的,但请提供有用的反馈。由于空间有限,我宁愿不使用面包板。

0 个答案:

没有答案