超声波传感器测距程序(典型):
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.