您的位置首页百科知识

Arduino:超声波传感器+测距

Arduino:超声波传感器+测距

的有关信息介绍如下:

Arduino:超声波传感器+测距

HC-SR04超声波传感器测距,

功能:提供50px--450m的非接触式距离感测功能,

组成:包括超声波发射器、接收器与控制电路。

基本工作原理:超声波测距模块一触发信号后发射超声波,

当超声波投射到物体而反射回来时,

模块输出一回响信号,

以触发信号和回响信号间的时间差,来判定物体的距离。

超声波传感器有敏感范围大,无视觉盲区,不受障碍物干扰等特点,

这项技术已经在商业和安全领域被使用25年多了,

已经被证明是检测小物体运动最有效的方法。

超声波传感器主要技术参数:

使用电压:DC5V;

静态电流:小于2mA;

电平输出:高5V;

电平输出:底0V;

感应角度:不大于15度;

探测距离:50px-11250px,高精度可达5px;

接线方式端口:VCC(电源)、trig(控制端)、echo(接收端)、GND(地)。

超声波传感器工作原理:

①采用I/O触发测距,给至少10us的高电平信号;

②模块自动发送8个40kHZ的方波,自动检测是否有信号返回;

③有信号返回,通过I/O输出一高电平,高电平持续的时间就是超声波从发射到返回的时间。

测试距离=(高电平时间*声速(340M/S))/2。

超声波传感器工作原理(续):

超声波传感器主要利用多普勒原理,

通过晶振向外发射超过人体能感知的高频超声波;

一般选用25~40kHz波,然后控制模块检测反射回来波的频率,

如果区域内有物体运动,反射波频率就会有轻微的波动,即多普勒效应,

以此来判断照明区域的物体移动,从而达到控制开关的目的。

超声波的纵向振荡特性,可以在气体、液体及固体中传播且其传播速度不同;它还有折射和反射现象,

在空气中传播其频率较低,衰减较快;

而在固体、液体中则衰减较小,传播较远。

超声波传感器正是利用超声波的这些特性。

接线图:

Arduino+超声波传感器

Arduino编程基础知识:

pulseIn():用于检测引脚输出的高低电平的脉冲宽度。

pulseIn(pin, value);

pulseIn(pin, value, timeout);//时间

Pin---需要读取脉冲的引脚

Value---需要读取的脉冲类型,HIGH或LOW

Timeout---超时时间,单位微秒,数据类型为无符号长整型。

超声波传感器测距程序(典型):

const int TrigPin = 2; const int EchoPin = 3; float cm;

void setup(){ Serial.begin(9600); pinMode(TrigPin, OUTPUT); pinMode(EchoPin, INPUT); }

void loop(){ digitalWrite(TrigPin, LOW); //低高低电平发一个短时间脉冲去TrigPin delayMicroseconds(2); digitalWrite(TrigPin, HIGH); delayMicroseconds(10); digitalWrite(TrigPin, LOW);

cm = pulseIn(EchoPin, HIGH) / 58; //将回波时间换算成cm

cm = (int(cm * 100)) / 100; //保留两位小数 Serial.print(cm); Serial.print("cm");//串口输出 Serial.println(); delay(1000); }