首页 > 编程语言 >ESP32简单实现新版HC-SR04超声波模块(MicroPython+Thonny)

ESP32简单实现新版HC-SR04超声波模块(MicroPython+Thonny)

时间:2023-12-01 18:13:14浏览次数:49  
标签:MicroPython SR04 ESP32 ticks echo HC 超声波 测距

一、新版HC-SR04简介
新版HC-SR04,性能远超老版HC-SR04,US-015;在测距精度高于老版HC-SR04和US-015的情况下,测距范围更
远,可达6米,远超一般超声波测距模块。采用CS-100A超声波测距SOC芯片,高性能,工业级,宽电压、低价格,成本击穿底价,只有普通超声波测距模块一半的价格,而性能远超普通超声波测距模块。性能与US-025A相同,均采用CS100A芯片,接口完全兼容。

 

二、电路连接

ESP32HC-SR04
3V3 VCC
GPIO19 Trig
GPIO18 Echo
GND GND

三、MicroPython代码

 1 from machine import Pin
 2 import time
 3 # echo脚会由0变为1,MCU开始计时,当超声波模块接收到返回的声波时,echo由1变为0,MCU停止计时,
 4 #定义IO口模式,以及初始状态
 5 trig = Pin(19, Pin.OUT)
 6 echo = Pin(18,  Pin.IN)
 7 trig.value(0)
 8 echo.value(0)
 9 cars = 0
10 #构建函数
11 def measure():
12   #触发超声波模块测距
13   trig.value(1)
14   time.sleep_us(10)
15   trig.value(0)
16   #检测回响信号,为低时,测距完成
17   while(echo.value() == 0):
18     pass
19   #开始不断递增的微秒计数器 1 
20     t1 = time.ticks_us()
21   #检测回响信号,为高时,测距开始
22   while(echo.value() == 1):
23     pass
24   #开始不断递增的微秒计数器 2 
25     t2 = time.ticks_us()
26   #计算两次调用 ticks_ms(), ticks_us(), 或 ticks_cpu()之间的时间,这里是ticks_us()
27   # 这时间差就是测距总时间,在乘声音的传播速度340米/秒,除2就是距离。
28   t3 = time.ticks_diff(t2,t1)/10000
29   #返回一个值给调用方,不带表达式的return相当于返回 None。
30   #这里返回的是:开始测距的时间减测距完成的时间*声音的速度/2(来回)
31   return t3*340/2
32  
33 result = measure()
34  #try/except语句用来检测try语句块中的错误,从而让except语句捕获异常信息并处理  
35 try:
36     if int(result) < 10:
37         cars += 1
38     if cars == 1:
39         print("已停车")
40     if cars == 0:
41         print("未停车")
42     print("测量距离为:%0.2f cm" %float(result))
43  
44 except KeyboardInterrupt:
45     pass 

 

 

标签:MicroPython,SR04,ESP32,ticks,echo,HC,超声波,测距
From: https://www.cnblogs.com/soliang/p/17870653.html

相关文章

  • 【STM32F103】HC-SR04超声波测距模块详解(附工程文件)
    前言:使用的硬件:STM32F103C8T6,HC-SR04,ST-Link(其他烧录器也可以),0.96寸OLED屏幕(非必须,仅供显示测距结果,可以使用串口助手代替),若干杜邦线。涉及操作stm32的GPIO口,外部中断,定时器,本文中不会详细解释,仅提供代码思路。HC-SR04:HC-SR04超声波测距模块提供2cm~400cm的测距功能,精度达3mm。......
  • 了解 ESP32 FreeRTOS:初学者指南
    原文:https://www.cnblogs.com/intomcu/p/17297020.html了解ESP32FreeRTOS:初学者指南ESP32FreeRTOS是什么?如何使用FreeRTOS?哪些常用的函数?xTaskCreate()vTaskDelete()vTaskDelay()xTicksToDelay()xSemaphoreCreateBinary()xSemaphoreGive()xSemaphore:要释放的信......
  • 学习ESP32——使用SquareLine_Studio自定义一个UI界面学习ESP32——使用SquareLine_St
    原文:https://blog.csdn.net/Jeremyrev/article/details/131854181打开SquareLine_Studio软件,先生成一个项目,这里我选择乐鑫官方的板子 选择File→ProjectSettings选择导出的地址,点击APPLYCHANGES 完成后,先下载字体和图标进入阿里矢量图标官网   注册登录之后点......
  • GUI-Guider 生成打印机模板并在 ESP32-S3 上面运行
    原文:https://www.jianshu.com/p/51fc4c1d1e66目录目录ESP32-S3移植GUI-Guider的打印机例程前提准备1.GUIGuider生成工程根据屏幕参数新建工程2.移植代码到lvgl例程里将生成的代码作为组件使用与参考链接中的不同调用生成的代码ESP32-S3移植GUI-Guid......
  • ESP32检测家中温湿度上云,随时随地多端查看温湿度​
    ESP32检测家中温湿度上云,随时随地多端查看温湿度背景介绍上次说到用ArduinoUno板子结合DHT11温湿度传感器,在Serial里实时返回温湿度的方法,总觉得还差点意思,一是只能配合电脑查看,不够节能,也不环保,不够爱护地球母亲,毕竟诸如Arduino之类的板子的电耗最高也就几十个毫安,0.1瓦都不到,电......
  • esp32笔记[10]-rust驱动ssd1306显示屏
    摘要使用rust(no-std)环境和esp-hal库实现SSD1306显示屏(128x64)显示bmp图片.平台信息esp32(模组:ESP32-WROOM-32D)(xtensalx6)(xtensa-esp32-none-elf)rust超链接esp32笔记[7]-使用rust+zig开发入门原理简介rust的include_bytes!宏Rust的include_bytes!宏可以用......
  • 在ESP32-C3上实现断电后RTC(Real-Time Clock)继续走时
    如果您想在ESP32-C3上实现断电后RTC(Real-TimeClock)继续走时,可以考虑以下几种方法:使用外部RTC芯片:您可以连接一个外部的RTC芯片,例如DS1307或DS3231等,这些芯片通常具有内置的锂电池,可以在断电时保持走时。将外部RTC芯片的VDD引脚连接到ESP32-C3的电池或电源,并将时钟信号线连接到ESP3......
  • 使用python开发了一个自动摇摆机械臂 Micropython+ESP332+舵机+USB发热贴
    前言:在测试不同区域的红外、毫米波和激光雷达等传感器时,需要人工招手和移动进行测试。尽管这种测试是必要的,但却难以保证测试的一致性,因为人的动作很难做到完全一致。解决方案:为了提高测试的一致性,我们测试考虑开发一种可摇摆且能发热的测试工具。这样的工具可以模拟不同......
  • esp32-ledc(pwm)
    这个部分设置比较简单,分三步,配置定时器、配置管道、设置占空比配置定时器配置管道改变占空比......
  • Thonny+MicroPython+ESP32开发环境配置以及遇到烧录固件出现error解决方法
    本文主要介绍如何使用python和esp32来做嵌入式研发相关的开发环境搭建以及在搭建时遇到的一些问题一、ESP32板子与电脑通讯1.首先将ESP32的板子通过USB线连接到电脑,下载驱动并且安装https://pan.baidu.com/s/1eTHYnom  2.打开电脑的设备管理器,win10可以直接从搜索中查......