查看: 7328|回复: 0

树莓派利用HC-SR04超声波测距

[复制链接]
  • TA的每日心情
    奋斗
    2016-2-2 10:49
  • 签到天数: 1 天

    [LV.1]初来乍到

    发表于 2016-6-28 17:55 | 显示全部楼层 |阅读模式
    本帖最后由 xiansen_shun 于 2016-6-28 17:57 编辑

    超声波模块可以用HC-SR04
    hc-sr04.png
    共四个接口
    VCC(电源正)、trig(发送端)、echo(接收端)、GND(电源负)
    原理比较简单
    (1)采用IO口对TRIG触发测距,给至少10us的高电平信号;  
    (2)模块自动发送8个40khz的方波,自动检测是否有信号返回;  
    (3)有信号返回,通过IO口ECHO输出一个高电平,高电平持续的时间就是超声波从发射到返回的时间。
    距离=(高电平时间*声速(340M/S))/2
    123.png

    第2只脚为5V,给超声波模块供电
    第39只脚为GND,与超声波模块共地
    第3 5只脚分别为GPIO2和GPIO3,分别作发送和接收用,分别于Trig和Echo相连接。
    Trig — pin3 (GPIO2)
    Echo — pin5(GPIO3)
    效果图如下:
    32.JPG
    现在写入代码
    登录系统就不必说了
    $mkdir test_SR04
    $cd tes_SR04
    $vim sr04
    现在将代码复制进去

    kittenblock中小学创客名师推荐的图形化编程软件

    
    
        #! /usr/bin/python
        # -*- coding:utf-8 -*-
    
        import RPi.GPIO as GPIO
        import time
    
        def checkdist():
    
                #发出触发信号
                GPIO.output(2,GPIO.HIGH)
                #保持10us以上(我选择15us)
                time.sleep(0.000015)
                GPIO.output(2,GPIO.LOW)
                while not GPIO.input(3):
                        pass
                #发现高电平时开时计时
                t1 = time.time()
                while GPIO.input(3):
                        pass
                #高电平结束停止计时
                t2 = time.time()
                #返回距离,单位为米
                return (t2-t1)*340/2
        GPIO.setmode(GPIO.BCM)
        #第3号针,GPIO2
        GPIO.setup(2,GPIO.OUT,initial=GPIO.LOW)
        #第5号针,GPIO3
        GPIO.setup(3,GPIO.IN)
    
        time.sleep(2)
        try:
                while True:
                        print 'Distance: %0.2f m' %checkdist()
                        time.sleep(0.5)
        except KeyboardInterrupt:
                GPIO.cleanup()
    
    

    代码要注意格式

    保存退出(这个不必讲,不知道百度 “vim 保存退出”即可)

    现在运行代码

    $sudo python sr04
    1.JPG

    您需要登录后才可以回帖 登录 | 立即注册  

    本版积分规则

    热门推荐

    【Arduino】108种传感器模块系列实验(104)---MAX30102手腕心率
    【Arduino】108种传感器模
    37款传感器与模块的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是
    萌新报道 刚购买了一个watchx
    萌新报道 刚购买了一个wat
    就这货 但是网上让下载库 我点加载以后他提示没法用。。 求大神帮忙 谢谢了
    【Arduino】108种传感器系列实验(15)---手指侦测心跳传感...
    【Arduino】108种传感器系
    37款传感器与模块的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是
    【原创】全球最小口袋3D打印机mini one直播教程贴
    【原创】全球最小口袋3D打
    最近闲得蛋疼,没事搞个掌上3D打印机,先放效果图吧。 搞了半天,终于能正常打印,
    求助!GM65二维码扫描模块怎么用?
    求助!GM65二维码扫描模块
    求助!GM65二维码扫描模块怎么用? 卖家给的资料真的看不懂该怎么弄。。( ̄▽ ̄)~*
    Copyright   ©2015-2016  Arduino中文社区  Powered by©Discuz!   ( 蜀ICP备14017632号-3 )
    快速回复 返回顶部 返回列表