# HC-SR04 Sensor driver in micropython
Micropython driver for the well-known untrasonic sensor [HC-SR04](https://www.mpja.com/download/hc-sr04_ultrasonic_module_user_guidejohn.pdf)
The driver has been tested on Wemos D1 mini PRO, but It should work on whatever other micropython board,
if anyone find problems in other boards, please open an issue and we'll see.
## Motivation
The existing drivers in micropython are a bit old and they don't use the relatively new method `machine.time_pulse_us()` which
Is more accurate that whatever other method using pure python, besides the code is compliant with "standard" micropython,
there is no code for specific boards.
Finally I've added a method, `distance_mm()` that don't use floating point operations, for environments where there is no
floating point capabilities.
## Examples of use:
### How to get the distance
The `distance_cm()` method returns a `float` with the distance measured by the sensor.
```python
from hcsr04 import HCSR04
sensor = HCSR04(trigger_pin=16, echo_pin=0)
distance = sensor.distance_cm()
print('Distance:', distance, 'cm')
```
There is another method, `distance_mm()`, that returns the distance in milimeters (`int` type) and **no floating point is used**, designed
for environments that doesn't support floating point operations.
```python
distance = sensor.distance_mm()
print('Distance:', distance, 'mm')
```
The default timeout is based on the sensor limit (4m), but we can also define a different timeout,
passing the new value in microseconds to the constructor.
```python
from hcsr04 import HCSR04
sensor = HCSR04(trigger_pin=16, echo_pin=0, echo_timeout_us=1000000)
distance = sensor.distance_cm()
print('Distance:', distance, 'cm')
```
### Error management
When the driver reaches the timeout while is listening the echo pin the error is converted to `OSError('Out of range')`
```python
from hcsr04 import HCSR04
sensor = HCSR04(trigger_pin=16, echo_pin=0, echo_timeout_us=10000)
try:
distance = sensor.distance_cm()
print('Distance:', distance, 'cm')
except OSError as ex:
print('ERROR getting distance:', ex)
```
没有合适的资源?快使用搜索试试~ 我知道了~
用于超声波传感器HC-SR04 的 Micropython 驱动程序_Python_代码_相关文件_下载
共3个文件
py:1个
license:1个
md:1个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
5星 · 超过95%的资源 3 下载量 49 浏览量
2022-07-13
21:43:56
上传
评论 1
收藏 7KB ZIP 举报
温馨提示
micropython 中的 HC-SR04 传感器驱动程序 著名的超音速传感器HC-SR04的 Micropython 驱动程序 该驱动程序已在 Wemos D1 mini PRO 上进行了测试,但它应该可以在任何其他 micropython 板上运行,如果有人在其他板上发现问题,请打开一个问题,我们会看到。 动机 micropython 中现有的驱动程序有点老了,他们没有使用相对较新的方法machine.time_pulse_us(),这比使用纯 python 的任何其他方法更准确,除了代码符合“标准”micropython,没有特定板的代码。 最后,我distance_mm()为没有浮点功能的环境添加了一种不使用浮点运算的方法。 使用示例: 更多详情、使用方法,请下载后细读README.md文件
资源推荐
资源详情
资源评论
收起资源包目录
micropython-hcsr04-master.zip (3个子文件)
micropython-hcsr04-master
hcsr04.py 3KB
LICENSE 11KB
README.md 2KB
共 3 条
- 1
资源评论
- 高秉德2023-05-02感谢资源主分享的资源解决了我当下的问题,非常有用的资源。
- lizong1112222023-07-04资源有很好的参考价值,总算找到了自己需要的资源啦。
- flamelikezwp2023-02-10资源质量不错,和资源描述一致,内容详细,对我很有用。
快撑死的鱼
- 粉丝: 1w+
- 资源: 9149
下载权益
C知道特权
VIP文章
课程特权
开通VIP
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功