首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Arduino超声波传感器pulseIn只有3或4个

Arduino超声波传感器pulseIn只有3或4个
EN

Stack Overflow用户
提问于 2017-07-24 04:33:13
回答 1查看 366关注 0票数 0

我要做的就是读取值pulseIn(ECHO,HIGH),这样我最终就可以将它转换成厘米,这样我就可以知道超声波传感器离物体有多远。但是,当我读取打印在串行监视器中的值时,它只有3或4,并且没有考虑到超声波传感器离任何东西有多远。我甚至不明白为什么会是这两个值,或者为什么会在它们之间变化。我不知道如何解决这个问题,也不知道是什么导致了这个问题。我不知道问题出在代码还是组件上。然而,这个传感器最近被其他人测试过了,它当时起作用了,所以可能只是我做错了什么。帮助?

代码语言:javascript
运行
复制
#define SPEAKER 11
#define TRIGGER 2
#define ECHO 3
#define SPLIT 40

unsigned long duration;

int alarm1()
{
  Serial.print("alarmtest");
  analogWrite(SPEAKER, 100);
  delay(100);
  analogWrite(SPEAKER, 0);
  delay(100);
  analogWrite(SPEAKER, 100);
  delay(100);
  analogWrite(SPEAKER, 0);
  delay(500);
}

void setup() 
{
  Serial.begin(9600);
  pinMode(SPEAKER, OUTPUT);
  pinMode(TRIGGER, OUTPUT);
  pinMode(ECHO, INPUT);
}

void loop() 
{       
  digitalWrite(TRIGGER, LOW);
  delayMicroseconds(50);
  digitalWrite(TRIGGER, HIGH);
  delayMicroseconds(50);
  digitalWrite(TRIGGER, LOW);
  duration = pulseIn(ECHO, HIGH);
  delay(200);

  Serial.print(duration);
  if (duration < SPLIT)
  {
   // alarm1();
  }
}
EN

回答 1

Stack Overflow用户

发布于 2017-07-24 06:16:20

由于我错误地使用了错误的端口,它给出了打印结果。问题解决了。一定要在额外的时间后检查你的连接!

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45269668

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档