大神,
arduino+超声波测距模块 HC-SR04
模块上有VCC GND TRIG ECHO几个接口,
VCC GND分别接5v gnd
trig echo 分别接12, 13 (其他接口也试过)
代码很简单,但是结果不对,不知道问题出在哪里,代码如下:
const int TrigPin = 12;
const int EchoPin = 13;
float distance;
void setup()
{
Serial.begin(9600);
pinMode(TrigPin, OUTPUT);
pinMode(EchoPin, INPUT);
Serial.println("Ultrasonic sensor:");
}
void loop()
{
// 产生一个10us的高脉冲去触发TrigPin
digitalWrite(TrigPin, LOW);
delayMicroseconds(2);
digitalWrite(TrigPin, HIGH);
delayMicroseconds(100);
digitalWrite(TrigPin, LOW);
//digitalWrite(EchoPin, LOW);
// 检测脉冲宽度,并计算出距离
//distance = pulseIn(EchoPin, HIGH) / 58.00;
// int t=0;
// while (!digitalRead(EchoPin));
// while (digitalRead(EchoPin)){ delayMicroseconds(10);t++; }
distance = pulseIn(EchoPin, HIGH);
//声音速度一般29.15 微秒/厘米,往返则要*2,得出58 or *0.017 cm
Serial.println(distance);
distance = (distance)/58.0;
Serial.print(distance);
Serial.println("CM");
delay(1000);
}
输出如下,完全不对,发射超声波的圆筒附近放手 放东西都数值都不变:
188742.00
3254.17CM
188743.00
3254.19CM
188683.00
3253.16CM
188814.00
3255.41CM
188756.00
3254.41CM
188707.00
3253.57CM
不知道哪位大神遇到过类似的情况,求指点! |