上一篇中我们把基本的运行环境搭建完成了,这一篇中,我们实战通过树莓派B+连接HC-SR04超声波测距传感器,用c# GPIO控制传感器完成距离测定,并将距离显示在网页上.

1.HC-SR04接线

  传感器如下图:

  

  HC-SR04 模块可以测量 3cm – 4m 的距离,精确度可以达到 3mm.这个模块包括 超声波发射器、超声波接收器和控制电路三部分.该传感器有4个引脚:

  VCC,   超声波模块电源脚,接5V电源即可

  Trig,  超声波发送脚

  Echo,超声波接收检测脚

  GND,接地

1.1HC-SR04超声波模块工作原理:      

  (1) 树莓派向 Trig 脚发送一个至少 10us 的脉冲信号。
(2) HC-SR04 接收到信号,开始发送超声波,并把 Echo置为高电平,然后准备接收返回的超声波
(3) HC-SR04 接收到返回的超声波,把 Echo 置为低电平。
(4) Echo 高电平持续的时间就是超声波从发射到返回的时间间隔。
(5) 计算距离:距离(单位:m)  =  (start - end) * 声波速度 / 2 

        

1.2 接线

      4 个引脚由 2 个电源引脚(Vcc 、GND)和 2 个控制引脚(Trig、Echo)组成。
Vcc 和 Gnd 接 5v DC 电源,但不推荐用独立电源给它供电,应使用树莓派的 GPIO 口输出 5v 和 Gnd 给它供电。不然会影响这个模块的运行。
Trig 引脚用来接收来自树莓派的控制信号。接任意 GPIO 口。
Echo 引脚用来发送测距结果给树莓派。接任意 GPIO 口。

  对应树莓派40pin引脚对照表:

     我这里把Trlg接到23,Echo接到24,VCC接到5V,(BCM编码方式)GND接GND:

    

    这样线就接好了.开始编码阶段.

2.c# 程序

  打开上一章建立的空项目首先在Models新建一个类 SiteConfig:

复制代码
 public class SiteConfig  {                 /// <summary>        /// 超声波控制端 默认23         /// </summary>        public int TriggerPin { get; set; }          /// <summary>        /// 超声波接收端 默认24         /// </summary>        public int EchoPin { get; set; }        }
复制代码

之后在 appsettings.json 中添加 这个节点:

复制代码
"SiteConfig": {      "TriggerPin": 23,     "EchoPin": 24,   }
复制代码

在 Startup.cs 类的ConfigureServices 方法添加

复制代码