【发布时间】:2017-01-29 16:33:51
【问题描述】:
我正在尝试从超声波距离传感器读取串行数据。我得到的唯一输出是一个像这样的白色方块:
我有一个 raspberry pi 2 和一个来自 ebay 的 ME007-ULS v1 超声波传感器,我从手册中得到这个:
当触发引脚“2.Trigger”处于下降沿且低电平时 电平保持在0.1到10ms,这将触发控制器工作 一次,然后输出引脚“3.TX/PWM”将输出一帧3.3V TTL电平串口数据
传感器的输出帧格式为:
这是我写的代码:
import RPi.GPIO as GPIO
import time
from serial import Serial
#GPIO mode
GPIO.setmode(GPIO.BCM)
#assign GPIO pins
GPIO_TRIGGER = 18
#direction of GPIO-Pins (IN / OUT)
GPIO.setup(GPIO_TRIGGER, GPIO.OUT)
def uss_funct():
ser = Serial('/dev/ttyAMA0', baudrate=9600, bytesize=8, parity='N', stopbits=1, timeout=3)
# set trigger HIGH, sensor is waiting for falling edge
GPIO.output(GPIO_TRIGGER, True)
# set trigger LOW after 10ms -> Falling Edge
time.sleep(0.01000)
GPIO.output(GPIO_TRIGGER, False)
# set trigger back HIGH after 2ms, as LOW is supposed to be between 0.1-10ms
time.sleep(0.00200)
GPIO.output(GPIO_TRIGGER, True)
#read from rx
test_output = ser.read()
ser.close()
#clean up GPIO pins
GPIO.cleanup()
print (test_output)
if __name__ == '__main__':
uss_funct()
我认为我的接线正确,但以防万一 - 这就是我为传感器接线的方式:
超声波传感器有5个引脚:
- 3.3-12V输入(接3.3v输出)
- 触发器(连接到 GPIO 18)
- TX 输出(连接到 GPIO 10)
- 数字输出(未连接)
- GND(连接到 GND)
【问题讨论】:
标签: python serial-port raspberry-pi