人耳可以听到的频率范围20hz~20000hz,hz为1秒内上下震动的次数
超声波传感器:40HZ
T:发出声波
R:接收声波
购买建议:HC-SR04,最大距离4m,最小距离2cm,精度3mm,测量角度15°
#include <Arduino.h>
#define trigPin 2
#define echoPin 3
void setup()
{
Serial.begin(9600);
//在不工作的情况下,trigPin和echoPin都是拉低的
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
digitalWrite(trigPin, LOW);
}
void loop()
{
// 触发超声波传感器
// 将trigPin拉高至少10us
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
// 声音往返传输的时间ms
// echoPin被拉高的时间等于声音往返时间(微秒)
unsigned long duration = pulseIn(echoPin, HIGH, 30000); // 计算这个引脚从高变低电平的时间,最大30ms
// 声音的速度340m/s
// 340m/s = 0.034mm/us
float distance = duration * 0.034 / 2; //计算距离mm,声音是往返,所以除以2
Serial.print("Distance:");
Serial.print(distance);
Serial.println(" cm");
delay(1000);
}
下一步改进策略,加入传感器滤波算法,减小测量误差。
超声波传感器库推荐:NewPing