Arduino超声波传感器教程 (Ultrasonic Sensor)

视频教程: 【Arduino超声波传感器HC-SR04教程】

什么是超声传感器HC-SR04?
超声传感器的英文是Ultrasonic Sensor。它有如下特点:
* 利用声纳(SONAR)来测量物体的距离, 测量角度<15°。
* 准确度高、性价比高、读数稳定、且便于使用。
* 可应用于非接触范围检测, 检测范围是2厘米-400厘米(+/-3毫米偏差)。
* 虽然它的操作很少受阳光或黑色材料的影响,但是柔软的材料(如布料等)可能较难检测到。
* 传感器有四个引脚:
· VCC 接到5V电源;
· Trig 接到任何数字口;
· Echo接到任何数字口;
· GND 接到地。
测距的工作原理?
1) 传感器会朝某一方向发射40K赫兹的超声波,同时开始计时。
2) 声波会在空气中传播,一旦遇到障碍物,声波就会立刻返回。
3) 传感器一旦接收到反射波就立刻停止计时。
4) 已知声波在空气中的传播速度为340米/秒=34K厘米 / 秒= 0.034厘米/微秒。根据计时器的时间t, 我们可以计算出,从发射点到障碍物的距离为= 0.034厘米/微秒 * t超秒/2
超声波传感器的工作原理?
1) 利用 Arduino 的数字引脚给超声波传感器的 Trig 引脚至少 10 微秒的高电平信号,这会让HC-SR04 超声波测距模块发射出8个40K赫兹的超声波脉冲(ultrasonic burst)。
2) 8个超声波脉冲发出后,echo引脚会输出高电平。假如没有声波返回,echo引脚会在38微秒后输出低电平。假如有声波返回,echo引脚会进入低电平状态。
3) Echo输出高电平的时间就是超声波从发射到返回的时间。

材料清单
- 超声传感器HC-SR04 x1
- 面包板 x1
- 面包线(双公头) x4 - 面包线颜色不影响结果,但有助于理解教程
- Arduino Uno 开发板 x1
- USB接线 x1
- 装有Arduino IDE/集成开发环境的电脑 x1
电路图

接线细节

代码
const int trigPin = 3; // 传感器trig引脚连接到开发板模拟口3
const int echoPin = 2; // 传感器Echo引脚连接到开发板模拟口2
long duration, distance;
void setup() {
Serial.begin(9600); // 开始 Serial Terminal 串口监视器
pinMode(trigPin, OUTPUT); // 将trigPin设置为输出
pinMode(echoPin, INPUT); //将echoPin设置为输入
}
void loop() {
digitalWrite(trigPin, LOW); // 先将trigPin设置为低电平状态2微秒
delayMicroseconds(2);
digitalWrite(trigPin, HIGH); //再将trigPin设置为高电平状态10微秒
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
duration = pulseIn(echoPin, HIGH); //计算echoPin在高电平状态的时长
distance = duration * 0.034 / 2; // 计算传感器跟物体之间的距离
Serial.print(distance); //在串口监视器打印出距离
Serial.print("cm");
Serial.println();
delay(1000);
}
如何上传代码?
a) 双击Arduino图标, 一个Sketch会跳出来
b) 点击文件(F) 新建项目, 打开一个新的Sketch
c) 复制粘贴提供的代码
d) 点击工具>>开发板>>Arduino AVR Boards>>选择Arduino Uno 开发板
e) 点击工具>>选择端口 (不一定是6, 由电脑分配)
f) 点击✓检查验证/编译代码
g) 点击→上传代码
h) 点击工具>>打开串口监视器
恭喜,又完成一个教程了。
愿如风有信,所学有成~