您的位置:首页 > 大数据 > 物联网

张高兴的 Windows 10 IoT 开发笔记:HC-SR04 超声波测距模块

2020-01-15 09:34 891 查看

  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

转载于:https://www.cnblogs.com/zhanggaoxing/p/6343739.html

  • 点赞
  • 收藏
  • 分享
  • 文章举报
ahuihun5901 发布了0 篇原创文章 · 获赞 0 · 访问量 792 私信 关注
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: