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

时间:2017-05-06 15:16:41

标签: arduino-uno arduino-ultra-sonic

我有一个连接到我的Arduino Uno的HC-SR04超声波传感器。我遇到的问题是当我检查串行监视器以查看传感器是否正常工作时:它只是说"超出范围"不管距离如何。我相信我的距离计算可能有误,因为RedLED一直亮着,蜂鸣器也不会熄灭。

这是我的.ino代码:

#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);
}

1 个答案:

答案 0 :(得分:0)

无法发表评论,因此我会将其发布在答案中。

检查您是否已将VCC连接到5v而不是3.3v 我认为你的计算没问题。同样要排除计算,只需打印持续时间并查看其是否发生变化。