鳕鱼天空

This is Mr Wang's Tech Blog.

超声波传感器测距程序

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


 

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); 
}

 

pulseIn()单位为微秒,声速340m/s,单片机的晶振频率约为14MHZ,所以距离cm=340*100/(1000000-14000)*pulseIn()/2,及化简为pulseIn()/[(1000000-14000)*2/(340*100)]等于pulseIn()/58.0.