📅  最后修改于: 2023-12-03 14:39:20.162000             🧑  作者: Mango
超声波传感器是一种常用的测距设备,可以用来检测距离或物体的位置。Arduino可以结合超声波传感器来实现无人车、智能扫地机、智能灯控等项目。
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 和超声波传感器,你可以在无人驾驶、智能家居、机器人和其他许多领域中实现有趣的和有用的项目。