【发布时间】:2016-04-23 06:28:41
【问题描述】:
我有一个连接到我的 Arduino 的超声波传感器 (SR04T)。我在 Arduino UNO 上使用 TX 和 RX 端口。问题是它只能读取 0 cm 的值。谁能帮我找出错误?
我使用的代码如下所示:
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;
}
【问题讨论】:
-
应该是多少厘米(在您的测试设置中)?你知道传感器在工作吗?
-
它将在 0 - 250 厘米之间测量。我不确定它是否有效,我刚刚得到它。
-
您尝试过我提出的修复方法吗?
-
我还没试过。只要我的 arduino UNO 和超声波传感器在我面前,我就会这样做。我会告诉你它是否有效。
标签: arduino arduino-uno arduino-ultra-sonic