首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何让超声波传感器与Arduino Uno一起正常工作?

如何让超声波传感器与Arduino Uno一起正常工作?
EN

Stack Overflow用户
提问于 2017-05-06 23:16:41
回答 1查看 318关注 0票数 1

我有一个HC-SR04超声波传感器连接到我的Arduino Uno。我遇到的问题是,当我检查串行监视器以查看传感器是否正常工作时:无论距离有多远,它只显示“超出范围”。我想我可能把距离计算错了,因为RedLED一直亮着,蜂鸣器也没有响。

下面是我的.ino代码:

代码语言:javascript
复制
#define trigPin 6
#define echoPin 7
#define RedLED 9
#define buzzer 3

int sound = 500;


void setup() {
  Serial.begin (9600);
  pinMode(trigPin, OUTPUT);
  pinMode(echoPin, INPUT);
  pinMode(RedLED, OUTPUT);
  pinMode(buzzer, OUTPUT);
}

void loop() {
  long duration, distance;
  digitalWrite(trigPin, LOW);
  delayMicroseconds(2);
  digitalWrite(trigPin, HIGH);
  delayMicroseconds(10);
  digitalWrite(trigPin, LOW);
  duration = pulseIn(echoPin, HIGH);
  distance = (duration/5) / 29.1;


  if (distance < 20) {
   digitalWrite(RedLED, HIGH);
   sound = 1000;
}
 else {
   digitalWrite(RedLED,LOW);
 }

 if (distance > 20 || distance <= 0){
   Serial.println("Out of range");
   noTone(buzzer);
 }
 else {
   Serial.print(distance);
   Serial.println(" cm");
   tone(buzzer, sound);

 }
 delay(300);
}
EN

回答 1

Stack Overflow用户

发布于 2017-05-07 00:27:25

我不能发表评论,所以我会在回复中发表。

检查您是否已将VCC连接到5v,而不是3.3v。

我认为你的计算是正确的。此外,要排除计算,只需打印持续时间,并查看它是否发生变化。

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

https://stackoverflow.com/questions/43822077

复制
相关文章

相似问题

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