📜  Arduino-超声波传感器(1)

📅  最后修改于: 2023-12-03 14:39:20.162000             🧑  作者: Mango

Arduino-超声波传感器

介绍

超声波传感器是一种常用的测距设备,可以用来检测距离或物体的位置。Arduino可以结合超声波传感器来实现无人车、智能扫地机、智能灯控等项目。

硬件设备
  • Arduino开发板
  • 超声波传感器
  • 杜邦线
接线方式
  • 将传感器VCC连接到Arduino开发板的5V电源针脚,GND连接到地针脚。
  • 将传感器的Trig引脚连接到Arduino的数字输出针脚(如10),Echo引脚连接到Arduino的数字输入针脚(如11)。
代码实现

Arduino使用pulseIn函数来获取超声波反射回来的时间,计算距离。以下是一个简单的例子:

const int trigPin = 10;
const int echoPin = 11;

void setup() {
  pinMode(trigPin, OUTPUT);
  pinMode(echoPin, INPUT);
  Serial.begin(9600);
}

void loop() {
  digitalWrite(trigPin, LOW);
  delayMicroseconds(2);
  digitalWrite(trigPin, HIGH);
  delayMicroseconds(10);
  digitalWrite(trigPin, LOW);
  long duration = pulseIn(echoPin, HIGH);
  float distance = duration * 0.034 / 2;
  Serial.print("Distance: ");
  Serial.println(distance);
  delay(500);
}

代码分为两部分,第一部分是setup函数,主要用来初始化。第二部分是loop函数,主要是循环执行的代码。

首先,将输出引脚Trig设置为低电平,延时2微秒,再将其设置为高电平,延时10微秒,再将其设置为低电平。这样就会发送一个10微秒的高电平脉冲给超声波传感器。

接下来,使用pulseIn函数,等待接收声波反射回来的信号,并返回反射回来的时长(单位是微秒)。将时长乘以声波在空气中的速度(约为每秒343米),然后除以2,得到物体与超声波传感器的距离(单位是厘米)。

最后,使用Serial.print和Serial.println函数,将距离值输出到串口监视器,然后等待500毫秒,再次执行循环。

结论

这是一个简单的超声波传感器实例,只是显示了如何测量距离。你可以在此基础上开发更复杂的项目,比如根据距离控制LED灯、制作一辆自动避障的小车等等。从这个例子开始,结合 Arduino 和超声波传感器,你可以在无人驾驶、智能家居、机器人和其他许多领域中实现有趣的和有用的项目。