树莓派3B+超声波传感器 HY-SRF05

本文是一位新手使用树莓派3B+连接HY-SRF05超声波传感器的实践记录。通过简单接线和编写Python代码实现距离测量,虽然遇到了AttributeError问题,但成功显示了测量距离。
摘要由CSDN通过智能技术生成

小白新手记录一下,多包涵
1、接线
由于没有面包板,比较粗糙
连线
2–VCC
16–TRIG
18–一端连1K电阻、ECHO,一端连2K电阻、GND
6–GND

2、代码
打开命令行,输入nano distance.py
代码如下:

import RPi.GPIO as GPIO
import time
GPIO.setmode(GPIO.BCM)
GPIO.setwarnings(False)
print "Measuing Distance"
print "Press ctrl +c to stop me"
GPIO.setup(23,GPIO.OUT)
GPIO.setup(24,GPIO.IN)
time.sleep(0.02)
GPIO.output(23,False)
print "Setting Trigger pin to zero by default"
time.sleep(1)
while True:
        GPIO.output(23,True)
        time.sleep(0.00001)
        GPIO.output(23,False)
        while GPIO.input(24)==0:
                start_time=time.time()
        while GPIO.input(24)==1:
                end_time=time.time()
        time=end_time-start_time
  
  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
连接超声波模块hy-srf05与AT89C52单片机需要使用到定时器/计数器模块,可以参考以下步骤进行编程: 1. 定义引脚连接 超声波模块hy-srf05的VCC连接单片机的5V电源,GND连接单片机的GND,Trig连接P1.0,Echo连接P1.1。 2. 定义计数器 使用定时器/计数器模块计算超声波模块发射到接收的时间差,从而计算距离。在AT89C52单片机中,使用Timer0作为计数器。 3. 发送触发信号 当需要测量距离时,向超声波模块发送一个10us的高电平触发信号,即将P1.0设置为高电平,延时10us后再将P1.0设置为低电平。 4. 接收回波信号 当超声波模块接收到触发信号后,开始发送超声波信号,在发送完信号后将Echo引脚拉高,直到收到超声波的回波信号后,将Echo引脚拉低,并记录下计数器的值。 5. 计算距离 根据计数器的值,可以计算出距离,公式为:距离 = (计数器的值 * 12.5) / 1000。 6. 编写程序 以下是AT89C52单片机连接超声波模块hy-srf05的示例程序: ```c #include <REG52.H> sbit Trig = P1^0; sbit Echo = P1^1; unsigned int count; void Timer0Init() { TMOD |= 0x01; //设置定时器0为模式1 TH0 = 0; //设置定时器初值 TL0 = 0; ET0 = 1; //使能定时器0中断 TR0 = 1; //启动定时器0 } void main() { EA = 1; //开启全局中断 Timer0Init(); //初始化定时器0 while (1) { Trig = 1; //发送触发信号 _nop_(); _nop_(); _nop_(); _nop_(); Trig = 0; while (!Echo); //等待Echo引脚为高电平 TH0 = 0; //清零计数器 TL0 = 0; while (Echo); //等待Echo引脚为低电平 count = TH0 * 256 + TL0; //计算计数器的值 printf("Distance: %d cm\n", count * 12.5 / 1000); //计算距离并输出 } } void Timer0() interrupt 1 { TH0 = 0; //重新设置计时器初值 TL0 = 0; } ``` 注意:以上程序仅供参考,具体实现需要根据实际情况进行调整。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值