littlebot
Published on 2025-04-14 / 3 Visits
0

【源码】基于Arduino的HCSR04超声波距离传感器库

项目简介

这是一个用于读取HC - SR04超声波距离传感器的Arduino库,可提供读取传感器数据、处理可能的错误和配置测量参数等多种功能。

项目的主要特性和功能

  • 具备全面读取和处理HC - SR04传感器数据的功能。
  • 支持一线和两线模式。
  • 可进行多种距离单位的转换。
  • 提供配置和设置函数,如设置样本数量、最大距离、温度、响应超时等。
  • 支持响应超时冷却期,避免连续与传感器通信产生长时间延迟。
  • 提供详细的错误统计和响应状态。

安装使用步骤

  1. src/hcsr04文件夹的内容复制到你的Arduino项目中。
  2. 在Arduino程序里包含必要的头文件:#include "hcsr04/HCSR04.h"
  3. 依据项目需求,使用库中的函数进行传感器数据的读取和配置。

请注意,此库专为Arduino平台设计,你需要有Arduino开发环境来编译和运行代码。

示例代码

以下示例展示如何使用该库进行距离测量: ```cpp

include

include

include "hcsr04/HCSR04.h"

define SERIAL_BAUD_RATE 9600

define HCSR04_ONE_WIRE_PIN 9

HCSR04 hcsr04(HCSR04_ONE_WIRE_PIN);

void setup() { Serial.begin(SERIAL_BAUD_RATE); }

void loop() {

Measurement measurement = hcsr04.measure();

serial_printf(Serial,
              "Distance: %2f %s, Valid Samples: %l/%i [Signal Timed Out Count: %i, Response Timed Out Count: %i, Max Distance Exceeded Count: %i, Response Cool Down: %o]\n",
              measurement.getDistance(),
              getDistanceUnitAbbreviation(measurement.getDistanceUnit()),
              measurement.getValidMeasurementsCount(),
              measurement.getTakenSamples(),
              measurement.getSignalTimedOutCount(),
              measurement.getResponseTimedOutCount(),
              measurement.getMaxDistanceExceededCount(),
              measurement.getIsResponseCoolDownActive());

} ``` 此示例创建了HCSR04对象,配置了串口通信,在循环中测量距离并将结果通过串口输出。

下载地址

点击下载 【提取码: 4003】【解压密码: www.makuang.net】