Arduino - 超声波传感器(SR04T)仅测量0

时间:2016-01-18 06:47:47

标签: arduino arduino-uno arduino-ultra-sonic

我有一个超声波传感器(SR04T),我已连接到我的Arduino。我正在使用Arduino UNO的TX和RX端口。问题是它只读取0厘米的值。任何人都可以帮我找到错误吗?

我正在使用的代码如下:

const int trigPin = 1;
const int echoPin = 0;

void setup() {

  Serial.begin(9600);
}

void loop()
{

  long duration, inches, cm;


  pinMode(trigPin, OUTPUT);
  digitalWrite(trigPin, LOW);
  delayMicroseconds(2);
  digitalWrite(trigPin, HIGH);
  delayMicroseconds(10);
  digitalWrite(trigPin, LOW);


  pinMode(echoPin, INPUT);
  duration = pulseIn(echoPin, HIGH);

  // convert time into cm
  cm = microsecondsToCentimeters(duration);


  Serial.print(cm);
  Serial.print("cm");
  Serial.println();

  delay(100);
}



long microsecondsToCentimeters(long microseconds)
{

  return microseconds / 29 / 2;
}

1 个答案:

答案 0 :(得分:0)

你在这里做错了两件事。

  1. 您正在循环中设置pinMode。没必要。将它们放入安装程序中。您无需连续设置pinmode。

  2. 使用Serial时,您使用引脚0和1作为输入和输出。串行使用引脚0和1进行串行通信。使用其他引脚进行输入和输出。请查看http://marcusjenkins.com/wp-content/uploads/2014/06/ARDUINO_V2.png