Chinaunix首页 | 论坛 | 博客
  • 博客访问: 885372
  • 博文数量: 286
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 1841
  • 用 户 组: 普通用户
  • 注册时间: 2015-05-09 16:26
文章分类

全部博文(286)

文章存档

2016年(38)

2015年(248)

我的朋友

分类: Python/Ruby

2016-01-05 13:24:56

1、HC-SR04 管脚介绍

VCC,超声波模块电源脚,接5V电源即可
Trig,超声波发送脚,高电平时发送出40KHZ出超声波
Echo,超声波接收检测脚,当接收到返回的超声波时,输出高电平
GND,超声波模块GND
2、树莓派管脚介绍

第2只脚为5V,给超声波模块供电
第39只脚为GND,与超声波模块共地
第1、3只脚分别为GPIO2和GPIO3,分别作发送和接收用,分别于Trig和Echo相连接。
效果图如下:

编写python脚本
cd  /home/pi/test
nano hc_sr04
代码如下:

点击(此处)折叠或打开

  1. #! /usr/bin/python
  2. # -*- coding:utf-8 -*-

  3. import RPi.GPIO as GPIO
  4. import time

  5. def checkdist():

  6.         #发出触发信号
  7.         GPIO.output(2,GPIO.HIGH)
  8.         #保持10us以上(我选择15us)
  9.         time.sleep(0.000015)
  10.         GPIO.output(2,GPIO.LOW)
  11.         while not GPIO.input(3):
  12.                 pass
  13.         #发现高电平时开时计时
  14.         t1 = time.time()
  15.         while GPIO.input(3):
  16.                 pass
  17.         #高电平结束停止计时
  18.         t2 = time.time()
  19.         #返回距离,单位为米
  20.         return (t2-t1)*340/2
  21. GPIO.setmode(GPIO.BCM)
  22. #第3号针,GPIO2
  23. GPIO.setup(2,GPIO.OUT,initial=GPIO.LOW)
  24. #第5号针,GPIO3
  25. GPIO.setup(3,GPIO.IN)

  26. time.sleep(2)
  27. try:
  28.         while True:
  29.                 print 'Distance: %0.2f m' %checkdist()
  30.                 time.sleep(0.5)
  31. except KeyboardInterrupt:
  32.         GPIO.cleanup()

注意缩进,截图:


ctrl +o 保存
回车
ctrl +x 退出
3、运行
python  hc_sr04
执行效果如下:

ctrl+c退出

整体来说精度还是不错的,可以用于家中防盗检测

阅读(1857) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~