设备:
软件(与Ultrasonics有关,绝不是整个程序):
void setup() {
Serial.begin(9600);
//Ultrasonic Left
pinMode(26, OUTPUT);
pinMode(2, INPUT);
digitalWrite(26, LOW);
//Ultrasonic Right
pinMode(27, OUTPUT);
pinMode(3, INPUT);
digitalWrite(27, LOW);
}
void readSonar() {
digitalWrite(26, HIGH);
delayMicroseconds(25);
digitalWrite(26, LOW);
data[0] = pulseIn(2, HIGH);
digitalWrite(27, HIGH);
delayMicroseconds(25);
digitalWrite(27, LOW);
data[1] = pulseIn(3, HIGH);
return data;
}
问题:
以前有人有这个问题吗?我的setup()函数从我看到的示例看起来“正常”。为了解决这个问题,我为两个传感器的有效线路连接了一个开关。通过这种方式,Arduino可以启动,然后我可以给传感器供电。这对我来说似乎是一个拙劣的解决方法,我想要一个硬编码的软件解决方案,如果有人能够提供一个!
答案 0 :(得分:0)
如果你看一下传感器的特性,你看起来很清楚你需要在Rx为0的情况下启动它们。看看这个link。这很可能是您启动Arduino以使其工作后必须断开传感器的原因。您还需要确保连接了上拉电阻,以避免读数不可靠。