HC-SR04 采用 IO 触发测距。下面介绍一下其在 Windows 10 IoT Core 环境下的用法。
项目运行在 Raspberry Pi 2/3 上,使用 C# 进行编码。
1. 准备
HC-SR04 ×1
Raspberry Pi 2/3 ×1
公母头杜邦线 ×4
2. 连线
Vcc - 5V
Gnd - GND
Trig - GPIO 17 - Pin 11
Echo - GPIO 27 - Pin 13
3. 代码
GitHub : https://github.com/ZhangGaoxing/windows-iot-demo/tree/master/HC_SR04Demo
你需要在项目中添加一个 C# 代码文件 HCSR04.cs,将下面的代码复制粘贴,并且不要忘记添加引用 Windows IoT Extensions for the UWP
using System.Diagnostics;
using System.Threading.Tasks;
using Windows.Devices.Gpio;
namespace HC_SR04Demo
{
class HCSR04
{
private int sensorTrig;
private int sensorEcho;
private GpioPin pinTrig;
private GpioPin pinEcho;
Stopwatch time = new Stopwatch();
/// <summary>
/// Constructor
/// </summary>
/// <param name="trig">Trig Pin</param>
/// <param name="echo">Echo Pin</param>
public HCSR04(int trig, int echo)
{
sensorTrig = trig;
sensorEcho = echo;
}
/// <summary>
/// Initialize the sensor
/// </summary>
public void Initialize()
{
var gpio = GpioController.GetDefault();
pinTrig = gpio.OpenPin(sensorTrig);
pinEcho = gpio.OpenPin(sensorEcho);
pinTrig.SetDriveMode(GpioPinDriveMode.Output);
pinEcho.SetDriveMode(GpioPinDriveMode.Input);
pinTrig.Write(GpioPinValue.Low);
}
/// <summary>
/// Read data from the sensor
/// </summary>
/// <returns>A double type distance data</returns>
public async Task<double> ReadAsync()
{
double result;
pinTrig.Write(GpioPinValue.High);
await Task.Delay(10);
pinTrig.Write(GpioPinValue.Low);
while (pinEcho.Read() == GpioPinValue.Low)
{
}
time.Restart();
while (pinEcho.Read() == GpioPinValue.High)
{
}
time.Stop();
result = (time.Elapsed.TotalSeconds * 34000) / 2;
return result;
}
/// <summary>
/// Cleanup
/// </summary>
public void Dispose()
{
pinTrig.Dispose();
pinEcho.Dispose();
}
}
}
4. 如何使用
第一步调用构造函数将 HCSR04 实例化,请传入 Trig 和 Echo 的连接值
第二步调用 Initialize() 初始化设备
第三步调用 ReadAsync() 读取数据,返回的是一个 double 类型的值
当需要关闭设备时,调用 Dispose()
详见 GitHub
扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2025 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
Copyright © 2013 - 2025 Tencent Cloud.
All Rights Reserved. 腾讯云 版权所有