arduino小车,准备(三):HC-SR04超声波传感器

HC-SR04在小车的各个零件中超声波测距模块在我个人看来功能最神奇,但运行起来也比较复杂。

HC-SR04共有四个接线脚:VCC,GND,trig,echo。其中,VCC接5V电源,GND接地,trig为控制端,echo为接收端。
arduino小车,准备(三):HC-SR04超声波传感器_第1张图片
VCC和GND给传感器供电。传感器工作时,通过程序控制trig引脚。即给该引脚一个不小于十微秒的高电平,这时超声波模块会自动发出8个40KHz的方波。模块发出方波后echo引脚会自动置高电平直到接收到信号。所以只要源源不断给trig引脚间断且高于十微秒的高电平(程序控制)就可以实时测试距离。
arduino小车,准备(三):HC-SR04超声波传感器_第2张图片
程序实现:

#define Trig 2 //引脚Tring 连接 IO D2
#define Echo 3 //引脚Echo 连接 IO D3 
float cm; //距离变量
float temp;
void setup()
{
	Serial.begin(9600);
	pinMode(Trig,OUTPUT);
	pinMode(Echo,INPUT);
}
void loop()
{
	int distance;
	digitalWrite(Trig,LOW);//先给一段短的低脉冲以确保我们得到干净的高脉冲
	delayMicroseconds(2);
	digitalWrite(Trig,HIGH);
	delayMicroseconds(10);
	digitalWrite(Trig,LOW);
	distance=pulseIn(Echo,HIGH);//读取从发出方波到接收回波的时间间隔
	cm = (duration/2) / 29.1;//根据声速343米每秒计算得出传感器与障碍物之间的距离
	//print是输出你要的内容横排显示
	//println是输出要显示的内容后自动换行
	Serio.print("cm");
	Serio.println(cm);
}

如果HC-SR04没有收到回波,则输出永远不会变低。 如果使用上面的Pulsin然后没有返回echo,程序将挂起1秒,这是Pulsin的默认超时。需要使用timeout参数。HC-SR04测量范围几乎不到10英尺,总路径长度为20英尺,路径时间约为20毫秒,因此将超时设置为大于25英尺或30毫秒的时间。
Pulsin函数说明

你可能感兴趣的:(arduino,小车项目)