arduino超声波试验实例
2017-01-07 20:52阅读:
主要技术参数:
1:使用电压:DC5V
2:静态电流:小于2mA
3:电平输出:高5V
4:电平输出:底0V
5:感应角度:不大于15度
6:探测距离:2cm-450cm
7:高精度:可达0.3cm
板上接线方式,VCC、trig(控制端
)、 echo(接收端)、 GND
【注意】
1,要板上要先接上超声波模块再通电。或都先让GND 先连接。
2,测量周期最好60ms以上。以防止发射信号对回响信号的影响。
使用时:
1)采用IO触发测距,给至少10us的高电平信号;就是先给这个Trip
拉低电平,再给个10us的高电平信号信号。
(2)模块自动发送8个40khz的方波,自动检测是否有信号返回;
(3)有信号返回,通过IO输出一高电平,高电平持续的时间就是
超声波从发射到返回的时间.测试距离=(高电平时间*声速(340M/S))/2;
距离公式:测试距离=(高电平时间/58)(厘米);
实例
//////////////////////////////////////////////////////////
//超声波试验
int pinTrip=8; //接SR04 Trip
,给10us以上的高电平
int pinEcho=7; //接Echo
,接收高电平时间
float distance=0; //保存得到的距离
void setup() {
// put your setup code here, to run
once:
pinMode(pinTrip,OUTPUT);
pinMode(pinEcho,INPUT);
Serial.begin(9600);
}
void loop() {
// put your main code here, to run
repeatedly:
digitalWrite(pinTrip,LOW);
delayMicroseconds(2); //拉低电平
digitalWrite(pinTrip,HIGH);
delayMicroseconds(12);//给12us的高电平
digitalWrite(pinTrip,LOW);//拉低电平
distance=pulseIn(pinEcho,HIGH);//检查高电平时间
delay(10);
distance=distance/58; //得到距离
Serial.print('distance=');
Serial.print(distance);
Serial.println('cm');
delay(500);
}