如题,显示结果最大只有4厘米,4厘米以内正常,以外都显示4厘米。代码如下:
//超声波测距接口
int Trig = A0;
int Echo = A1;
float cm = 0; //距离,厘米
void distance()//超声波测距
{
digitalWrite(Trig, LOW); //低高低电平发一个短时间脉冲去TrigPin
delayMicroseconds(2);
digitalWrite(Trig, HIGH);
delayMicroseconds(10);
digitalWrite(Trig, LOW);
cm = pulseIn(Echo, HIGH) / 58; //将回波时间换算成cm
cm = (int(cm * 100)) / 100; //保留两位小数
}
void setup() {
// put your setup code here, to run once:
pinMode(A0, OUTPUT);
pinMode(A1, INPUT);
Serial.begin(9600);
}
void loop() {
// put your main code here, to run repeatedly:
distance();
Serial.print(cm);
Serial.println("cm");
}
|