ESP32

# 导入相关模块
# 子文件夹下的调用方式
from HCSR04 import HCSR04                            
from pyb import Pin,delay
from machine import Pin,I2C
from ssd1306 import SSD1306_I2C
# 初始化 OLED
i2c = I2C(sda=Pin("Y8"), scl=Pin("Y6"))
oled = SSD1306_I2C(128, 64, i2c, addr=0x3c) 
# 初始化接口 trig='Y9',echo='Y10'
trig = Pin('Y9',Pin.OUT_PP)
echo = Pin('Y10',Pin.IN)
HC=HCSR04(trig,echo)
while True:
    oled.fill(0)                                         # 清屏,背景黑色
    oled.text('Distance test:', 0, 15)
    Distance = HC.getDistance()           # 测量距离
    # OLED 显示距离
    oled.text(str(Distance) + ' CM', 0, 35)
    oled.show()
    # 串口打印
    print(str(Distance)+' CM')
    delay(1000)                                       # 每秒采集1次
from time import sleep_us,ticks_us,sleep
class HCSR04():
    def __init__(self,trig,echo):
        self.trig   = trig
        self.echo= echo
    
    def getDistance(self):
        distance=0
        self.trig.value(1) 
        sleep_us(10)
        self.trig.value(0)
        while self.echo.value() == 0:
            pass
if self.echo.value() == 1:
    ts=ticks_us()                   # 开始时间
    while self.echo.value() == 1:   # 等待脉冲高电平结束
                pass
    te=ticks_us()                   # 结束时间
    tc=te-ts                            # 回响时间
    distance=(tc*170)/10000  #距离计算 (单位为:cm)
return distance
        




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值