鹿鹿hia 发表于 2017-7-23 10:56:42

arduino实现按键控制的超声波测距,程序及连线如下,结果要比实际大得多,为什么

const int buttonPin = 2;
const int TrigPin = 8;
const int EchoPin = 9;
int buttonState = 0;
float mm;
void setup()
{
Serial.begin(9600);
pinMode(TrigPin, OUTPUT);
pinMode(EchoPin, INPUT);
pinMode(buttonPin, INPUT_PULLUP);
}
void loap()
{
int val = digitalRead(buttonPin);
if(val ==LOW)
   {
   
   digitalWrite(TrigPin, LOW); //低高低电平发一个短时间脉冲去TrigPin
   delayMicroseconds(2);
   digitalWrite(TrigPin, HIGH);
   delayMicroseconds(10);
   digitalWrite(TrigPin, LOW);

   mm = pulseIn(EchoPin, HIGH) / 580.0; //将回波时间换算成cm
   Serial.print(mm);
   Serial.print("mm");
   Serial.println();
   delay(2000);
else
   {
    digitalWrite(EchoPin, LOW);
    digitalWrite(TrigPin, LOW);
   }
}

林定祥 发表于 2017-7-26 21:41:23

超声检测不是一个点,是一个面,这个面是个15度宽的扇形,楼长说的远近是否注意到了这点。

asdfcgdc 发表于 2017-7-23 15:01:44

模块不准或你的程序有问题,另外声速与空气的温度有关

铎铎99 发表于 2017-7-24 09:54:00

顶!!!!!!!!!!!!!!!!!

wzqhby 发表于 2017-7-24 11:45:26

看看是否接近两倍,超声波测距应该是来回距离。

驾鹰翱蓝天 发表于 2017-10-24 08:29:55

:o:o:o:o:o:o

方恨少 发表于 2018-1-14 09:35:33

mm = pulseIn(EchoPin, HIGH) / 580.0; //将回波时间换算成cm
这一句好像不对啊。
页: [1]
查看完整版本: arduino实现按键控制的超声波测距,程序及连线如下,结果要比实际大得多,为什么